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:
- 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
- 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.
- 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
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.
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?
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.