Sistema de arquivo Ext4 - um mergulho profundo no sistema de arquivo n

O que é o sistema de arquivos Ext4 – guia completo sobre Ext4

O Ext4 é o principal sistema de arquivos do Linux e, ao longo deste artigo, você aprenderá sobre a compatibilidade, histórico e diferentes maneiras de criar arquivos com ele.

Teste Grátis Teste Grátis
o que é sistema de arquivo ext4

O quarto sistema de arquivos estendido (Ext4) é o sistema de arquivos nativo do Linux feito para superar os problemas do Ext3. Este sistema de arquivos foi lançado pela primeira vez como extensões para Ext3, que eram compatíveis com versões anteriores. Mais tarde, por questões de estabilidade, o produtor decidiu que o código-fonte seria bifurcado, e todos os desenvolvimentos foram feitos. Além disso, o Google decidiu usar o Ext4 no Android 2.3. Ao longo deste artigo, você lerá sobre a compatibilidade, o histórico, os recursos do Ext4 e uma comparação lado a lado com outros sistemas de arquivos Linux.

Parte 1. Compatibilidade do sistema de arquivos Ext4

O sistema de arquivos Ext4 tornou-se o sistema de arquivos padrão para muitos distribuidores Linux populares, como Ubuntu e Debian. Este sistema de arquivos é oficialmente incompatível com Windows e macOS, mas existem maneiras de driblar essa limitação.

Os usuários do Windows têm várias opções. Eles podem usar aplicativos de terceiros, usar WSL 2 ou converter em NTFS. Confira os passos sobre como montar o Ext4 no Windows.

Como usuários do Mac, eles podem usar ferramentas como macFUSE, hosts de máquinas virtuais ou aplicativos de terceiros que concedem acesso a esse sistema de arquivos. Confira aqui o tutorial sobre como montar e acessar arquivos Ext4 no macOS.

Parte 2. História do sistema de arquivos EXT

cronologia do ext4

Minix

O Minix foi inicialmente criado em 1987 por Andrew S. Tanenbaum como uma ferramenta educacional para seu livro Operating Systems Design and Implementation. Hoje, é um sistema operacional orientado a texto com um kernel de menos de 6.000 linhas de código. A reivindicação mais proeminente do MINIX à fama é um exemplo de um microkernel, no qual cada driver de dispositivo é executado como um processo isolado. Esta estrutura aumenta a segurança e a confiabilidade porque um bug em um driver não pode derrubar o sistema inteiro.

Atualmente, o MINIX é comumente conhecido como uma nota de rodapé na história do GNU/Linux. Esse sistema de arquivos motivou Linus Torvalds a desenvolver o Linux, e alguns de seus trabalhos anteriores foram escritos no MINIX. A decisão anterior de Torvalds de oferecer suporte ao sistema de arquivos MINIX é responsável pelo suporte do kernel do Linux a quase todos os sistemas de arquivos imagináveis.

EXT

O primeiro sistema de arquivos EXT (Extended) foi composto por Rémy Card e lançado com o sistema operacional Linux em 1992 para superar as limitações de tamanho do sistema de arquivos Minix. As modificações estruturais imediatas foram nos metadados do sistema de arquivos, que era baseado no sistema de arquivos Unix (UFS), também conhecido como Berkeley Fast File System (FFS).

Existem informações limitadas sobre este sistema de arquivos porque ele teve problemas significativos e foi rapidamente substituído pelo sistema de arquivos EXT2.

EXT2

O sistema de arquivos Ext2 teve bastante sucesso no início. Os clientes usaram o Ext2 em distribuições Linux por vários anos e ficaram satisfeitos com isso. O sistema de arquivos EXT2 tem essencialmente as mesmas estruturas de metadados que o sistema de arquivos EXT. No entanto, EXT2 é mais direto ao considerar a quantidade de espaço em disco que resta entre as estruturas de metadados para uso futuro.

Semelhante ao Minix, o EXT2 contém um setor de inicialização no primeiro setor do disco rígido em que está instalado, que possui um registro de inicialização mínimo e uma tabela de partições. Além disso, você verá uma certa quantidade de espaço em disco reservado após a conclusão do setor de inicialização. Esse espaço reservado abrange o espaço entre o registro de inicialização e a primeira partição do HDD que geralmente está no próximo limite do cilindro.

estrutura do grupo de cilindros em sistemas de arquivo ext

EXT3

O sistema de arquivos EXT3 tinha o objetivo expresso de superar as enormes porções de tempo que o programa fsck necessário para recuperar totalmente uma estrutura de disco sabotada por um desligamento inadequado que aconteceu durante uma operação de atualização que estava sendo feita em seus arquivos. A singular adição ao sistema de arquivos EXT foi o recurso de journaling, que registra as mudanças que serão feitas no sistema de arquivos com antecedência.

O recurso de journaling diminui o tempo necessário para verificar as inconsistências no disco rígido após uma falha de dias para meros minutos, no máximo. Houve muitos assuntos relatados ao longo dos anos que derrubaram os sistemas dos usuários. Os detalhes poderiam ocupar um artigo inteiro, mas basta dizer que muitos deles foram autoinfligidos e não foram falhas no sistema. O recurso de journaling do sistema de arquivos EXT diminuiu o tempo de recuperação da inicialização.

EXT4

No EXT4, o fabricante mudou a alocação de dados de blocos fixos para extensões. Seu lugar inicial e final no disco rígido descreve uma extensão. Esta característica torna possível descrever arquivos longos e fisicamente adjacentes em uma única entrada de ponteiro iNode, o que pode diminuir muito o número de ponteiros necessários para definir a localização de todos os dados em arquivos maiores. O EXT4 reduz a fragmentação, espalhando os arquivos recém-criados pelo disco para que não sejam agrupados em um único local no disco, como fizeram numerosos sistemas de arquivos dos primeiros PCs.

Os algoritmos de alocação de arquivos buscam distribuir os arquivos da forma mais uniforme possível entre os grupos de cilindros e, quando a fragmentação é necessária, manter os extensões de arquivos descontínuos o mais próximo possível de outros, a fim de minimizar a procura de cabeçotes e a latência rotacional por lotes.

inode no sistema de arquivos ext4

Caso você precise recuperar dados de suas partições Ext2-Ext4, você pode usar o Wondershare Recoverit.

recuperação de dados do recoverit

Wondershare Recoverit - recupere seus dados preciosos no Mac

Mais de 5.481.435 de pessoas já baixaram.

O Recoverit pode encontrar dados da lixeira do Mac, dados perdidos de um setor defeituoso, corrupção do disco rígido e exclusão permanente acidental.

Este software é incrivelmente fácil de usar e ainda possui uma função de visualização, para que você possa verificar se está restaurando o arquivo correto.

Suporta a recuperação de mais de 1.000 tipos de formatos de arquivo: DOC/DOCX, XLS/XLSX, PDF, JPG, HEIF, HTML, INDD, EPS, MP4, MP3, zip, etc.

Versão gratuita para experimentar e versão paga para aproveitar mais.

Parte 3. Recursos do Ext4

  • Tamanho do sistema de arquivos: O Ext4 permite sistemas de arquivos de até 1 exbibyte e arquivos de até 16 tebibytes. O sistema de arquivos ext3 fornece apenas um tamanho máximo de sistema de arquivos de 16 TB e tamanho máximo de arquivo de 2 TB.
  • Extensões: A ideia de extensão significa “uma sequência limítrofe de blocos físicos”. Arquivos grandes são divididos em várias “extensões”. Os arquivos são então alocados para uma 'extensão única' em vez de um tamanho específico, ignorando assim o mapeamento indireto de blocos. Cada iNode armazena até 4 extensões de um arquivo e indexa o restante em um Htree. Portanto, as extensões permitem menos fragmentação devido a uma alocação sequencial de blocos e melhoram o desempenho.
  • Alocação atrasada e multibloco: A alocação multibloco (mballoc) aloca vários blocos para um arquivo em uma única operação, em vez de alocá-los um por um, como no ext3. Esse recurso reduzirá a sobrecarga de chamar o “alocador de bloco” várias vezes e otimizará a alocação de memória. No recurso de alocação atrasada, se uma função gravar dados em um disco em vez de alocá-los de uma só vez, os dados serão armazenados no cache. A alocação atrasada só gravará todos os dados no cache depois de "limpar" o cache. Essa técnica é chamada de “alocar na descarga”.
  • Desfragmentação online e velocidade fsck: A taxa de fragmentação é menor em sistemas ext4 devido às técnicas que mencionamos acima. No entanto, isso não significa 0% de fragmentação. A desfragmentação, quando necessária, pode ser feita online usando a ferramenta “e4defrag”.
  • Soma de controle de journaling: Ext4 usa a soma de controle de journaling para descobrir a saúde dos blocos de journaling. Este recurso é usado para evitar a corrupção de dados. Você pode desativar o modo de journaling no ext4 se isso causar sobrecarga.
  • Inodes/Marcas temporais: O sistema de arquivo ext4 tem um grande tamanho de iNode de 256 bytes por padrão, enquanto o ext3 tem apenas 128 bytes para inodes. A precisão do selo de tempo é armazenada em nanossegundos ao invés de segundos no caso do ext3.
  • Compatibilidade com versões anteriores: Sistemas de arquivos Ext3 podem ser migrados para ext4 facilmente sem formatação ou reinstalação do sistema operacional, desde que o kernel suporte o sistema de arquivos ext4.

Parte 4. Vantagens e desvantagens do Ext4

Prós:

Você pode utilizar diferentes discos/LUNs e ter um desempenho mais satisfatório. Fazer isso pode aumentar o desempenho dos bancos de dados, pois você pode ter o registro de transações em um armazenamento e os arquivos de dados em outro. Comparável a aplicativos baseados na Web com uso intensivo de E/S de disco

Você pode usar várias opções de montagem que aumentam a proteção ou influenciam o desempenho ou a estabilidade de forma mais granular.

Você gerencia o espaço separadamente. Assim, você pode ter um aplicativo malicioso que preenche o espaço que não está afetando outros aplicativos

A fragmentação de uma partição específica é separada da outra.

Você pode fazer capturas de tela, montar, desmontar, formatar, desfragmentar e monitorar o desempenho de sistemas de arquivos sem ajuda.

Você pode ter criptografia em volumes específicos.

Você pode montar volumes sob demanda.

Contras:

O sistema de arquivos aumenta a sobrecarga de administração.

Você terá mais casos de desperdício de mais espaço em disco do que o necessário.

Você terá mais incidentes envolvendo seu disco cheio.

É mais desafiador criar uma captura de tela consistente de um aplicativo em execução em diferentes volumes.

Ele usa um pouco mais de recursos.

Dependendo do tipo de volume (etiqueta do MS-DOS, LVM, btrfs...), talvez você não consiga alocar espaço com eficiência de um volume diminuindo outro volume.

Parte 5. Trabalhando com Ext4

  • Criando arquivos no sistema de arquivos Ext4

Para criar arquivos no Ext4, você precisa formatar a partição com o sistema de arquivos Ext4 usando o comando mkfs.ext4:

~]# mke4fs -t ext4 blockdevice

saída do comando mkfs.ext4

Nesta linha de comando, o dispositivo de bloco é uma partição que conterá o sistema de arquivos ext4 que você criará.

Rotulando a partição usando o comando e4label:

~]# e4label <block_device> new-label

Criando um ponto de montagem e montando o novo sistema de arquivos nesse ponto de montagem:

~]# mkdir /mount/point

~]# mount block_device /mount/point

  • Montando o sistema de arquivos Ext4 e configurando os parâmetros

Os usuários têm duas maneiras de montar sistemas de arquivos Ext4: usando opções padrão e configurando parâmetros. A linha de comando para usar as configurações padrão é a seguinte:

~]# mount block_device /mount/point

Para definir parâmetros para seu arquivo, use o comando tune2fs. Alguns parâmetros que você pode definir com este comando são os seguintes:

Definindo o rótulo do volume: Use a opção -L junto com tune2fs semelhante a esta linha de comando: sudo tune2fs -L Label_Name /dev/sda2

Listando os parâmetros do sistema de arquivos: Mais uma vez, use a opção -L com tune2fs idêntico à seguinte linha de comando: sudo tune2fs -l /dev/sda2

  • Redimensionando o sistema de arquivos Ext4

Os usuários devem garantir que o dispositivo de bloco subjacente tenha tamanho suficiente para o sistema de arquivos Ext4 que a linha de comando redimensionará. Use o comando resize4fs para alterar o tamanho de seus arquivos:

~]# resize4fs block_devicenew_size

  • Desfragmentação do sistema de arquivos Ext4

Alguns arquivos Ext4 são criados com a opção de extensão, o que significa que você pode usar o e4defrag para fazer a desfragmentação. Para verificar os níveis de fragmentação, use esta linha de comando:

sudo e4defrag -c /path/to/myfiles

Em alguns casos, a pontuação de fragmentação é zero, o que significa que a desfragmentação não é necessária. No entanto, se você quiser fazer isso, use a seguinte linha de comando:

e4defrag /path/to/myfiles

Parte 6. Ext versus outros sistemas de arquivos do Linux

O Linux oferece suporte a vários sistemas de arquivos, como Ext4, XFS, Btfrs, ZFS, JFS e NTFS. Cada tipo de sistema de arquivos resolve problemas diferentes e tem suas limitações.

Sistemas de arquivos Linux
Data de lançamento
Desenvolvedor
Uso ideal
limitações
Ext4 Dezembro de 2008 Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh Usado para aplicativos que usam um único thread de leitura ou gravação Não possui recurso de exclusão segura
XFS Maio de 2000 Silicon Graphics, Red Hat Melhor quando usado para grandes sistemas de computação e sistemas que exigem alto desempenho Operações de metadados mais lentas
Btrfs Março de 2009 Facebook, Fujitsu, Fusion-IO, Intel, Linux Foundation, Netgear, Oracle Corporation, Red Hat, STRATO AG e openSUSE Melhor quando usado para neutralizar obstáculos como tolerância a falhas, gerenciamento e proteção de dados Alto nível de fragmentação de dados
ZFS Junho de 2006 Sun Microsystems Criando um sistema de arquivos que se estende por uma série de unidades ou um pool Falha ao verificar a integridade da RAM em caso de erros de dados
JFS Junho de 2001 IBM e outros Mantendo os metadados consistentes ao executar o journaling Não sendo capaz de reduzir uma partição JFS
NTFS 1993 Microsoft Prevenção de perda de dados em caso de perda de energia Problemas de compatibilidade com Android e macOS

Você pode aprender qual sistema de arquivos Linux você deve usar para o seu computador no guia de vídeo abaixo:

Teste Grátis

Para Windows XP/Vista/7/8/10/11

Teste Grátis

Para macOS X 10.10 - macOS 13

Perguntas frequentes

Vários benchmarks concluíram que o sistema de arquivos ext4 pode executar várias operações de leitura e gravação mais rapidamente do que uma partição NTFS. Observe que, embora esses testes não indiquem desempenho no mundo real, podemos extrapolar esses resultados e usar isso como um dos motivos.

O formato do sistema de arquivos Ext4 é nativo do Linux e o sistema operacional Windows não oferece suporte por padrão, mas existem maneiras de evitar isso.

A principal razão para a incapacidade do Windows de ler o Ext4 é que ele não é feito com drivers criados para aquele sistema de arquivos.

Existem vários benchmarks na Internet afirmando que o formato do sistema de arquivos Ext4 é muito mais rápido que o FAT32 (e até o NTFS).