Tudo é Arquivo: Parte 2

Para os sistemas baseados em UNIX, “tudo é arquivo”. Entenda o por quê não existe o conceito de pastas nestes sistemas! – Parte 2


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile! Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. Mais detalhes clicando aqui.


Parte 2

Dividido em 2 partes, na primeira parte introduzi o conceito de que tudo é arquivo e apresentei os dispositivos especiais /dev/null, /dev/zero, /dev/random e /dev/full. Nesta parte 2 apresentarei de forma didática funcionalidades interessantes acerca deles!

Para a leitura dessa postagem é recomendado o conhecimento prévio da Parte 1!
Caso tenha perdido, leia aqui.

1. Introdução

Você é uma pessoa estudiosa que provavelmente possui o seguinte conhecimento:

  • Se eu formato um disco rígido ou pendrive, eu estou definindo uma partição em uma mídia – MBR, GPT, BSD, Amiga, etc…- e, dentro dela, vou guardar meus dados, arquivos, a instalação do meu OS, enfim…. Cada partição em disco me permite aplicar um sistema de arquivos diferente – NTFS, EXT4, FAT32 e etc – e dentro desse sistema de arquivos eu vou instalar o sistema e colocar os meus arquivos pessoais.

Com isso em mente, vamos fazer uma pequena brincadeira, bem simples:

  1. Crie um arquivo de 4Gb preenchido com zeros usando o comando DD.
    Ele será criado em /home/$USER; mude esse caminho se tiver sem espaço suficiente em disco.
    $ dd if=/dev/zero of=~/teste bs=1M count=4096
  2. Agora vamos formatar esse arquivo. Sim, e mais, ele terá o formato EXT4 em nosso exemplo!
    Um pouco confuso? Confie em mim jovem. Vamos la:
    $ mkfs.ext4 -m 0 ~/teste

    O parâmetro -m no comando faz com que diminuamos o espaço reservado para “root” que o EXT4 define em 5 por padrão. Inclusive isso é útil pra instalar um sistema e evitar que o EXT4 consuma muito espaço em disco por padrão.

  3. Formatado? Certo, agora você tem um arquivo de 4GB do tipo “unknown” chamado “teste” na sua /home, e nada mais abre ele. Sente-se numa cadeira (se já não estiver em uma) e note que agora vem a melhor parte:
    Monte-o como uma partição!
    $ sudo mkdir /media/teste
    $ sudo mount -rw ~/teste /media/teste/

Meus parabéns jovem padawan, você não apenas criou um arquivo em formato .EXT4, você criou UMA PARTIÇÃO EXT4 dentro de um arquivo comum na sua /home e ainda pode guardar diversas coisas dentro dele!

2. Utilidade

O mesmo procedimento pode ser feito pra qualquer formato de arquivos: EXT2, FAT32, NTFS…
Tudo só depende da sua necessidade!

Mas não pense que seja possível instalar Windows® nela, uma vez que é uma partição dentro de uma partição, quem a gerencia é o Linux. Também fica complicado monta-lo como uma partição em um Windows, uma vez que o sistema não opera como os baseados em UNIX lendo dispositivos de bloco como arquivos e sim tratando-os de maneira diferente.

Você pode até forçar sua montagem com a flag -F mas somente sistemas baseados em UNIX irão reconhecê-lo e montá-lo apropriadamente.

Esse detalhe foi explicitado aqui.

Como expliquei na Parte 1, “tudo é arquivo”:

Ou seja, uma pasta, um diretório, uma partição (enfim, coisas que guardam coisas) são nada mais nada menos que “arquivos de índice”, que definem o que tem ali naquele setor do seu disco ou SSD. Quando dizem que os sistemas baseados em UNIX possuem uma filosofia de simplicidade, é esta simplicidade que estamos falando: Tudo é apenas um mero arquivo, palpável, simples e funcional, facilmente manipulável, sem rodeios.

A lição aqui, é que você acaba de aprender como funciona de maneira básica a Virtualização de um sistema operacional (VirtualBox, QEMU/KVM, etc): Você cria uma partição num arquivo (no VirtualBox ela é em formato .vdi) e dentro você instala seu sistema.

  • E o que eu faço com essa partição de 4 Gb EXT4?

Ah, você pode guardar coisas nela, pode instalar um sistema operacional inteiro nela (não o Windows, de preferência), pode colocar ela num pendrive pra reforçar a segurança dos seus arquivos, pode criptografa-lo e transformá-lo num cofre, pode esconder ela dentro de um HD com Windows formatado como NTFS, assim ele ficará oculto…. ou apenas desmonte-a e delete-a!

Alguns sistemas de arquivos como o JFS operam permitindo melhor organização dos dados se forem pequenos (documentos de texto) e em outros casos como o XFS, se forem arquivos grandes (imagens de disco, fotos em HD, músicas em .flac). Ter uma partição virtual com um desses formatos pode otimizar o espaço consumido em disco.

  • E como eu desmonto ela?

Ah, simples:

$ sudo umount /media/teste

Após isso você poderá jogar esse arquivo na lixeira como um outro arquivo qualquer.

3. Conclusão

Nessa segunda e última parte da sessão “Você Sabia? Tudo é Arquivo” mostrei a respeito de particionamento virtual de arquivos para serem usados como partições de disco e algumas vantagens desses.

Juntamente com a parte anterior, onde abordo sobre os dispositivos especiais, há um conhecimento que pode ser agregado a qualquer estudante de Linux (ou outro sistema baseado no UNIX), melhorando seu entendimento do modo como um sistema funciona.

#UrbanCompassPony

Adaptado de:
Livro “Descobrindo o Linux”
Autor: João Eriberto Mota Filho
Editora: Novatec
3a Edição
Wiki

2 comentários em “Tudo é Arquivo: Parte 2”

  1. Legal, mas, eu eu poderia instalar um sistema completo nela, mas, como faria esta instalação?
    Este arquivo seria indicado nas mídias de instalação?
    Eu poderia acessá-lo através do GRUB, inicializando o sistema instalado neste arquivo, sem carregar o sistema no qual este arquivo foi criado, ou apenas virtualizá-lo?

    Responder
    • Seu principal objetivo é a virtualização e servir de cofre pra dados. Mas pode-se sim usa-lo num sistema.
      Voce possuindo um Linux já instalado, poderia instalar o sistema nessa partição em arquivo e depois indicar sua montagem pelo /etc/fstab direcionando no GRUB. Dá um pouco mais de trabalho inclusive, mas é viável.

      Responder

Deixe um comentário