O que vem em sua mente quando falamos em armazenamento de dados em disco rígido / partição, gravação de CD / DVD ou mesmo a transferência de arquivos para o pendrive? Independentemente de qual seja a sua resposta, a partir de agora você pensará num elemento muito importante: o sistema de arquivos.
Um sistema de arquivos (file system, do inglês) é um processo lógico, responsável por gerenciar o meio e o local do disco em que os dados são guardados. Todas as operações internas do hardware que ficam “escondidas” dos usuários são manejadas por esse sistema.
Se você já formatou um pendrive, por exemplo, acredito que tenha percebido que não existe apenas um sistema de arquivos. Nesse caso, provavelmente se deparou com algumas nomenclaturas bastante conhecidas, como FAT32 e NTFS, formatos utilizados em sistemas da Microsoft.
Da mesma maneira, há diferentes sistemas de arquivos presentes no Linux. Cada formato tem seus pontos fortes e fracos — o que muito tem a ver com o avanço da tecnologia —, e esse é o assunto que abordarei no conteúdo.
Os cinco principais sistemas de arquivos para Linux
Vamos começar o artigo apresentando os sistemas de arquivos mais utilizados do Linux, incluindo alguns que já se encontram defasados. Encabeçando a lista, temos o popular formato Ext (extended file system), o primeiro sistema de arquivos desenvolvido especificamente para Linux.
Veja também o artigo: Arquivos no Linux.
1. Ext4: O sistema de arquivo mais utilizado no Linux
O Ext foi criado por Remy Card em 1992 para o sistema Minix (inicialmente), mas acabou voltando-se ao kernel Linux. Atualmente, o formato se encontra na quarta versão, lançada em 2008, sendo uma das opções preferidas dos usuários.
Em relação às versões anteriores (ext3 e ext2), o ext4 representa um salto importante, o qual resultou até o momento os sistemas Linux de alto desempenho disponíveis hoje em dia. Legal, mas quais são as características desse formato?
Um ótimo destaque é a escalabilidade que o ext4 oferece. Com ele, podemos trabalhar com arquivos de imenso volume — bem distante da casa dos terabytes. Além disso, ele conta com a função journaling, garantindo a integridade dos dados após interrupções ou “crash” no sistema.
2. JFS
Desenvolvido pela IBM para ser usado em sistemas baseados em UNIX, o Journaled File System (JFS) é considerado uma alternativa ao ext4. Se pesquisarmos a história do JFS, veremos que o sistema foi lançado antes mesmo do ext, em 1990/91, então o que explica ele ser adotado na atualidade?
No universo dos sistemas de arquivos a idade nem sempre é sinônimo de obsolescência. O JFS é um formato poderoso, dispõe da função journaling e tem uma função importantíssima aos profissionais Linux: fornecer estabilidade em sistemas de baixo desempenho.
3. ReiserFS
Desenvolvido por Hans Reiser, o ReiserFS surgiu em 2001 para fazer frente ao ext3 e, logo de início, mostrou grande potencial. Não por acaso, o ReiserFS chegou a ser o sistema de arquivos padrão do SuSe Linux e, também, ter apoio financeiro da DARPA no crescimento do projeto.
Poucos anos depois, em 2004, o sucessor é lançado: Reiser4. A equipe por trás do desenvolvimento do projeto, a Namesys, deu continuidade até o ano de 2007, depois de todo o escândalo envolvendo Hans.
Embora descontinuado, o Reiser4 ainda se destaca em relação a outros sistemas de arquivos na eficiência do uso de espaço em disco, a qual supera o ext4, por exemplo.
4. XFS: O sistema de arquivos padrão da Distribuição Linux Red Hat
O XFS foi desenvolvido pela Silicon Graphics na primeira metade dos anos 90 e, atualmente, tem a contribuição da equipe Red Hat. Até pelo envolvimento da Red Hat, o XFS é o sistema de arquivos padrão na distro RHEL e suas derivações.
O XFS foi desenvolvido pela Silicon Graphics em parceria com a Red Hat na primeira metade dos anos 90. Até pelo envolvimento da Red Hat, o XFS é o sistema de arquivos padrão na distro RHEL e suas derivações.
Um dos recursos que mais chamam atenção no XFS é a sua capacidade de reconhecer arquivos de até 8 exbibytes (equivalente a mais de 8 milhões de terabytes).
5. Btrfs
Fechando a lista, o B-Tree File System (Btrfs), desenvolvido de maneira independente por diversas instituições e gigantes do mercado, como:
- Linux Foundation;
- Intel;
- Oracle;
- Facebook;
- Red Hat;
- SuSe; e
- Fujistu.
O formato se caracteriza pela tolerância a falhas, manutenção, gerenciamento e sua capacidade de trabalhar com arquivos de até 16 exbibytes. É, sem dúvida alguma, um dos mais poderosos sistemas de arquivos — e ainda se encontra em franco desenvolvimento.
Criando um sistema de arquivos
Com os sistemas de arquivos devidamente apresentados, eis que surge a dúvida: como utilizar algum deles no sistema operacional? Inicialmente, é importante saber que o procedimento não requer formatação e pode ser feito rapidamente.
Para elucidar melhor a questão, vejamos como criar e instalar sistemas de arquivos ext4 e XFS.
Ext4
Criar um sistema de arquivos ext4 é mais simples do que você imagina. Utilize o comando mkfs da seguinte maneira ( em uma partição /dev/sdb1)
mkfs.ext4 /dev/sdb1
Obs.: Criar um sistema de arquivos é o mesmo que “formatar” uma partição.
XFS
Criar um sistema de arquivos XFS é um procedimento mais longo, porém fácil Primeiramente, instale os pacotes necessários para o XFS funcionar (no exemplo, estou usando o Ubuntu).
sudo apt-get install xfsprogs
Em seguida, prepare a partição que receberá o XFS usando o comando fdisk. Exemplo:
sudo fdisk /dev/sdb1
Use o comando mkfs.xfs para formatar a partição. Lembre-se de inserir a opção -f junto do comando, garantindo que o XFS seja instalado em cima do formato corrente.
sudo mkfs.xfs -f /dev/sdb1
Finalizando a criação do sistema de arquivos, você poderá montar o seu novo sistema de arquivos.
sudo mount -t xfs /dev/sdb1 /mnt/sdb1
Descobrindo o sistema de arquivos implantado no Linux
Há várias maneiras de identificar o sistema de arquivos utilizado em seu Linux. Neste tópico, apresento três métodos básicos usando o terminal. Vamos aos comandos?
Blkid
Usado para encontrar dispositivos ou exibir suas propriedades, o blkid fornece detalhes da partição quando o diretório é declarado. Exemplo:
blkid /dev/sdb1
File
Por sua vez, o comando file, usado para identificar o tipo de um arquivo, quando acompanhado da opção -sL, também fornece as informações sobre o sistema de arquivos. Exemplo:
sudo file -SL /dev/sdb1
Lsblk
O comando lsblk com a opção -f ($ lsblk -f), o terminal exibe todas as partições existentes no sistema.
A partir das explicações e procedimentos abordados neste artigo, você pode fazer escolhas mais inteligentes na hora de formatar um disco ou partição, recorrendo ao sistema de arquivos mais adequado às necessidades. Aproveitando o gancho, que tal criar uma partição SWAP em seu Linux?
No mais, se você é um estudante de TI com ambições de construir uma carreira de sucesso e sabe a importância do Linux para isso, faça uma visita a nossa página Profissionais Linux!