Logo Passei Direto
Buscar

Partições primárias

Material sobre partições de disco rígido: define primária, estendida e lógica; limites do MBR; nomes (/dev/hda1…/hda16); exemplos de esquemas e layout para dual‑boot Linux/Windows; ferramentas (fdisk, cfdisk, parted), formatação (mkfs) e montagem.

User badge image
ana

em

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Partições primárias
Este tipo de partição contém um sistema de arquivos. Em um disco deve haver no mínimo uma e no máximo quatro partições primárias. Se existirem quatro partições primárias, nenhuma outra partição poderá existir neste disco. As partições primárias são nomeadas da seguinte forma:
* /dev/hda1
* /dev/hda2
* /dev/hda3
* /dev/hda4
Uma dessas partições deve estar marcada como ativa, ou seja, marcada como ‘bootável’ para que a BIOS possa iniciar a máquina por ela. 
Partição estendida
Isso mesmo, no singular. Só pode haver uma partição estendida em cada disco. Uma partição estendida é um tipo especial de partição primária que não pode conter um sistema de arquivos. Ao invés disso, ela contém partições lógicas. Se existir uma partição estendida, ela toma o lugar de uma das partições primárias, podendo haver apenas três.
Se houver, por exemplo, três partições no disco, sendo duas primárias e uma estendida, o esquema de nomes ficarão assim:
* /dev/hda1 (Primária) 
* /dev/hda2 (Primária) 
* /dev/hda3 (Estendida) 
Partições lógicas
Também chamadas de unidades lógicas, as partições lógicas residem dentro da partição estendida. Pode haver de uma a 12 partições lógicas em um disco. As partições lógicas são numeradas de 5 até 16. Em um disco contendo duas partições primárias, a partição estendida e 3 partições lógicas, o esquema seria o seguinte:
* /dev/hda1 (Primária)
* /dev/hda2 (Primária)
* /dev/hda3 (Estendida)
* /dev/hda5 (Lógica)
* /dev/hda6 (Lógica)
* /dev/hda7 (Lógica)
Note que, neste caso, não há uma partição nomeada como /dev/hda4, pois os números de 1 a 4 são reservados para partições primárias e para a partição estendida. 
Perceba que, mesmo sendo 16 o numero máximo de partições em um disco, apenas 15 poderão receber sistemas de arquivos, já que uma delas será estendida.
O HD pode ser dividido em 4 partições (primárias) 
A partição lógica fica dentro de uma primária (normalmente a última) 
Por exemplo: quando voce divide seu HD em 8 partições normalmente ocorre o seguinte: partição 1 (part. primária) e as demais (2, 3, 4, 5, 6, 7 e 8) partições ficam incluidas dentro da segunda partição primária. 
para se utilizar dois sistemas sendo um Linux e outro Rwindows, o ideal é particionar da seguinte forma: 
1 Partição primária para Rwindows. (1a) 
1 Partição Lógica para Linux (1b) 
1 Partição Lógica para SWAP (2b) - é bom ter swap com pelo menos 2x o tamanho de sua mem RAM para o Linux melhorar o desempenho. 
1 Partição Lógica para armazenar seus DADOS (3b) que poderão ser acessados pelos dois sistemas - e sempre que precisar formatar por causa do Rwindows não perder seus dados 
Sendo que (a) é uma partição e (b) outra dividida em 1b, 2b e 3b
As partições são divididas em três tipos: primária, estendida e lógica. 
Uma partição primária é uma partição que tem sua informação gravada no registro mestre de inicialização (MBR). Como um MBR é muito pequeno (512 bytes), somente quatro partições primárias podem ser definidas (por exemplo, de /dev/hda1 até /dev/hda4). 
Uma partição estendida é uma partição primária especial (significando que a partição estendida deve ser uma das quatro partições primárias possíveis), que contém mais partições. Tal partição não existia originalmente, mas como quatro partições eram muito pouco, estendeu-se o esquema de formatação sem perder compatibilidade com o método antigo. 
Uma partição lógica é uma partição dentro de uma partição estendida. Suas definições não são colocadas dentro do registro mestre de inicialização (MBR), mas são declaradas dentro da partição estendida. 
5.1 Partições
São divisões existentes no disco rígido que marcam onde começa onde termina um sistema de arquivos. As partições nos permitem usar mais de um sistema operacional no mesmo computador (como o GNU/Linux, Windows e DOS), ou dividir o disco rígido em uma ou mais partes para ser usado por um único sistema operacional ou até mesmo por diferentes arquiteturas (32 e 64 bits). 
Para gravar os dados, o disco rígido deve ser primeiro particionado (usando o cfdisk, parted, diskdruid, fdisk), escolher o tipo da partição (Linux Native, Linux Swap, etc) e depois aquela partição deve ser formatada com o mkfs.ext3 (veja Partição EXT3 (Linux Native), Seção 5.5). 
Após criada e formatada, a partição será automaticamente identificada como um dispositivo no diretório /dev (veja Identificação de discos e partições em sistemas Linux, Seção 5.12) . e deverá ser montada (Montando (acessando) uma partição de disco, Seção 5.13) para permitir seu uso no sistema. 
Uma partição de disco não interfere em outras partições existentes, por este motivo é possível usar o Windows, GNU/Linux e qualquer outro sistema operacional no mesmo disco. Para escolher qual deles será inicializado, veja Gerenciadores de Partida (boot loaders), Capítulo 6. 
Para particionar (dividir) o disco rígido em uma ou mais partes é necessário o uso de um programa de particionamento. Os programas mais conhecidos para particionamento de discos no GNU/Linux são fdisk, cfdisk e o Disk Druid. 
Lembre-se: 
Quando se apaga uma partição, você estará apagando TODOS os arquivos existentes nela! 
A partição do tipo Linux Native (Tipo 83) é a usada para armazenar arquivos no GNU/Linux, tanto ext2, ext3, ext4, reiserfs, xfs, etc. 
A partição do tipo Linux Swap (Tipo 82) é usada como memória virtual. 
Em sistemas novos, é comum encontrar o Windows instalado em uma partição que consome TODO o espaço do disco rígido. Uma solução para instalar o GNU/Linux é apagar a partição Windows e criar três com tamanhos menores (uma para o Windows, uma para o GNU/Linux e outra para a Memória Virtual do Linux (SWAP). Ou criar apenas 2 se você não quiser mais saber mais do Windows. 
A outra solução é usar o parted (e gparted sua versão gráfica), que trabalha com FAT16, FAT32, NTFS. Esta técnica também é chamada de Reparticionamento não destrutivo (e o outro obviamente Reparticionamento destrutivo). Para sistemas que foram formatados em Windows XP e superiores, é possível que o parted não consiga redimensionar o sistema, neste caso você pode reparticionar usando ferramentas como o ntfsresize ou Partition Magic (para Windows). 
Para mais detalhes sobre discos, partições ou como particionar seu disco, veja algum bom documento sobre particionamento (como a página de manual e documentação do fdisk, cfdisk, parted ou Disk Druid). 
5.2 Sistema de Arquivos
É criado durante a "formatação" da partição de disco (quando se usa o comando mkfs.ext3). Após a formatação toda a estrutura para leitura/gravação/permissões de arquivos e diretórios pelo sistema operacional estará pronta para ser usada. Normalmente este passo é feito durante a instalação de sua distribuição GNU/Linux. 
Cada sistema de arquivos tem uma característica em particular mas seu propósito é o mesmo: Oferecer ao sistema operacional a estrutura necessária para ler/gravar os arquivos/diretórios. 
Entre os sistemas de arquivos existentes posso citar: 
Ext2 - Usado em partições Linux Nativas para o armazenamento de arquivos. É identificado pelo código 83. Seu tamanho deve ser o suficiente para acomodar todo os arquivos e programas que deseja instalar no GNU/Linux (você encontra isto no manual de sua distribuição). Você deverá usar preferencialmente o ext3 para a instalação de seu sistema operacional. Para detalhes veja Partição EXT2 (Linux Native), Seção 5.3. 
Ext3 - Este sistema de arquivos possui melhorias em relação ao ext2, como destaque o recurso de jornaling e suporte a arquivos de até 16Gb. Ele também é identificado pelo tipo 83 e totalmente compatível com o ext2 em estrutura. O journal mantém um log de todas as operações no sistema de arquivos, caso aconteça uma queda de energia elétrica (ou qualquer outra anormalidade que interrompa o funcionamento do sistema), o fsck verifica o sistema de arquivos no ponto em que estava quando houve a interrupção, evitando a demora para checar todo um sistema de arquivos (que pode levar minutos em sistemasde arquivos muito grandes). Para detalhes veja Partição EXT3 (Linux Native), Seção 5.5. 
Reiserfs - Possui os mesmos recursos do ext3, mas seu design é bastante diferente. Bastante recomendavel para sistemas que possuem muitos arquivos pequenos (servidor web, etc). Possui o tempo de recuperação em caso de queda de energia menor que o ext3. Para detalhes veja Sistema de arquivos reiserfs, Seção 5.6. 
Swap - Usado em partições Linux Swap para oferecer memória virtual ao sistema. Note que é altamente recomendado o uso de uma partição Swap no sistema (principalmente se você tiver menos que 16MB de memória RAM). Este tipo de partição é identificado pelo código 82. Para detalhes veja Partição Linux Swap (Memória Virtual), Seção 5.7. 
proc - Sistema de arquivos do kernel (veja O sistema de arquivos /proc, Seção 5.8). 
FAT12 - Usado em disquetes no DOS. Não possui suporte a permissões, journaling. 
FAT16 - Usado no DOS e oferece suporte até discos de 2GB. Não possui suporte a permissões e journaling. 
FAT32 - Também usado no DOS e oferece suporte a discos de até 2 Terabytes. Não possui suporte a permissões e journaling. NTFS - Formato nativo de discos de sistemas operacionais Windows XP e superiores. Possui suporte a permissões de acesso e compactação nativa. 
5.3 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, Seção 5.3.1. 
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, Seção 5.3.2.
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. 
5.3.1 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, Seção 5.12. 
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, Seção 5.13. 
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. 
5.3.2 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: 
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
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. 
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. 
Confira se o sistema de arquivos EXT2 em arquivo-ext2 foi realmente montado no sistema de arquivos digitando df -T. Para detalhes, veja df, Seção 10.3. 
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. 
5.4 Journaling
O sistema de journaling grava qualquer operação que será feita no disco em uma área especial chamada "journal", assim se acontecer algum problema durante alterações no disco, ele pode voltar ao estado anterior do arquivo, ou finalizar a operação. 
Desta forma, o journal acrescenta ao sistema de arquivos o suporte a alta disponibilidade e maior tolerância a falhas. Após uma falha de energia, por exemplo, o journal é analisado durante a montagem do sistema de arquivos e todas as operações que estavam sendo feitas no disco são verificadas. Dependendo do estado da operação, elas podem ser desfeitas ou finalizadas. O retorno do servidor é praticamente imediato (sem precisar a enorme espera da execução do fsck em partições maiores que 10Gb), garantindo o rápido retorno dos serviços da máquina. 
Outra situação que pode ser evitada é com inconsistências no sistema de arquivos do servidor após a situação acima, fazendo o servidor ficar em estado 'single user' e esperando pelaintervenção do administrador. Este capítulo do guia explica a utilização de journaling usando o sistema de arquivos ext3 e reiserfs (veja Partição EXT3 (Linux Native), Seção 5.5 para detalhes). 
5.5 Partição EXT3 (Linux Native)
O sistema de arquivos ext3 faz parte da nova geração extended file system do Linux, sendo o padrão atual e tem como seu maior benefício o suporte a journaling e armazenamento eficiente de arquivos com até 16Gb de tamanho. 
O uso deste sistema de arquivos comparado ao ext2, na maioria dos casos, melhora o desempenho do sistema de arquivos através da gravação seqüencial dos dados na área de metadados e acesso mhash a sua árvore de diretórios. Mas pode trazer impactos na performance no caso de dispositivos de memória flash e quando utiliza arquivos para armazenar o sistema de arquivos. 
A estrutura da partição ext3 é semelhante a ext2, o journaling é feito em um arquivo chamado .journal que fica oculto pelo código ext3 na raiz da partição (desta forma ele não poderá ser apagado, comprometendo o funcionamento do sistema). A estrutura idêntica da partição ext3 com a ext2 torna mais fácil a manutenção do sistema, já que todas as ferramentas para recuperação ext2 funcionarão sem problemas. 
5.5.1 Criando um sistema de arquivos EXT3 em uma partição
Para criar uma partição ext3, utilize o comando mkfs.ext3 ou o mkfs.ext2 junto com a opção -j. As opções usadas pelo mkfs.ext3 são idênticas a do mkfs.ext2 (documentado em Criando um sistema de arquivos EXT2 em uma partição, Seção 5.3.1). A única vantagem desta ferramenta comparada ao mkfs.ext2 é que a opção -j é automaticamente adicionada a linha de comando para criar um sistema de arquivos com journal. Se você é daqueles que querem ter um controle maior sobre o tamanho do arquivo de journal, use a opção -J [tam] (onde tamanho é o tamanho em Megabytes). 
Quando uma partição ext3 é criada, o arquivo .journal é criado no raíz da partição, sendo usado para gravar os metadados das transações de journaling. A estrutura da partição ext2 não difere em nada da ext3, a não ser este arquivo e a opção "has_journal" que é passada a partição. 
Por exemplo, para criar uma partição ext3 em /dev/sda1: 
mkfs.ext3 /dev/sda1
ou
mkfs.ext2 -j /dev/sda1
Basta agora montar a partição com o comando mount /dev/sda1 /teste -t ext3 (para montar a partição em /teste. Após isto, modifique o /etc/fstab para montar a partição como ext3 quando o Linux for iniciado. Para mais detalhes veja Montando (acessando) uma partição de disco, Seção 5.13. ). Caso o suporte a ext3 tenha sido compilado no kernel, ele tentará detectar e montar a partição como ext3, caso contrário, ele usará ext2. 
Sua partição agora está montada como ext3, para conferir digite: df -T. 
OBS: Quando criar um sistema de arquivos ext3 em uma partição raíz (/), tenha certeza de incluir o suporte a ext3 embutido no kernel, caso contrário a partição será montada como ext2. 
5.5.2 Criando um sistema de arquivos EXT3 em um arquivo
As instruções para criar um sistema de arquivos ext3 em um arquivo não difere muito das instruções de Criando um sistema de arquivos EXT2 em um arquivo, Seção 5.3.2, apenas utilize a opção -j ou -J [tamanho_em_mb] (como explicado em Criando um sistema de arquivos EXT3 em uma partição, Seção 5.5.1). 
5.5.3 Fazendo a conversão do sistema de arquivos EXT2 para EXT3
Se você já possui um uma partição ext2 e deseja converte-la para ext3 isto poderá ser feito facilmente, de forma segura (sem qualquer risco de perda de dados) e você poderá voltar para o sistema ext2 caso deseje (veja Convertendo de EXT3 para EXT2, Seção 5.5.4). 
Primeiro, execute o comando tune2fs na partição que deseja converter com a opção -j ou -J [tamanho_journal] para adicionar o suporte a Journaling na partição. Este comando poderá ser executado com segurança em uma partição ext2 montada, após converter remontar a partição usando os comandos umount /particao e mount /particao. 
Após a conversão para ext3 é desnecessária a checagem periódica do sistema de arquivos (que por padrão é após 20 montagens e a cada 30 dias). Você pode desativar a checagem após o número máximo de montagens com a opção -c [num_vezes], e o número de dias máximos antes de verificar novamente com a opção -i [num_dias] (o uso de 0 desativa). Por exemplo: 
tune2fs -c 0 -i 90 /dev/sda2
Desativa a checagem após número máximo de montagens (-c 0) e diz para a partição ser verificada a cada 90 dias (-i 90). 
O último passo é modificar o /etc/fstab para que a partição seja montada como ext3 na inicialização e depois desmontar (umount /dev/sda2 e remonta-la (mount /dev/sda2) para usar o suporte ext3. Confira se ela está usando ext3 usando o comando df -T. 
OBS: Caso a partição convertida para ext3 seja a raíz (/), tenha certeza de incluir o suporte a ext3 embutido no kernel, caso contrário, a partição será montada como ext2. 
5.5.4 Convertendo de EXT3 para EXT2
Remover o suporte a ext3 de uma partição é simples, rápido e seguro. Execute os seguintes passos: 
 Execute o comando tune2fs -O^has_journal /dev/sdxx na partição que deseja remover o Journal. Este comando poderá ser executado em uma partição montada. 
 Modifique o /etc/fstab e altere a partição para ext2. 
 Desmonte e monte novamente a partição com os comandos: umount /dev/hdxx e mount /dev/sdxx. 
 Pronto! a partição agora é novamente uma partição ext2 normal, confira digitando df -T. 
Pronto, o suporte a ext3 foi removido do seu sistema e agora poderá usar a partição como ext2 normalmente (confira digitando df -T). 
5.5.5 Nomeando uma partição de disco ext2/ext3
O comando e2label é usado para esta função. 
e2label [dispositivo] [nome]
Onde: 
dispositivo
Partição que terá o nome modificado 
nome
Nome que será dado a partição (máximo de 16 caracteres). Caso seja usado um nome de volume com espaços, ele deverá ser colocado entre "aspas". 
Se não for especificado um nome, o nome atual da partição será mostrado. O nome da partição também pode ser visualizado através do comando dumpe2fs (veja dumpe2fs, Seção 5.5.7). 
Exemplo: e2label /dev/sda1 FocaLinux, e2label /dev/sda1 "Foca Linux"
5.5.6 Criando o diretório especial lost+found
O utilitário mklost+found cria o diretório especial lost+found no diretório atual. O diretório lost+found é criado automaticamente após a formatação da partição com o mkfs.ext2, a função deste diretório é pré-alocar os blocos de arquivos/diretório durante a execução do programa fsck.ext2 na recuperação de um sistema de arquivos (veja Checagem dos sistemas de arquivos, Seção 26.1). Isto garante que os blocos de disco não precisarão ser diretamente alocados durante a checagem. 
mklost+found
OBS: Este comando só funciona em sistemas de arquivos ext2/3/4 
Exemplo: cd /tmp;mklost+found;ls -a
5.5.7 dumpe2fs
Mostra detalhes sobre uma partição Linux. 
dumpe2fs [opções] [partição]
Onde: 
partição
Identificação da partição que será usada. 
opções
-b
Mostra somente os blocos marcado como defeituosos no sistema de arquivos especificado. 
Este comando lista diversas opções úteis do sistema de arquivos como o tipo do sistema de arquivos, características especiais, número de inodos, blocos livres, tamanho do bloco, intervalo entre checagens automáticas, etc. 
Exemplo: dumpe2fs /dev/sda1, dumpe2fs -b /dev/sda1
5.5.8 Partição EXT2 ou Arquivo?
Criar uma partição EXT2 ou um arquivo usando o loop? Abaixo estão algumas considerações: 
A partição EXT2 é o método recomendado para a instalação do GNU/Linux. 
O desempenho da partição EXT2 é bem melhor se comparado ao arquivo porque é acessada diretamente pelo Kernel (SO). 
O arquivo EXT2 é útil para guardarmos dados confidenciais em disquetes ou em qualquer outro lugar no sistema. Você pode perfeitamente gravar seus arquivos confidenciais em um arquivo chamado libBlaBlaBla-2.0 no diretório /lib e ninguém nunca suspeitará deste arquivo (acho que não...). Também é possível criptografa-lo para que mesmo alguém descobrindo que aquilo não é uma lib, não poder abri-loa não ser que tenha a senha (isto é coberto no documento Loopback-encripted-filesystem.HOWTO). 
O uso do arquivo EXT2 é útil quando você está perdendo espaço na sua partição EXT2 e não quer re-particionar seu disco pois teria que ser feita uma re-instalação completa e tem muito espaço em um partição de outro SO (como o Windows). 
Você poderia facilmente copiar o conteúdo de /var, por exemplo, para o arquivo EXT2ext2-l criado no diretório Raíz do Windows, apagar o conteúdo de /var (liberando muito espaço em disco) e então montar ext2-l como /var. A partir de agora, tudo o que for gravado em /var será na realidade gravado no arquivo ext2-l. 
Para o sistema acessar o arquivo, deve passar pelo sistema de arquivos loop e FAT32, isto causa um desempenho menor. 
5.6 Sistema de arquivos reiserfs
Este é um sistema de arquivos alternativo ao ext2/3/4 que também possui suporte a journaling. Entre suas principais características, estão que ele possui tamanho de blocos variáveis, suporte a arquivos maiores que 2 Gigabytes e o acesso mhash a árvore de diretórios é um pouco mais rápida que o ext3. 
Para utilizar reiserfs, tenha certeza que seu kernel possui o suporta habilitado (na seção File Systems) e instale o pacote reiserfsprogs que contém utilitários para formatar, verificar este tipo de partição. 
5.6.1 Criando um sistema de arquivos reiserfs em uma partição
Para criar uma partição reiserfs, primeiro instale o pacote reiserfsprogs (apt-get install reiserfsprogs). 
Para criar uma partição reiserfs, primeiro crie uma partição ext2 normal, e então use o comando: 
mkreiserfs /dev/sda?
Onde a "?" em sda?significa o número da partição que será formatada com o sistema de arquivos reiserfs. A identificação da partição é mostrada durante o particionamento do disco, anote se for o caso. sda é o primeiro disco rígido SATA, sdb é o segundo disco rígido SATA. Discos IDE 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, Seção 5.12. 
Algumas opções são úteis ao mkreiserfs: 
-s [num] - Especifica o tamanho do arquivo de journal em blocos. O valor mínimo é 513 e o máximo 32749 Kb. O valor padrão é 8193. 
-l [NOME] - Coloca um nome (label) no sistema de arquivos. 
-f - Força a execução do mkreiserfs. 
-d - Ativa a depuração durante a execução do mkreiserfs. 
Agora para acessar a partição deverá ser usado o comando: mount /dev/sda? /mnt -t reiserfs
Para mais detalhes veja Montando (acessando) uma partição de disco, Seção 5.13. 
Note que é possível criar um sistema de arquivos no disco rígido sem criar uma partição usando /dev/sda, /dev/sdb, etc. usando a opção -fEVITE FAZER ISSO! Como não estará criando uma partição, o disco estará preparado para uso 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. 
5.6.2 Criando um sistema de arquivos reiserfs em um arquivo
O sistema de arquivos reiserfs também poderá ser criado em um arquivo, usando os mesmos benefícios descritos em Criando um sistema de arquivos EXT2 em um arquivo, Seção 5.3.2. Para fazer isso execute os seguintes passos em seqüência: 
Use o comando dd if=/dev/zero of=/tmp/arquivo-reiserfs bs=1024 count=33000 para criar um arquivo arquivo-reiserfs vazio de 33Mb 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. Note que o tamanho mínimo do arquivo deve ser de 32Mb, devido aos requerimentos do reiserfs. 
Formate o arquivo com mkreiserfs -f /tmp/arquivo-reiserfs. Ele primeiro dirá que o arquivo arquivo-reiserfs não é um dispositivo de bloco especial (uma partição de disco) e perguntará se deve continuar, responda com y. 
O sistema de arquivos ReiserFS será criado em /tmp/arquivo-reiserfs e estará pronto para ser usado. 
Monte o arquivo arquivo-reiserfs com o comando: mount /tmp/arquivo-reiserfs /mnt -t reiserfs -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. O parâmetro -t reiserfs poderá ser omitido, se desejar. 
Confira se o sistema de arquivos ReiserFS em arquivo-reiserfs foi realmente montado no sistema de arquivos digitando df -T. Para detalhes, veja df, Seção 10.3. 
Pronto! o que você gravar para /mnt será gravado dentro do arquivo /tmp/arquivo-reiserfs. Você poderá usar todos os recursos de um sistema de arquivos reiserfs 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-reiserfs 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. 
5.7 Partição Linux Swap (Memória Virtual)
Este tipo de partição é usado para oferecer o suporte amemória virtual ao GNU/Linux em adição a memória RAM instalada no sistema. Este tipo de partição é identificado pelo tipo 82 nos programas de particionamento de disco para Linux. Para detalhes de como criar uma partição Linux Swap veja Criando sistema de arquivos Swap em uma partição, Seção 5.7.1. 
Somente os dados na memória RAM são processados pelo processador, por ser mais rápida. Desta forma quando você está executando um programa e a memória RAM começa a encher, o GNU/Linux move automaticamente os dados que não estão sendo usados para a partição Swap e libera a memória RAM para a continuar carregando os dados necessários pelo. Quando os dados movidos para a partição Swap são solicitados, o GNU/Linux move os dados da partição Swap para a Memória. Por este motivo a partição Swap também é chamada de Troca ou memória virtual. 
A partição swap é otimizada para permitir alta velocidade para mover dados da memória RAM para ela e vice versa. Note também que é possível criar o sistema de arquivos Swap em um arquivo ao invés de uma partição (veja Criando um sistema de arquivos Swap em um arquivo, Seção 5.7.2). 
5.7.1 Criando sistema de arquivos Swap em uma partição
O programa usado para formatar uma partição Swap é o mkswap. Seu uso é simples: 
mkswap /dev/sda?
Novamente veja Identificação de discos e partições em sistemas Linux, Seção 5.12 caso não souber identificar seus discos e partições. O nome do dispositivo da partição Swap pode ser visualizado através de seu programa de particionamento, você pode usar o comando fdisk -l /dev/sda para listar as partições no primeiro disco rígido e assim verificar qual dispositivo corresponde a partição Swap. 
A opção -c também pode ser usada com o mkswap para checar se existem agrupamentos danificados na partição. A opção -v1 permite a criação da swap usando mais de 128Mb (esta opção é a padrão). 
Com a partição Swap formatada, use o comando: swapon /dev/sda?para ativar a partição Swap (lembre-se de substituir ? pelo número de sua partição Swap). 
Observações: 
Versões antigas do kernel do GNU/Linux 2.0.xx e anteriores somente suportavam partições Swap de até 128MB. Nos novos kernels foi introduzida uma nova versão da swap. Para converter a swap antiga para uma nova versão reformate-a usando mkswap -v1 /dev/sda? (onde /dev/sda? especifica sua partição swap, obtida com o fdisk -l /dev/sda). 
Se utilizar mais que 1 partição Swap, pode ser útil o uso da opção -p NUM que especifica a prioridade em que a partição Swap será usada. Pode ser usado um valor de prioridade entre 0 e 32767, partições com número maior serão usadas primeiro, sendo que na montagem automática através de "mount -a" podem ser designados números negativos. 
Procure usar o número maior para partiçõesmais rápidas (elas serão acessadas primeiro) e números maiores para partições mais lentas. Caso precise desativar a partição Swap, use o comando: swapoff /dev/sda?.
5.7.2 Criando um sistema de arquivos Swap em um arquivo
Também é possível criar um arquivo que poderá ser usado como memória virtual. Veja passo a passo como fazer isso: 
Use o comando dd if=/dev/zero of=/tmp/troca bs=1024 count=64000 para criar um arquivo chamado troca vazio de 64Mb 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. 
Execute mkswap /tmp/troca para formatar o arquivo. Após concluir este passo, o sistema de arquivos Swap estará criado e pronto para ser usado. 
Digite sync para sincronizar os buffers para o disco, assim você não terá problemas em um servidor com muito I/O. 
Ative o arquivo de troca com o comando swapon /tmp/troca. 
Confira se o tamanho da memória virtual foi modificado digitando cat /proc/meminfo ou free. 
Observações: 
Podem ser usadas partições de troca e arquivos de troca juntos, sem problemas. 
Caso seu sistema já tenha uma partição de Swap, é recomendável deixar o acesso ao arquivo Swap com uma prioridade menor (usando a opção -p NUM com o comando swapon). 
5.7.3 Partição Swap ou Arquivo?
Criar uma partição de Troca ou um arquivo de troca? Abaixo algumas vantagens e desvantagens: 
A partição Swap é mais rápida que o arquivo Swap pois é acessada diretamente pelo Kernel. Se o seu computador tem pouca memória (menos que 512Mb) ou você tem certeza que o sistema recorre freqüentemente a memória virtual para executar seus programas, é recomendável usar uma partição Swap. 
O arquivo de troca permite que você crie somente uma partição Linux Native e crie o arquivo de troca na partição EXT2. 
Você pode alterar o tamanho do arquivo de troca facilmente apagando e criando um novo arquivo como descrito em Criando um sistema de arquivos Swap em um arquivo, Seção 5.7.2. 
É possível criar um arquivo de troca em outros tipos de partições como FAT16, FAT32, NTFS, etc. 
O arquivo de troca estará disponível somente após o sistema de arquivos que o armazena (ext2, fat32, etc) estar montado. Isto é um problema para sistemas com pouca memória que dependem do arquivo de troca desde sua inicialização. 
Ext2 foi projetado e implementado para corrigir as deficiências do Ext e prover um sistema que respeitasse a semântica UNIX. A influência do UNIX pode ser vista, por exemplo, na utilização de grupos de blocos, que são análogos aos grupos de cilindros utilizados pelo FFS [CARD, TS'O & TWEEDIE, 1994]. A versão original do FFS originou o que é hoje conhecido como UFS1 (Unix File System 1) [MCKUSIC & NEVILLE-NEIL, 2005].
O bloco, que consiste num conjunto de setores (cada setor tem 512 bytes), é a menor unidade de alocação para o Ext2. O tamanho pode ser de 1024, 2048 ou 4096 bytes e é definido na formatação. [BOVET e CESATI, 2005, p. 739].
O tamanho máximo de um volume Ext2 é de 8 TiB [MINGMING CAO et al, 2005]. Embora o superbloco (v. abaixo) contenha um campo de 32 bits que determina o número de blocos (s_blocks_count), o que permitiria armazenar até 16 TiB, o tamanho é limitado pelo número de grupos de bloco, que é de 65 536 (determinado pelo campo s_block_group_nr), pois o campo ocupa dois bytes (16 bits). Assim, caso o volume seja formatado usando blocos de 4 KiB, cada grupo de blocos tem até 32 768 blocos; com 65 536 blocos obtém-se o limite indicado (4 KiB * 32 768 * 65 536 = 8 589 934 592 KiB = 8 TiB).
As subseções a seguir descrevem, resumidamente, as estruturas do Ext2 (superbloco, nó-i, grupos de blocos, mapas de bits de blocos e de nós-i e tabelas de nós-i), que são mostradas com mais profundidade e detalhamento por Carrier [2005, pp. 449–460], Bovet & Cesati [2005, pp. 741–746] e, principalmente, no código fonte do Linux—neste texto foi usado como referência a versão 2.6.28.8 (de março de 2009) [TORVALDS et al, 2009].
EXT3
O Ext3 (Third Extended file system) é um sistema de arquivos desenvolvido por Stephen C. Tweedie para o Linux, que acrescenta alguns recursos ao Ext2, dos quais o mais visível é o journaling ou diário. O sistema de arquivos ext3 ou prorrogado terceiro é um sistema de arquivos com diário que é comumente usada pelo kernel Linux. É o padrão do sistema de arquivos para muitos populares distribuições Linux .Stephen C. Tweedie primeiro revelou que ele estava trabalhando na extensão ext2 no Diário do Linux ext2fs Filesystem em um documento de 1998 e mais tarde em uma lista de discussão do destacamento kernel em fevereiro de 1999, e o sistema de arquivos foi fundida com a a linha principal do kernel do Linux em novembro de 2001. Sua principal vantagem sobre ext2 é o diário, que melhora a confiabilidade e elimina a necessidade de verificar o sistema de arquivos após um desligamento imundo. Seu sucessor é o ext4 .
A principal diferença entre o Ext2 e o Ext3 é a implementação do journaling, que consiste em um registro (log ou journal) de transações cuja finalidade é recuperar o sistema em caso de desligamento não programado.
Há três níveis de journaling disponíveis na implementação do Ext3:
Journal: os metadados e os dados (conteúdo) dos arquivos são escritos no journal antes de serem de fato escritos no sistema de arquivos principal. Isso aumenta a confiabilidade do sistema com uma perda de desempenho, devido a necessidade de todos os dados serem escritos no disco duas vezes.
Writeback: os metadados são escritos no journal mas não o conteúdo dos arquivos. Essa opção permite um melhor desempenho em relação ao modo journal, porém introduz o risco de escrita fora de ordem onde, por exemplo, arquivos que são apensados durante um crash podem ter adicionados a eles trechos de lixo na próxima montagem.
Ordered: é como o writeback, mas força que a escrita do conteúdo dos arquivos seja feita após a marcação de seus metadados como escritos no journal. Esse é considerado um meio-termo aceitável entre confiabilidade e performance, sendo, portanto, o nível padrão.
Embora o seu desempenho (velocidade) seja menos atrativo que o de outros sistemas de arquivos (como Reiserfs e XFS), ele tem a importante vantagem de permitir que seja feita a atualização direta a partir de um sistema com ext2, sem a necessidade de realizar um backup e restaurar posteriormente os dados, bem como o menor consumo de processamento.
Enquanto em alguns contextos a falta de funções de sistemas de arquivos "modernos", como alocação dinâmica de inodes e estruturas de dados em árvore, poderia ser considerada uma desvantagem, em termos de "recuperabilidade" isso dá ao ext3 uma significante vantagem sobre sistemas de arquivos que possuem-nas. Os metadados do sistema de arquivos estão todos em locais fixos e bem conhecidos, e há certa redundância inerente à estrutura de dados, que permite que sistemas ext2 e ext3 sejam recuperáveis no caso de uma corrupção de dados significante, em que sistemas de arquivos em árvore não seriam recuperáveis.
Desvantagens
Funcionalidade
A estrutura da partição ext3 é semelhante à da ext2, pelo que a migração de um formato para o outro é simples. A adição do journaling é feita em um arquivo chamado .journal que fica oculto pelo código ext3 na partição (desta forma ele não poderá ser apagado, o que comprometeria o funcionamento do sistema). A estrutura idêntica da partição ext3 com a ext2 torna mais fácil a manutenção do sistema, já que todas as ferramentas para recuperação ext2 funcionarão sem problemas, sendo mesmo possível montar uma partição ext3 como se fosse ext2.
Como o ext3 visa uma grande compatibilidade com o ext2, muitas das estruturas on-disk são similares àquelas da ext2. Por causa disso, o ext3 não possui muitas das funções mais recentes como alocação dinâmica de inodes e tamanhos de blocos variáveis (fragmentos ou caudas).
Os sistemas de arquivos ext3 não podem ser checados enquanto são montados para escrita. Um dump do sistema de arquivos feito enquanto eleestá sendo montado para leitura e escrita pode resultar em dados corrompidos dentro do arquivo de dump.
Desfragmentação
Não há uma ferramenta online de desfragmentação funcional em nível de sistema de arquivos. Um desfragmentador offline da ext2, e2defrag, existe mas requer que um sistema ext3 seja revertido previamente ao ext2. Mas, dependendo das funcionalidades ativadas no sistema de arquivos, o e2defrag pode destruir dados; ele não sabe lidar com muitas das novas funcionalidades do ext3.2
Recuperação (Undeletion)
Diferentemente do ext2, o ext3 zera os ponteiros de blocos nos inodes de arquivos apagados. Ele faz isso para simplificar o acesso de leitura e escrita quando o journal está sendo utilizado após uma montagem "suja". Isso, no entanto, previne efetivamente que os arquivos sejam recuperados. O único recurso do usuário é fazer um "grep" no disco rígido para buscar por dados que sejam sinalizadores de início/fim de arquivo. Isso provê uma remoção de arquivos um pouco mais segura que em sistemas ext2, o que pode ser tanto uma vantagem quanto uma desvantagem.
Compressão
Suporte a compressão transparente de dados (disponível como um patchextra-oficial para ext2) não está disponível no ext3.
O ext3 tem um tamanho máximo para arquivos e para o sistema de arquivos inteiro. Esses limites dependem do tamanho de bloco do sistema de arquivos; a tabela abaixo resume esses limites:3
	Tamanho do bloco
	Tamanho máx. arquivo
	Tamanho máx. fs
	1 KiB
	16 GiB
	2 TiB
	2 KiB
	256 GiB
	8 TiB
	4 KiB
	2 TiB
	16 TiB
	8 KiB
	2 TiB
	32 TiB
O tamanho de bloco de 8KiB está apenas disponível para arquiteturas (como a alpha) que permitem paginação de 8 KiB.
EXT4
Introdução
O ext4 é a evolução do conhecido ext3, hoje o file-system padrão do GNU/Linux. O Linux oferece suporte a uma infinidade de file-systens e em uma instalação normal do sistema, os file-systens mais famosos são o reiserfs e o ext3. Ambos têm suas qualidades e deficiências que fazem com que um seja superior ao outro em alguns aspectos e vice-versa; situação que divide a opinião de muitos usuários. Na prática, podemos resumir que o reiserfs tem mais eficiência com arquivos de tamanho grande enquanto que o ext3 é mais rápido que o reiserfs na manipulação de arquivos pequenos. Tanto o reiserfs quanto o ext3 contam com o Journaling, um setor do file-system onde é feita a reportagem (journaling) de todas as ações feitas no hd antes de se escrever diretamente no file-system. Assim, em casos de sinistros, como um desligamento inadequado ou uma queda de energia, basta que o Filesystem consulte a seção de journaling e restaure tudo o que foi perdido sem a necessidade de uma checagem completa. Nesse aspecto, ext3 e reiserfs se comportam de formas diferentes. Enquanto o reiserfs privilegia a restauração imediata, o ext3 se preocupa em restaurar tudo na íntegra, o que resulta em consulta e restauração mais lenta, porém mais exata. O problema é que por ser mais lento, pode ocorrer um novo desligamento inadequado no momento exato em que o journaling está sendo atualizado.
Atualmente ambos os file-systens estão em fase de evolução, mas o reiserfs vem encontrando vários problemas, principalmente de ordem administrativa, como a prisão de Hans Reiser, seu desenvolvedor, enquanto que o ext3 evolui a passos largos para o ext4. No atual momento em que este artigo é escrito, o ext4 já é totalmente suportado pelas novas versões do kernel e já é possível usá-lo em nossos computadores e em servidores para testes.
As novidades do novo ext4
Com o passar dos tempos, muitos eventos forçaram a equipe de desenvolvimento do extfs (o nome da familia de file-system, compostas pelo ext2, ext3 e o futuro ext4) a desenvolver essa nova versão, até por que, o ext4 está mais para uma atualização do ext3 (em outros lugares, chamam isso de Service Pack :-P ) do que para uma versão nova. Isso por que nesse período de tempo, os desenvolvedores do extfs inflaram o ext3 com uma série de recursos complexos que, apesar de úteis, geraram alguns problemas como:
Alguns recursos novos encontraram problemas de incompatibilidade;
O código ficou altamente complexo e dificílimo para se manter;
As mudanças que deveriam causar alta disponibilidade estavam o tornando indisponível.
Por esses motivos, os desenvolvedores decidiram fazer um fork (nome dado a um programa que surge a partir do código do outro, com algumas modificações) do ext3, implementando novos recursos e que foi batizado de ext4.
O ext4 já era suportado desde a versão 2.6.19 do Kernel, porém, como ele vinha marcado como alpha, a maioria dos administradores não davam muita bola para ele. Esse quadro mudou a partir da versão 2.6.24.4 do kernel, que passou a dar suporte integral ao ext4 e todos os novos recursos, agora plenamente suportados. Dentre alguns desses recursos, podemos citar:
File system Gigante: O ext3 conseguia fazer uma partição de, no máximo, 32 TB (terabytes) e manipular arquivos de até 2 TB de tamanho. Isso é o que diz a teoria (e a documentação) por que na prática, esses números variam muito de acordo com a configuração do sistema e da arquitetura usada, a média seria algo como 2 TB para um file-system e 16GB para um arquivo.
O ext4, no entanto, tem uma margem real bem maior que essa: 1024 PB (petabytes) ou 1EB (exabyte) para partições e 16TB por arquivo. Isso ainda não é importante para servidores simples ou desktops, mas com certeza vai se tornar útil para servidores grandes, configurados em Raid e de alta disponibilidade.
Melhorias na pré-alocação: As vezes, um programa vai usar um espaço do hd mas não na hora, então ele reserva o espaço que vai usar, fazendo uma pré-alocação, ou seja, ele guarda aquele espaço pra ele e ninguém mais pode usar, como se fosse uma reserva. Para essa ação, a maioria dos file-systens enchem de zeros os Inodes que eles vão reservar. Quando essa ação é executada milhares de vezes, como em um banco de dados, esse tempo de escritas de zeros geram um delay de tempo desnecessário. O ext4 vai permitir pré-alocação de arquivos sem fazer isso, o que vai garantir uma melhoria na performance, principalmente nas rotinas de bancos de dados e em ferramentas multimidia.
Tempo de alocação extendido: O ext4 vai conseguir manter a alocação do espaço em disco até o último momento, o que pode trazer mais performance.
Maior números de subdiretórios: O ext3 colocava um limite de subdiretórios por pastas de 32000 pastas, se você achava isso um incômodo, boas notícias: não haverá limites para o ext4.
Checksum para o Journaling: Lembra-se daquele probleminha do journaling no ext3 que eu havia comentado no início desse artigo? Então..resolvido. Haverá checagem no Journaling, garantindo uma restauração mais rápida e a prova de falhas.
Desfragmentação On-Line: Sim..parece mentira mas o ext3 deixava os arquivos com um pouquinho, mas bem pouquinho de fragmentação. Agora não deixa mais. O ext4 vai desfragmentando enquanto os arquivos vão sendo alocados.
Undelete: Undelete é uma ferramenta disponível no ext4 que impede que um arquivo seja apagado. Isso pode ser muito útil para arquivos e pastas que não podem ser apagados e, por estarem direto no file-system, encontram-se acima do bem e do mal, até mesmo sobre a autoridade do root, anulando em definitivo a possibilidade de um apagamento acidental do arquivo.
Checagem rápida do file-system: O fsck está mais rápido por que a nova estrutura de organização de blocos permite que partes não usadas do hd sejam puladas, o que economiza tempo numa eventual checagem.
Como o ext4 ainda está em fase de desenvolvimento, alguns recursos listados podem não trabalhar como se espera ou podem não estar totalmente implementados e o uso de outros pode causar incompatibilidades com o ext3 (Um file sistem ext3 pode ser montado como ext4, mas o inverso ainda não é possível).
Compilando o Kernel para ativação do ext4
Até o momento em que este arquivo é escrito, o kernel atual da família Ubuntu, Debian, Kurumin e Slackwarenão oferecem o suporte nativo ao ext4. Isso quer dizer que para usá-lo, teremos que compilar uma nova versão do kernel em nosso computador. Mas calma.. Isso não é uma tarefa terrível, vamos fazer passo a passo e tudo dará certo, se você nunca compilou um kernel antes essa será a melhor hora para aprender ;-).
Em primeiro lugar, como vamos fazer a compilação do kernel, aproveite para pegar a versão mais atual, para ter tudo atualizadíssimo no seu computador. Dependendo de como o kernel for configurado em sua máquina, você vai sentir uma diferença sensível na performance... Para melhor é claro! Baixe o kernel a partir de http://kernel.org. No momento em que este artigo é escrito, a versão mais nova é a 2.6.25.4. Baixe a versão "full" do kernel, pelo link que é indicado pelo F, e em seguinda, descompacte o kernel na pasta /usr/src/:
# tar -xjvf linux-2.6.25.4.tar.bz2 -C /usr/src
Em seguida vá até a pasta /usr/src/ e refaça o link linux dessa pasta; se não houver, faça o link apontando para a pasta que contém o seu novo kernel:
# rm -rf linux
# ln -sf /usr/src/linux-2.6.25.4 linux
# cd linux
Agora chegou a hora de configurar o novo kernel. Há duas formas de se fazer isso: A primeira é configurando todos os recursos do kernel, um por um e outra é copiando uma configuração genérica. Vamos aproveitar o artigo para explicar essa parte de configuração do kernel.
Imagine se você tivesse todos os Cds de drivers para windows do mundo copiados no seu computador. Não importa em que computador você estivesse instalando o seu windows, sempre haveria um driver disponível para usar. É isso que acontece com o kernel do linux, só que de forma bem mais rápida e mais leve. O kernel mantém suporte para todos os itens de hardware do computador a diferença é que no linux não chamamos de drivers, mas sim de módulos. Os módulos ficam "dormindo" no computador para não deixar o sistema pesado; quando um item de hardware é detectado, o módulo correspondente é "acordado" e é carregado na memória, fazendo com que o item funcione corretamente. Os drivers podem ser organizados como módulos ou podem ser compilados diretamente junto com o kernel, ou seja, você pode configurar o kernel para que os itens de hardware de seu computaodor sejam compilados junto com ele. Isso vai gerar mais performance por que não será necessário que o sistema carregue os módulos correspondentes do seu computador. Outra ação que faz muita diferença na performance do sistema é o processador. Por padrão, um kernel genérico normal deve suportar todos os processadores, mas compilar um kernel para o processador de seu computador faz toda a diferença.
Bem, voltando ao ext4, as instruções a seguir são para fazer uma instalação genérica do kernel. Na pasta /boot costuma haver um arquivo de configuração do kernel atual, que geralmente é nomeado como config-versão_do_kernel (ex.: config-kanottix-2.6.18.8.shl). Copie esse arquivo para a pasta de seu kernel atual com o nome de .config. Esse é um arquivo de configuração lido pelo kernel que evita que configuremos cada item, tarefa que apesar de gerar um resultado eficiente, toma horas do nosso tempo.
# cp -a /boot/config-versao_do_kernel /usr/src/linux/.config
Agora que a configuração está feita, vamos ativar o suporte ao ext4 na configuração do kernel. Para abrirmos a tela de configuração do kernel, precisamos ter o programa libncurses5-dev instalado e usar o terminal maximizado.
# apt-get install libncurses5-dev
edepois do ncurses instalado, a configuração:
# make menuconfig
Com a tela de configuração do kernel aberta, vá emFile System e marque a opção Ext4dev/ext4 extended fs support development (EXPERIMENTAL). Se preferir, marque também as opções de suporte ao ext4 que surgem logo abaixo, assim que o ext4 é marcado. Escolha exit até sair da tela de configuração do kernel e não esqueça de salvar.
Agora é hora de compilar o kernel, basta usar o make e depois instalar os módulos com o comando make modules_install. O make demora mesmo e se ele perguntar algo, responda a opção padrão para tudo:
# make
# make modules_install
Ok.. Kernel compilado com suporte à ext4.
Configurando o novo Kernel
Os módulos já estão instalados no sistema mas é preciso atualizar o kernel também para que os módulos instalados funcionem, para isso é necessário bootar com o novo kernel que, até agora, está dentro da pasta /usr/src/linux/arch/i386/boot/bzImage. Copie esse arquivo para a pasta /boot com o nome vmlinuz-2.6.25.4:
# cp -a /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.25.4
Em seguida, crie um novo initrd para o novo kernel com o comando:
# update-initramfs -c -k 2.6.25.4
Agora vamos configurar o grub para bootar a partir do novo kernel e initram. Use o comando update-grub:
# update-grub
Ok.. O grub está configurado, reinicie o computador e, na tela de escolha do sistema operacional, escolha o seu novo kernel para dar boot.
Ativando e usando o ext4
Antes de formatar ou montar uma partição ext4, você precisa que as ferramentas de manutenção do file-system dêem suporte ao novo ext4, já que não faria o menor sentido estar com o file-system novo e não usar nenhum dos seus recursos. O truque está em atualizar o e2fsprogs. Por enquanto, o apt-get NÃO dispõe da versão com suporte a ext4 e por isso será necessário baixar o e2fsprogs pelo git onde encontramos a versão para desenvolvimento e compilar no computador.
# apt-get install git-svn
# git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
# cd e2fsprogs
# git checkout -b pu
(Switched to a new branch "pu")
# git branch
( master
* pu)
# git pull git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git pu
# ./configure
# make
# make install
Se tudo correu bem até aqui então agora é só usar o novo ext4.
Para usar o novo ext4 em uma nova partição, basta que você formate ela com o comando mkfs.ext4. No exemplo abaixo, vamos considerar que a partição /dev/hda6 vai ser formatada para usar o novo file-system.
# mkfs.ext4 /dev/hda6
Para usar o ext4 numa partição que já existe e que foi formatada previamente com o ext3, basta que ela seja montada usando o ext4dev no tipo do file-system conforme o comando abaixo:
$ mount -t ext4dev /dev/hda1 /mnt/hda1
No exemplo acima, a partição hda1 será montada em /mnt/hda1 com o formato de arquivos ext4. Enquanto o ext4 ainda for uma versão em desenvolvimento, o tipo do file-system a ser passado de parâmetro para o mount é ext4dev, depois que ele for oficial será ext4 apenas.
Para montar a partição raiz do sistema pode-se editar o arquivo /etc/fstab e mudar o tipo de file-system para ext4dev no lugar de ext3 na linha que monta o diretório / conforme o exemplo abaixo:
/etc/fstab
(...)
/dev/hda1 / ext4dev defaults 0 0
(...)
Na próxima reinicialização o sistema já virá montado como ext4.
Atenção!! Seja cauteloso com o uso do ext4 em partições que foram criadas com ext3 anteriormente. Se algum novo recurso for usado não será possível voltar para o ext3, portanto use na partição / apenas se souber o que está fazendo ou se quiser arriscar mesmo.
Conclusão
De uma forma geral, não há grandes diferenças para usuário finais em usar ou testar o novo ext4. A menos que você tenha mais do que 32 mil subpastas ou tenha arquivos maiores que 16 Gigas em seu computador :-P. Em computadores de produção, sente-se uma grande diferença no tráfego de dados e testes já podem ser feitos em servidores de arquivos ou servidores web. Esse file-system ainda está voltado para administradores de sistema, mas mesmo assim, vale a pena o teste e o trabalho para se habituar ao novo sistema de arquivos e suas ferramentas. Outra diferença grande pode ser percebida ao se rodar o fsck.ext4 ou quando um desligamento repentino acontece. Tudo estará (ficou melhor) rodando mais rápido. Bem, analisando tudo... está aprovado, viva o novo!! ;-)
O Ext4 é um sistema de arquivos do Linux desenvolvido para ser o sucessor do Ext3 a partir de 2006.
História
Em 28 de junho de 2006, TheodoreY. "Ted" Ts'o propôs 1 a bifurcação (fork) do desenvolvimento do Ext3. Esse passo foi necessário para atender às discussões em torno da evolução do Ext3. Mingming Cao, dentre outros, citou a limitação desse sistema de arquivos por causa do uso de variáveis de 32 bits e indicou que já havia esforços para aumentar o tamanho daquelas variáveis para 48 bits2 . O Ext4 foi incluído (marcado como "em desenvolvimento") no Linux 2.6.193 .Em 11 de Outubro de 2008, os patches que marcam o ext4 como códigos estáveis foram mesclados em repositórios de código de fonte do Linux 2.6.28, que denota o fim da fase de desenvolvimento e recomenda a adoção do ext4.
Mathur et al [2007], no "Ottawa Linux Symposium" de 2007, descreveram as principais características a serem implementadas no Ext4, e mostraram a razão de não desenvolverem um sistema de arquivos inteiramente novo pela compatibilidade com o Ext3, por causa de sua base já instalada.
O Ext3 suporta sistemas de arquivos com tamanho menor que 16 TiB, usando blocos de 4 KiB (212 bytes). Esse limite é definido por uma variável de 32 bits no superbloco, o valor máximo suportado exato é de (232-1) * 212 bytes. O tamanho de arquivo é limitado por uma variável de 32 bits no nó-i, um contador de setores, daí a limitação em ~2 TiB ((232 - 1) * 512 bytes). [MATHUR et al, 2007]
A primeira providência para aumentar aqueles valores foram: (i) aumentar o contador de blocos no superbloco para 64 bits,isso permitiria um sistema de arquivos com ~64 ZiB (~276 bytes = ~264 * 212 bytes). (ii) alterar a contagem de setores para blocos no nó-i,permitindo arquivos com até ~16 TiB ((232-1) * 212 bytes).
Entretanto, o limite para o tamanho do volume é determinado pela alocação de espaço, que no Ext4 é definido por extensões, que usam 48 bits [MATHUR et al, 2007], o limite para o volume é de ~1 EiB ((248-1) * 212 bytes).
A partir do Linux 2.6.253 , em 2008, foram adicionados 16 bits ao contador de blocos do arquivo, no nó-i. Assim um arquivo no Ext4 tem um limite atual de 1 EiB, o mesmo do volume.
Funcionalidades
As novas funcionalidades propostas são: alocação tardia (delayed allocation); marcas temporais com maior resolução (nanossegundos)4 ; verificação de integridade do journal (journal checksums); suporte para tamanhos maiores de volumes e arquivos 5 . mais extensões são introduzidas,compatibilidade com versóes anteriores, pré alocação, mais rapido sistema de arquivo de verificação,alocador multibloco, melhor timestamps. Deixa de existir um limite de sub-directorios no ext46 .
Alocação tardia
Ext4 usa uma técnica de execução do sistema de arquivos chamado atribuir-on-flush , também conhecida como a atribuição de atraso. Isso melhora o desempenho e reduz a fragmentação , melhorando a alocação de blocos decisões com base no tamanho do arquivo.
Jornal checksumming
Ext4 usa checksums no jornal para melhorar a confiabilidade, já que o jornal é um dos arquivos mais utilizados do disco.Esta característica tem um lado benéfico, que pode evitar com segurança um disco I / O esperar durante o processo diário, melhorando o desempenho ligeiramente.
Suporte para tamanhos maiores de volumes e arquivos
O sistema de arquivos ext4 pode suportar volumes com tamanho até 1 exabyte e arquivos com tamanho até 16 terabytes . O atual e2fsprogs só pode tratar um sistema de arquivos de 16 TB.
Extensões
As extensões são introduzidas para substituir o tradicional bloco de mapeamento de esquema usado por arquivos ext2/3.Uma extensão é um conjunto de blocos contíguos físico, melhorando o desempenho de muitos arquivos e redução de fragmentação. Uma única extensão em ext4 pode mapear até 128MB de espaço contíguo com um bloco de 4 KB de tamanho. Quando há mais de 4 extensões em um arquivo, o resto das extensões são indexadas em uma three.
Compatibilidade com versões anteriores
O sistema de arquivos ext4 é compatível com o ext3 e ext2 Isto irá melhorar o desempenho já ligeiramente, porque alguns novos recursos do ext4 também pode ser usado com ext3 e ext2, tal como o novo algoritmo de alocação de blocos.
Pré alocação
O sistema de arquivos ext4 permite pré-alocação de espaço em disco para um arquivo. Um novo fallocate chamada de sistema foi adicionado ao Linux para uso de sistemas de arquivos, incluindo ext4 e XFS, que têm essa capacidade.
O mais rápido sistema de arquivos de verificação
No ext4, bloco alocado grupos e secções da tabela de inode são marcados como tal. Isso permite que e2fsck para ignorá-los completamente em uma verificação e reduz o tempo necessário para verificar o sistema de arquivos do tamanho do ext4 é construída para suportar. Esse História
Em 28 de junho de 2006, Theodore Y. "Ted" Ts'o propôs 1 a bifurcação (fork) do desenvolvimento do Ext3. Esse passo foi necessário para atender às discussões em torno da evolução do Ext3. Mingming Cao, dentre outros, citou a limitação desse sistema de arquivos por causa do uso de variáveis de 32 bits e indicou que já havia esforços para aumentar o tamanho daquelas variáveis para 48 bits2 . O Ext4 foi incluído (marcado como "em desenvolvimento") no Linux 2.6.193 .Em 11 de Outubro de 2008, os patches que marcam o ext4 como códigos estáveis foram mesclados em repositórios de código de fonte do Linux 2.6.28, que denota o fim da fase de desenvolvimento e recomenda a adoção do ext4.
Mathur et al [2007], no "Ottawa Linux Symposium" de 2007, descreveram as principais características a serem implementadas no Ext4, e mostraram a razão de não desenvolverem um sistema de arquivos inteiramente novo pela compatibilidade com o Ext3, por causa de sua base já instalada.
O Ext3 suporta sistemas de arquivos com tamanho menor que 16 TiB, usando blocos de 4 KiB (212 bytes). Esse limite é definido por uma variável de 32 bits no superbloco, o valor máximo suportado exato é de (232-1) * 212 bytes. O tamanho de arquivo é limitado por uma variável de 32 bits no nó-i, um contador de setores, daí a limitação em ~2 TiB ((232 - 1) * 512 bytes). [MATHUR et al, 2007]
A primeira providência para aumentar aqueles valores foram: (i) aumentar o contador de blocos no superbloco para 64 bits,isso permitiria um sistema de arquivos com ~64 ZiB (~276 bytes = ~264 * 212 bytes). (ii) alterar a contagem de setores para blocos no nó-i,permitindo arquivos com até ~16 TiB ((232-1) * 212 bytes).
Entretanto, o limite para o tamanho do volume é determinado pela alocação de espaço, que no Ext4 é definido por extensões, que usam 48 bits [MATHUR et al, 2007], o limite para o volume é de ~1 EiB ((248-1) * 212 bytes).
A partir do Linux 2.6.253 , em 2008, foram adicionados 16 bits ao contador de blocos do arquivo, no nó-i. Assim um arquivo no Ext4 tem um limite atual de ~1 EiB, o mesmo do volume.
Funcionalidades
As novas funcionalidades propostas são: alocação tardia (delayed allocation); marcas temporais com maior resolução (nanossegundos)4 ; verificação de integridade do journal (journal checksums); suporte para tamanhos maiores de volumes e arquivos 5 . mais extensões são introduzidas,compatibilidade com versóes anteriores, pré alocação, mais rapido sistema de arquivo de verificação,alocador multibloco, melhor timestamps. Deixa de existir um limite de sub-directorios no ext46 .
Alocação tardia
Ext4 usa uma técnica de execução do sistema de arquivos chamado atribuir-on-flush , também conhecida como a atribuição de atraso. Isso melhora o desempenho e reduz a fragmentação , melhorando a alocação de blocos decisões com base no tamanho do arquivo.
Jornal checksumming
Ext4 usa checksums no jornal para melhorar a confiabilidade, já que o jornal é um dos arquivos mais utilizados do disco.Esta característica tem um lado benéfico, que pode evitar com segurança um disco I / O esperar durante o processo diário, melhorando o desempenho ligeiramente.
Suporte para tamanhos maiores de volumes e arquivos
O sistema de arquivos ext4 pode suportar volumes com tamanho até 1 exabyte e arquivos com tamanho até 16 terabytes . O atual e2fsprogs só pode tratar um sistema de arquivos de 16 TB.
ExtensõesAs extensões são introduzidas para substituir o tradicional bloco de mapeamento de esquema usado por arquivos ext2/3.Uma extensão é um conjunto de blocos contíguos físico, melhorando o desempenho de muitos arquivos e redução de fragmentação. Uma única extensão em ext4 pode mapear até 128MB de espaço contíguo com um bloco de 4 KB de tamanho. Quando há mais de 4 extensões em um arquivo, o resto das extensões são indexadas em um three.
Compatibilidade com versões anteriores
O sistema de arquivos ext4 é compatível com o ext3 e ext2 Isto irá melhorar o desempenho já ligeiramente, porque alguns novos recursos do ext4 também pode ser usado com ext3 e ext2, tal como o novo algoritmo de alocação de blocos.
Pré alocação
O sistema de arquivos ext4 permite pré-alocação de espaço em disco para um arquivo. Um novo fallocate () chamada de sistema foi adicionado ao Linux para uso de sistemas de arquivos, incluindo ext4 e XFS , que têm essa capacidade.
O mais rápido sistema de arquivos de verificação
No ext4, bloco alocado grupos e secções da tabela de inode são marcados como tal. Isso permite que e2fsck para ignorá-los completamente em uma verificação e reduz o tempo necessário para verificar o sistema de arquivos do tamanho do ext4 é construída para suportar. Esse recurso é implementado na versão 2.6.24 do Linux.
Alocador multibloco
O alocador multiblock é usado quando a atribuição atrasada é ativado por um sistema de arquivos, ou quando os arquivos são abertos no modo O_DIRECT. Esse recurso não afeta o formato de disco.
Melhor timestamps
Ext4 também adiciona suporte para a data-criado timestamps. Mas, como Theodore Ts'o salienta, ao mesmo tempo que é fácil de adicionar um campo data de criação extra no inode (portanto, tecnicamente permitindo suporte para data criada timestamps em ext4), é mais difícil de modificar ou adicionar o necessário sistema de chamadas , como stat () (que provavelmente exigiria uma nova versão), e as várias bibliotecas que dependem deles (como glibc ). Estas alterações exigem a coordenação de vários projetos. Portanto, mesmo se ext4 desenvolvedores implementar o suporte inicial para a data de criação de carimbos, esse recurso não estará disponível para programas de usuário para agora.
Desvantagens
Alocação tardia e potencial perda de dados
Como as mudanças de alocação atrasada que os programadores têm contado com o ext3, o recurso representa algum risco adicional de perda de dados nos casos em que o sistema trava antes que todos os dados tenham sido gravados no disco. Devido a isto, o ext4, na versão 2.6.30 do Linux, detecta automaticamente esses casos e reverte para o comportamento antigo. O cenário típico em que isso pode ocorrer é um programa que substitui o conteúdo de um arquivo sem forçar uma gravação para o disco com fsync. Existem duas maneiras comuns de substituir o conteúdo de um arquivo em sistemas Unix:
open ("file", O_TRUNC), write (fd, data); close (fd); Neste caso, um arquivo existente é truncado no momento da abertura (devido a O_TRUNC flag), então os novos dados são gravados. Desde a gravação pode demorar algum tempo, há uma oportunidade de perder o conteúdo mesmo com ext3, mas geralmente muito pequena. No entanto, porque o ext4 pode atrasar a atribuição arquivo de dados por um longo tempo, essa oportunidade é muito maior.
open ("File.New"); write (fd, dados); close (fd); rename ("File.New", "arquivo"); Um novo arquivo temporário ("File.New") é criado, inicialmente, que contém o novo conteúdo. Em seguida, o novo arquivo é renomeado sobre o antigo. A troca de arquivos pela "chamada" renomear é garantido para ser atômica por POSIX normas - ou seja, tanto o antigo arquivo continua, ou é substituído por um novo. Como o padrão ext3 "ordenada" journalling garantias modo de arquivo de dados são gravados no disco antes de metadados, isto garante que a técnica seja a idade ou o conteúdo do arquivo novo irá persistir no disco ext4 de alocação atrasada quebra essa expectativa, porque o arquivo de escrever pode ser adiado por um longo tempo, e mudar o nome é normalmente realizada antes de conteúdo novo arquivo chegar ao disco. Usando fsync com mais freqüência para reduzir o risco para o ext4 pode levar a sanções graves desempenho em ext3 montado com a data=ordered bandeira (o padrão na maioria das distribuições Linux. Em resposta, o ext4 no Linux 2.6.30 e versões mais recentes detecta a ocorrência destes casos comuns e força os arquivos a serem atribuídos de imediato. Por um pequeno custo de performance, isso fornece semântica semelhante ao ext3 modo ordenado e aumenta a chance que tanto a versão do arquivo vai sobreviver ao Os novos patches tornaram-se parte do Linux mainline 2.6.30.
recurso é implementado na versão 2.6.24 do Linux.
Alocador multibloco
O alocador multiblock é usado quando a atribuição atrasada é ativado por um sistema de arquivos, ou quando os arquivos são abertos no modo O_DIRECT. Esse recurso não afeta o formato de disco.
Melhor timestamps
Ext4 também adiciona suporte para a data-criado timestamps. Mas, como Theodore Ts'o salienta, ao mesmo tempo que é fácil de adicionar um campo data de criação extra no inode (portanto, tecnicamente permitindo suporte para data criada timestamps em ext4), é mais difícil de modificar ou adicionar o necessário sistema de chamadas , como stat () (que provavelmente exigiria uma nova versão), e as várias bibliotecas que dependem deles (como glibc ). Estas alterações exigem a coordenação de vários projetos. Portanto, mesmo se ext4 desenvolvedores implementar o suporte inicial para a data de criação de carimbos, esse recurso não estará disponível para programas de usuário para agora.
Desvantagens
Alocação tardia e potencial perda de dados
Como as mudanças de alocação atrasada que os programadores têm contado com o ext3, o recurso representa algum risco adicional de perda de dados nos casos em que o sistema trava antes que todos os dados tenham sido gravados no disco. Devido a isto, o ext4, na versão 2.6.30 do Linux, detecta automaticamente esses casos e reverte para o comportamento antigo. O cenário típico em que isso pode ocorrer é um programa que substitui o conteúdo de um arquivo sem forçar uma gravação para o disco com fsync. Existem duas maneiras comuns de substituir o conteúdo de um arquivo em sistemas Unix:
open ("file", O_TRUNC), write (fd, data); close (fd); Neste caso, um arquivo existente é truncado no momento da abertura (devido a O_TRUNC flag), então os novos dados são gravados. Desde a gravação pode demorar algum tempo, há uma oportunidade de perder o conteúdo mesmo com ext3, mas geralmente muito pequena. No entanto, porque o ext4 pode atrasar a atribuição arquivo de dados por um longo tempo, essa oportunidade é muito maior.
open ("File.New"); write (fd, dados); close (fd); rename ("File.New", "arquivo"); Um novo arquivo temporário ("File.New") é criado, inicialmente, que contém o novo conteúdo. Em seguida, o novo arquivo é renomeado sobre o antigo. A troca de arquivos pela "chamada" renomear é garantido para ser atômica por POSIX normas - ou seja, tanto o antigo arquivo continua, ou é substituído por um novo. Como o padrão ext3 "ordenada" journalling garantias modo de arquivo de dados são gravados no disco antes de metadados, isto garante que a técnica seja a idade ou o conteúdo do arquivo novo irá persistir no disco ext4 de alocação atrasada quebra essa expectativa, porque o arquivo de escrever pode ser adiado por um longo tempo, e mudar o nome é normalmente realizada antes de conteúdo novo arquivo chegar ao disco. Usando fsync com mais freqüência para reduzir o risco para o ext4 pode levar a sanções graves desempenho em ext3 montado com a data=ordered bandeira (o padrão na maioria das distribuições Linux. Em resposta, o ext4 no Linux 2.6.30 e versões mais recentes detecta a ocorrência destes casos comuns e força os arquivos a serem atribuídos de imediato. Por um pequeno custo de performance, isso fornece semântica semelhante ao ext3 modo ordenado e aumenta a chance que tanto a versão doarquivo vai sobreviver ao Os novos patches tornaram-se parte do Linux mainline 2.6.30.
XSF
O XFS é um sistema de arquivos inicialmente desenvolvido pela Silicon Graphics, Inc. para o seu sistema operacionalIRIX. Posteriormente teve seu código fonte liberado e foi adaptado para funcionar no Linux.
História
A SGI usava, no seu sistema operacional IRIX, o sistema de arquivos EFS (Extent File System), o qual era baseado no FFS (Fast File System) de Berkeley (criado por Marshall McKusick [McKusick, 2004]). O EFS usava alocação por extensões, em vez da alocação por blocos do FFS.
As principais limitações do EFS eram: limite de 8 GiB para o volume, arquivos com tamanho máximo de 2 GiB, taxa de transferência menor que a disponibilizada pelo hardware. Isso no início da década de 1990. Assim, o XFS foi projetado para substituir o EFS, visando escalabilidade e suporte a arquivos grandes. [SWEENEY et al, 1996]
Em outubro de 1993 foram publicados alguns artigos descrevendo o projeto para um novo sistema de arquivos [ANDERSON et al, 1993; DOUCETTE, 1993] — o nome do projeto era xFS. O XFS foi disponibilizado em dezembro de 1994 no IRIX 5.3 [ELLIS e RAITHEL, 1994].
Em outubro de 1999, no 3rd annual Atlanta Linux Showcase, Mostek et al apresentaram um trabalho mostrando como adaptar o XFS para o Linux [MOSTEK, 1999]. Em maio de 2001 foi lançada a versão 1.0 para Linux, por meio de patches. Finalmente, foi incorporado ao Linux 2.4.25, em fevereiro de 2004.
Principais características
O XFS é um sistema de arquivos desenvolvido em 64 bits, compatível com sistemas de 32 bits. Em plataformas de 64 bits, possui um limite de tamanho de 8 EiB para um volume e para cada arquivo; em 32 bits, usando page frame de 4 KiB, o tamanho máximo do volume ou de um arquivo é limitado a 16 TiB nota 1 .
Efetua alocação por extensões (v. abaixo) em vez de alocação por blocos.
Usa alocação dinâmica de nós-i.
É um sistema de arquivos com journaling.
Estrutura
A descrição será baseada no texto de Naujok [2006]. Algumas particularidades atuais referem-se à implementação para Linux, pois a última versão do Irix é de 2006 nota 2 .
O tamanho do bloco deve ser menor ou igual ao tamanho da moldura de página; portanto pode ser de 512, 1.024, 2.048 ou 4.096 bytes (x86, x86-64), até 8.192 bytes (várias arquiteturas RISC), ou até 16.384 bytes (IA-64 — Itanium). Não utiliza mapa de bits para gerenciamento de blocos e nós-i.
Um volume XFS é dividido em grupos de alocação (AG: Allocation Group), que são conjuntos de blocos (análogos aos grupos de blocos do Ext3 e grupos de cilindros do UFS1), cujo tamanho varia entre 16 MiB e 1 TiB. Por padrão são criados 8 grupos, exceto quando o tamanho da partição é maior que 8 GiB. A quantidade pode ser definida manualmente na formatação. Cada AG contém o superbloco (único, o superbloco em cada AG subseqüente é cópia do primeiro), os nós-i e informações dos blocos referentes ao próprio grupo.
Um nó-i tem um tamanho padrão de 256 bytes, podendo chegar a 2.048 bytes, desde que não exceda o tamanho do bloco. Os nós-i são criados dinamicamente, em grupos (chunks) de 64. Uma estrutura em árvore balanceada (B-tree) é usada para gerenciar esses grupos. Um nó-i é dividido em 3 partes: (i) o núcleo (core); (ii) área de dados (data fork); (ii) atributos estendidos (extended attribute fork).
O núcleo, cujo tamanho é 96 bytes, contém as seguintes informações, dentre outras: permissões e tipo do arquivo; dono (UID) e grupo (GID); número de referências (nlink, análogo ao hard link); tempos (atime, ctime, mtime); tamanho do arquivo, em bytes; número de extensões.
A área de dados, quando o arquivo é regular, contém: (i) ponteiros para as extensões (no máximo 19, para nós-i de 256 bytes e sem o uso de atributos estendidos); ou (ii) ponteiro(s) para lista(s) de extensões (em árvores balanceadas). Neste caso, o ponteiro pode ser para um árvore em 2 níveis, onde o primeiro nível aponta para outra árvore, que finalmente irá conter os ponteiros para as extensões do arquivo. Cada árvore pode apontar para até 254 extensões.
A alocação é feita por extensões (extents), que são agrupamentos de blocos contíguos; cada extensão pode ter até 8 GiB, quando o tamanho do bloco é de 4 KiB (a estrutura que usa a extensão reserva 21 bits para o tamanho da extensão em blocos). Para cada AG são mantidas duas estruturas em árvore balanceada para gerenciar os blocos: uma ordenada (decrescentemente) pelo tamanho de cada extensão; outra pelo endereço do bloco inicial de cada extensão.
Possui journaling de metadados e um extenso conjunto de ferramentas para manutenção, otimização e recuperação de dados e metadados. Não possui ferramenta para recuperar arquivos apagados. XFS(estrutura)
O XFS oferece suporte ao endereçamento de 64 bits e fornece desempenho bastante elevado utilizando árvores B+ tanto para a alocação de diretórios quanto de arquivos. O XFS também usa alocação baseada em extensão com suporte a tamanhos de blocos variáveis (de 512 bytes a 64KB). Junto com as extensões, o XFS usa alocação com atraso, na qual a alocação dos blocos do disco é atrasada até que os blocos sejam gravados no disco. Essa funcionalidade aprimora as opções de alocação de blocos sequenciais de discos, pois o número total necessário já será conhecido. Outras propriedades interessantes do XFS são a taxa garantida de entrada/saída (E/S —por meio de uma reserva de largura de banda para usuários do sistema de arquivos) e E/S direta, na qual os dados são copiados diretamente entre o disco e o buffer de espaço do usuário (em vez de serem armazenados por meio de vários buffers). O XFS usa a política com registro de mudanças no modo nova gravação.
Propriedades
Outras propriedades interessantes do XFS são a taxa garantida de entrada/saída (E/S —por meio de uma reserva de largura de banda para usuários do sistema de arquivos) e E/S direta, na qual os dados são copiados diretamente entre o disco e o buffer de espaço do usuário (em vez de serem armazenados por meio de vários buffers). O XFS usa a política com registro de mudanças no modo nova gravação.
Principais vantagens
Possui journaling em sua estrutura, porém o journal no XFS se comporta de forma similar a outros sistemas de arquivos, mantendo somente a gravação dos metadados dos arquivos no journaling, fazendo com que a consistência do sistema de arquivos como um todo fique preservada. 
XFS faz uso do journaling Lógico, assim, se um arquivo estiver sendo usado e as alterações dos metadados não forem gravadas antes de um erro ou falha (falta de energia por exemplo), todo ou uma parte do arquivo poderá ficar corrompido, já que seu conteúdo não foi salvo. 
É um sistema de arquivos de 64 bits compatível com sistemas de 32 bits também. 
Em sistemas 64 bits há um limite de tamanho de 8 EiB para cada arquivo, já em sistema de 32 bits o tamanho máximo do volume ou arquivo é limitado a 16 TiB. 
Tamanhos de blocos variáveis: Tamanho de blocos do sistema representa a unidade de alocação mínima. XFS permite que o sistema de arquivos seja criado com tamanhos de blocos que variam entre 512 bytes e 64 kilobytes, permitindo que o sistema de arquivos ajuste-o para o uso esperado. 
Quando está trabalhando com muitos arquivos pequenos, um tamanho de bloco pequeno é o ideal, mas para um sistema lidando principalmente com arquivos grandes, um tamanho de bloco maior pode proporcionar uma vantagem quanto ao desempenho. 
A desfragmentação online: Embora o XFS use alocação com atraso, isso melhora significativamente a resistência do sistema de arquivos para os problemas de fragmentação. XFS fornece um utilitário de desfragmentação que pode desfragmentar os arquivos com o sistema de arquivos em uso. 
A criação do sistema de arquivos XFS é muito rápida. 
Redimensionamento online: XFS oferece a 'xfs_growfs', utilitário para executar o redimensionamento online de sistemas de arquivos XFS. 
Espaço onde se encontra o sistemas de arquivos XFS podem ser alterados desde que haja espaço restante não alocado no dispositivopara adicionar ao XFS. Este recurso é normalmente usado em conjunto com o gerenciamento de volume, caso contrário a partição que mantém o sistema de arquivos terá que ser ampliada separadamente. 
Utilitários para gerenciamento do sistema de arquivos inclusos no xfsprogs, tais para checagem do mesmo, aplicação do sistema de arquivos, ajustes no sistema de arquivos entre outros. 
Cotas de disco: Cotas para sistemas de arquivos XFS são ativadas quando o sistema de arquivos é montado, diferente de outros sistemas de arquivos que na maioria exigem serem montados primeiro para depois ativar a quota com o quotaon. 
Trabalha muito bem com arquivos grandes (leitura e gravação), principalmente em sistemas que armazenam muitos arquivos de grande tamanho. Lembre-se o XFS foi desenvolvido para trabalhar em grandes sistemas, principalmente de 64 bits. 
Principais desvantagens
Redimensionamento do XFS não pode ser usado para diminuir o tamanho do mesmo, apenas aumentar. 
Operações usando metadados em XFS são muito lentas do que com outros sistemas de arquivos, produzindo mau desempenho em operações como deleções em massa de grandes números de arquivos pequenos. 
JSF
O JFS (Journaling FileSystem) é um sistema de arquivos desenvolvido pela IBM, disponível em licença open source, com o intuito de ser utilizado nos "UNIXes" que a IBM vendia. Além de possuir journal, ele permite que as partições do sistema sejam redimensionadas sem que seja necessário desligar o computador.
O sistema de arquivos JFS também usa a estrutura inode para armazenar a localização dos blocos de cada arquivo nas estruturas físicas do disco, a versão JFS2 armazena esses inodes em uma árvore binária para acelerar o acesso a essas informações. Esses blocos podem variar de 512 a 4096 bytes, e a alocação dos inodes é feita conforme é necessário.
Entretanto, inicialmente o JFS sofreu uma perda de credibilidade devido a constantes instabilidades e defeitos, caso este que atualmente encontra-se resolvido e assim muito estável.
JFS-Journaling FileSystem
É um sistema de arquivo criado pela IBM, para o sistema operacional AIX, utilizado também para uso no GNU/Linux e posteriormente teve seu código fonte liberado.
Criado para uso de servidores corporativos. Sendo um sistema com estrutura inode, que armazena a localização dos blocos de cada arquivo nas estruturas do disco.
O JFS é formado pelas seguintes estruturas internas:
Agregado: matriz de blocos de disco que inclui um superbloco e um mapa de alocação.
Fileset: contém as estruturas de controle, sendo O superbloco agregado, o mapa de alocação de disco, o descritor de arquivos, o mapa de inodes, os inodes, os diretórios e as estruturas de endereçamento representam as estruturas de controle ou metadados do JFS.
Logs: Os logs do JFS são mantidos em cada agregado e usados para gravar informações sobre operações nos metadados.
Journaling: armazena em logs os metadados.
JFS aloca dinamicamente o espaço para inodes de disco conforme sua necessidade, liberando esse espaço quando deixar de ser requerida. Esse suporte impede que os inodes se localizem em regiões fixas do disco. A versão JFS2 armazena esses I-nodes em uma árvore binária utilizada para acelerar o acesso a essas informações e, conseqüentemente, aumentar a velocidade de acesso aos dados dos arquivos, podem variar de 512 a 4096 bytes.
Principais vantagens
Reparação muito eficaz de um disco com badblocks, ele consegue marcar os setores defeituosos com muita precisão, algo que outros sistemas de arquivos para Linux não fazem. 
Criação do sistema de arquivos muito rápida, desde que não inclua para marcar os badblocks existentes do disco, pois se fizer isso vai demorar bastante. 
Possui vários utilitários para gerenciar o sistema de arquivos, todos eles inclusos no jfsutils, para aplicação e verificação de integridade do sistema de arquivos. 
Baixo consumo do processador. 
Suporte a journaling: O JFS usa um journal para manter somente a consistência dos metadados, ou seja, grava somente os metadados dos arquivos que sofrerão ações como modificação, por exemplo. Assim, apenas consistência de metadados (e não o conteúdo de arquivo) pode ser assegurado no caso de desligamento inadequado. Este é também o comportamento de XFS . Ext3 e ext4, por outro lado, usam o journal para gravar os metadados e os dados, apesar de ter outros modos de operação. 
Alocação dinâmica de inodes: JFS aloca dinamicamente espaço em disco. 
Principais desvantagens
Taxas de transferências baixas, nunca espere transferências com alta velocidade, pois o mesmo é lento. 
Foi desenvolvido com o propósito principal de trabalhar com arquivos grandes e não trabalha bem com arquivos pequenos. Na criação e desempacotamento de arquivos sua velocidade é baixa. 
O tamanho de uma partição e arquivo com o sistema de arquivos JFS aplicado só abriga 2 terabytes de espaço no total. 
REISERFS
Reiserfs é um sistema de arquivos usado geralmente em sistemas Linux.
Origem
Criado por Hans Reiser e inicialmente mantido pela empresa The Naming System Venture (Namesys) 12 , o ReiserFS foi o primeiro sistema de arquivos com suporte a “journaling” incluído no núcleo Linux 2.4+3 . São seus patrocinadores as empresas Novell e Linspire, embora a Novell tenha anunciado4 em Outubro de 2006 que o sistema de arquivos padrão no Suse Linux passou a ser o ext3.
Características
ReiserFS usa árvores balanceadas para tornar o processo de busca de arquivos, informações sobre segurança e outros metadados mais eficiente. Para arquivos muito pequenos, seus dados podem ser armazenados próximos aos metadados, então, ambos podem ser recuperados com um pequeno movimento do mecanismo da "cabeça" de leitura do disco. Essa propriedade vai contribuir para um melhor desempenho caso uma aplicação necessite abrir muitos arquivos pequenos rapidamente.5
No caso de um desligamento incorreto do sistema, o ReiserFS é capaz de recuperar a consistência do sistema de arquivos em pouco tempo e a possibilidade de perda de pastas ou partições é reduzida. Em compensação, os arquivos que eventualmente estiverem sendo gravados no exato momento em que acabou a energia ficarão com seus dados corrompidos, haverá acesso aos arquivos normalmente, mas o conteúdo estará truncado ou incompleto.
Características técnicas
As principais fontes para a descrição técnica do ReiserFS são: (i) Florian Buchholz6 ; (ii) o código fonte do Linux; (iii) o pacote reiserfsprogs.
O ReiserFS teoricamente suporta vários tamanhos de bloco: 512, 1024, 4096 e 8192 bytes. Entretanto, até a versão 3.6.21 do reiserfsprogs e até a versão 2.6.32 do Linux, o único tamanho suportado é de 4096 bytes (4 KiB). Um bloco pode ser formatado ou não-formatado. Um bloco formatado pode conter um dentre os seguintes itens: (i) stat, que contém os metadados de um arquivo ou diretório; (ii) diretório; (iii) direto, que contém dados de um arquivo, se seu tamanho for de até 4048 bytes; (iv) indireto, que aponta para blocos não-formatados. Blocos não-formatados armazenam dados de arquivos que ocupam mais que um item direto.
Desvantagens
Uma desvantagem do ReiserFS é o seu consumo de CPU muito elevado. Utiliza no mínimo 7 por cento da CPU, chegando a usar até 99 por cento, quando a actividade de disco é elevada.[carece de fontes]
O futuro do ReiserFS é atualmente dado como incerto7 , em virtude da prisão em 10 de Outubro de 2006 de Hans Reiser, seu criador, e sua condenação em 28 de Abril de 2008 pelo assassinato de sua mulher no início de Setembro de 2006. Atualmente, devido à paralisação das atividades da Namesys, o projeto ReiserFS está armazenado em kernel.org8 .
Journaling
Journaling é um recurso usado pelos sistemas de arquivos que consiste em uma área dedicada para registros, armazenando todas as ações que serão feitas nos arquivos, como gravação e/ou alteração de dados, por exemplo. Seja armazenamento somente de metadados, ou de metadados e dados de arquivos, permitindo restaurar o sistema de arquivos, caso aconteça algum erro inesperado. 
A principalfinalidade do 'journaling' é recuperar o sistema de arquivos de erros (tolerância de falhas), sejam eles causados pelo sistema, aplicações ou desligamentos incorretos de forma forçada ou inesperada. 
Com isso é possível localizar todas as operações que não haviam sido completadas, restaurando a consistência do sistema de arquivos e permitindo que o sistema operacional continue sendo utilizado. 
Com o 'jounaling', o sistema de arquivos passa a registrar em uma área especial chamada journal, ou log, as ações que serão feitas nos arquivos (gravação ou alteração de dados, por exemplo) antes da gravação no FS em si. 
Após a gravação no sistema de arquivos, seja dos blocos de arquivos ou dos metadados, as operações registradas no log são tidas como concluídas e, portanto, eliminadas. Este procedimento acontece de maneira extremamente rápida. 
Mas em que exatamente, o 'journaling' mostra-se vantajoso? 
Os registros no log são escritos antes que as mudanças efetivamente ocorram no sistema de arquivos. Estes registros somente são eliminados quando as mudanças são executadas nos arquivos. 
Se, por exemplo, o computador for desligado repentinamente (como ocorre em falta de energia elétrica), o sistema de arquivos verificará os registros existentes no 'journal' e executará aquilo que estiver marcado como não realizado. Isso faz com que o risco de perda de dados diminua drasticamente, já que o sistema operacional saberá 'onde parou'. 
Porém temos que ter em mente que este recurso não é anti-falhas e sim, um recurso para tolerar falhas até certo ponto. Pois esta tolerância não previne 100% de erros como os citados anteriormente, toda essa tolerância a falhas pode acabar de uma hora para outra, após várias quedas de energia ou desligamentos forçados. 
Contudo, nem todos os sistemas de arquivos que usam o 'journaling' possuem uma boa implementação do mesmo, fazendo com que este recurso não seja 100% confiável. 
Se você começar a desligar o sistema incorretamente com freqüência, vai perceber que, algumas vezes, o sistema não será capaz de verificar o 'journal', e o sistema de arquivos terá que ser verificado usando um utilitário para verificação da integridade do sistema de arquivos, tentando localizar todas as operações que não haviam sido completadas para tentar recuperar a integridade de alguns arquivos, fazendo com que, quase sempre, alguns arquivos sejam perdidos. 
Técnicas de journaling
Journal Físico: Consiste em registrar uma cópia antecipada de todos os blocos de arquivos que serão posteriormente gravados no sistema de arquivo principal. Se houver uma falha quando o sistema de arquivos está gravando, a gravação pode simplesmente ser repetida até a conclusão, quando o sistema de arquivo for montado da próxima vez. 
Se houver uma falha quando a gravação está sendo registrado no journal, a gravação parcial terá um checksum ausente, ou incompatível, e pode ser ignorada na próxima montagem do sistema de arquivos. 
Journal Lógico: Consiste em gravar apenas os metadados que sofrerão ações, tais como leitura/gravação e alteração dos arquivos. Um sistema de arquivos, com uma 'journal' lógico, ainda recupera-se rapidamente após um acidente, mas pode permitir que os dados não sejam recuperados devido a não gravação antecipada dos blocos do arquivo alterado ou em uso, causando corrupção de dados. Porém, isso aumenta o desempenho, nota-se mais isso na inicialização do sistema. 
Outras informações
Os sistemas de arquivos para GNU/Linux: JFS, XFS, ReiserFS, ext3 e ext4, possuem 'journaling'. 
O arquivo de log do 'journaling' pode estar no mesmo sistema de arquivos, ou em um sistema de arquivos de outra partição, e/ou outro disco. E seu tamanho pode ser aumentado também para melhorar o desempenho. 
Então o 'journaling' torna-se indispensável para os sistema de arquivos usados hoje e no futuro, pois é através deste recurso que temos uma certa tolerância a certos acontecimentos não planejados. 
http://pt.slideshare.net/wellgermano/sistemas-de-arquivos-e-parties
http://mublix.com.br/2011/05/27/sistemas-de-arquivos-xfs-no-centos-5/
http://pt.wikibooks.org/wiki/Guia_do_Linux/Iniciante+Intermedi%C3%A1rio/Discos_e_Parti%C3%A7%C3%B5es/Parti%C3%A7%C3%A3o_EXT3_%28Linux_Native%29
http://web.mit.edu/rhel-doc/3/rhel-sag-pt_br-3/ch-ext3.html
https://www.ibm.com/developerworks/br/linux/library/l-lpic1-v3-104-1/
http://www.tecmundo.com.br/tutorial/23890-como-acessar-particoes-do-linux-no-windows.htm
http://ubuntuforum-br.org/index.php?topic=94105.0
http://ubuntuforum-br.org/index.php?topic=74313.0
http://www.tassya.org/?p=315
http://www.vivaolinux.com.br/artigo/Sistemas-de-arquivos-para-GNU-Linux/
http://www.tccamargo.com/linux/tutoriais/filesystems.html

Mais conteúdos dessa disciplina