Partição EXT2 (Linux Native)

A partição EXT2 é o tipo usado para criar o sistema de arquivos Linux Native usado para armazenar o sistema de arquivos EXT2 (após a formatação) e permitir o armazenamento de dados. Para detalhes de como criar uma partição EXT2 veja “Criando um sistema de arquivos EXT2 em uma partição”.

Este tipo de partição é normalmente identificado pelo código 83 nos programas de particionamento de disco. Note que também é possível criar um sistema de arquivos EXT2 em um arquivo (ao invés de uma partição) que poderá ser montado e acessado normalmente pelo sistema de arquivos (veja “Criando um sistema de arquivos EXT2 em um arquivo”.

Logo que foi inventado, o GNU/Linux utilizava o sistema de arquivos Minix (e consequentemente uma partição Minix) para o armazenamento de arquivos. Com a evolução do desenvolvimento, foi criado o padrão EXT (Extended Filesystem) e logo evoluiu para o EXT2 (Second Extended Filesystem). O padrão mais usado nos dias de hoje é o EXT3 devido ao Journaling (será abordado no próximo capítulo).

Entre as vantagens do EXT2 para armazenamento de arquivos estão: é o mais rápido devido ao não uso de journaling (principalmente para Netbooks e dispositivos flash), não se fragmenta tão facilmente pois permite a localização do melhor lugar onde o arquivo se encaixa no disco, etc. Isto é útil para grandes ambientes multiusuário onde várias pessoas gravam/apagam arquivos o tempo todo.

Criando um sistema de arquivos EXT2 em uma partição

O utilitário usado para formatar uma partição EXT2 é o mkfs.ext2. Após terminar este passo, seu sistema de arquivos EXT2 estará pronto para ser usado.

Após particionar seu disco rígido e criar uma (ou várias) partições EXT2, use o comando:

mkfs.ext2 /dev/sda?

Onde a "?" em sda? significa o número da partição que será formatada. A identificação da partição é mostrada durante o particionamento do disco, anote se for o caso. sda normalmente é o primeiro disco rígido SATA, sdb é o segundo disco rígido SATA. Discos IDE normalmente são identificados por hda?, hdb?, etc. Para detalhes sobre a identificação de discos, veja “Identificação de discos e partições em sistemas Linux”.

Algumas opções são úteis ao mkfs.ext2:

  • -c Procura blocos danificados na partição antes de criar o sistema de arquivos.

  • -L NOME Coloca um nome (label) no sistema de arquivos.

  • -b NUM Define o tamanho do bloco, em bytes.

  • -m NUM Define a porcentagem de espaço em disco reservada para manutenção (por padrão reservado para o root, mas isto é alterável).

Agora para acessar a partição deverá ser usado o comando: mount /dev/sda? /mnt -t ext2

Para mais detalhes veja “Montando (acessando) uma partição de disco”.

Note que é possível criar um sistema de arquivos no disco rígido sem criar uma partição usando /dev/sda, /dev/sdb, etc. EVITE FAZER ISSO! Como não estará criando uma partição, o disco estará divido de maneira incorreta, você não poderá apagar o sistema de arquivos completamente do disco caso precise (lembre-se que você não criou uma partição), e a partição possui uma assinatura apropriada que identifica o sistema de arquivos.

O espaço padrão reservado na partição para o usuário root é de 5%. Em sistemas com partições maiores que 10Gb, isso pode representar uma grande quantidade de espaço em disco não utilizada por outros usuários. Veja a opção -m sobre como fazer esta modificação. Caso já tenha criado a partição, isto pode ser feito no tune2fs com a opção -m.

Criando um sistema de arquivos EXT2 em um arquivo

É possível criar um sistema de arquivos EXT2 em um arquivo que poderá ser montado e acessado normalmente como se fosse uma partição normal. Isto é possível por causa do recurso loop oferecido pelo kernel do GNU/Linux. Os dispositivos de loop estão disponíveis no diretório /dev com o nome loop? (normalmente estão disponíveis 8 dispositivos de loop).

Isto é possível usando o comando dd e o mkfs.ext2. Veja passo a passo como criar o sistema de arquivos EXT2 em um arquivo:

  1. Use o comando dd if=/dev/zero of=/tmp/arquivo-ext2 bs=1024 count=10000 para criar um arquivo arquivo-ext2 vazio de 10Mb de tamanho em /tmp. Você pode modificar os parâmetros de of para escolher onde o arquivo será criado, o tamanho do arquivo poderá ser modificado através de count

  2. Formate o arquivo com mkfs.ext2 /tmp/arquivo-ext2. Ele primeiro dirá que o arquivo arquivo-ext2 não é um dispositivo de bloco especial (uma partição de disco) e perguntará se deve continuar, responda com y.

    O sistema de arquivos EXT2 será criado em /tmp/arquivo-ext2 e estará pronto para ser usado.

  3. Monte o arquivo arquivo-ext2 com o comando: mount /tmp/arquivo-ext2 /mnt -o loop=/dev/loop1. Note que foi usado o parâmetro -o loop para dizer ao comando mount para usar os recursos de loop do kernel para montar o sistema de arquivos.

  4. Confira se o sistema de arquivos EXT2 em arquivo-ext2 foi realmente montado no sistema de arquivos digitando df -T. Para detalhes, veja “df”.

Pronto! o que você gravar para /mnt será gravado dentro do arquivo /tmp/arquivo-ext2. Como foi criado um sistema de arquivos EXT2 em arquivo-ext2, você poderá usar todos os recursos da partição EXT2 normal, como permissões de arquivos e diretórios, links simbólicos, etc.

O uso da opção loop=/dev/loop1 permite que o dispositivo /dev/loop1 seja associado ao arquivo /arquivo-ext2 e assim permitir sua montagem e uso no sistema.

  • Você poderá usar apenas -o loop com o comando mount, assim o kernel gerenciará automaticamente os dispositivos de loop.

  • Caso faça isto manualmente, lembre-se de usar dispositivos /dev/loop? diferentes para cada arquivo que montar no sistema. Pois cada um faz referência a um único arquivo.