File systems (Português)

Status de tradução:
Esse artigo é uma tradução de
File systems
. Data da última tradução: 2020-09-13. Você pode ajudar a sincronizar a tradução, se houver
alterações
na versão em inglês.
Artigos relacionados
Particionamento
Arquivo de dispositivo#lsblk
Permissões e atributos de arquivo
fsck
fstab
List of applications/Utilities#Mount tools
QEMU#Mounting a partition from a raw image
udev
udisks
umask (Português)
USB storage devices
Do
Wikipédia
:
Na computação, um sistema de arquivos (em inglês, "file system" or "filesystem") controla como os dados são armazenados e recuperados. Sem um sistema de arquivos, as informações colocadas em uma mídia de armazenamento seriam um grande corpo de dados, sem nenhuma maneira de saber onde uma informação é interrompida e a próxima começa. Ao separar os dados em partes e dar um nome a cada parte, as informações são facilmente isoladas e identificadas. Tomando seu nome da maneira como os sistemas de informação em papel são nomeados, cada grupo de dados é chamado de "arquivo". A estrutura e as regras lógicas usadas para gerenciar os grupos de informações e seus nomes são chamadas de "sistema de arquivos".
Partições de unidades individuais podem ser configuradas usando um dos muitos sistemas de arquivos disponíveis diferentes. Cada um tem suas próprias vantagens, desvantagens e idiossincrasias únicas. Uma breve visão geral dos sistemas de arquivos suportados segue; os links são para páginas da Wikipédia que fornecem muito mais informações.
Tipos de sistemas de arquivos
The factual accuracy of this article or section is disputed.
Reason:
/proc/filesystems
somente lista os sistemas de arquivos cujo os módulos estão carregados. Desde que os
kernels do Arch
tem a maioria dos sistemas de arquivos colocados como módulos carregaveis,
/proc/filesystems
mostrará poucos, se qualquer, sistemas de arquivos usáveis. (Discuss in
Talk:File_systems
)
Veja
filesystems(5)
para uma visão geral e
Wikipedia:Comparison of file systems
para uma comparação detalhada das funcionalidades. Sistemas de arquivos suportados pelo kernel estão listados em
/proc/filesystems
.
Sistemas de arquivos FUSE e inclusos no kernel
Sistema de arquivos
Comando de criação
Utilitários do userspace
Archiso
[1]
Documentação do kernel
[2]
[3]
Notas
Btrfs
mkfs.btrfs(8)
btrfs-progs
Sim
btrfs.html
status de estabilidade
VFAT
mkfs.fat(8)
dosfstools
Sim
vfat.html
Sistema de arquivos do
Windows 9x
exFAT
mkfs.exfat(8)
exfatprogs
Sim
Sistema de arquivos nativo no Linux 5.4.
[4]
mkexfatfs(8)
exfat-utils
Não
N/A (baseado no FUSE)
F2FS
mkfs.f2fs(8)
f2fs-tools
Sim
f2fs.html
Dispositivos baseados no Flash
ext3
mke2fs(8)
e2fsprogs
Sim
ext3.html
ext4
mke2fs(8)
e2fsprogs
Sim
ext4.html
HFS
mkfs.hfsplus(8)
hfsprogs
AUR
Não
hfs.html
sistema de arquivos do
Mac OS Clássico
HFS+
mkfs.hfsplus(8)
hfsprogs
AUR
Não
hfsplus.html
sistema de arquivos do
macOS
JFS
mkfs.jfs(8)
jfsutils
Sim
jfs.html
NILFS2
mkfs.nilfs2(8)
nilfs-utils
Sim
nilfs2.html
NTFS
mkfs.ntfs(8)
ntfs-3g
Sim
N/A (baseado no FUSE)
sistema de arquivos do
Windows NT
ReiserFS
mkfs.reiserfs(8)
[
link inativo
2025-05-13]
reiserfsprogs
AUR
Sim
UDF
mkfs.udf(8)
udftools
opcional
udf.html
XFS
mkfs.xfs(8)
xfsprogs
Sim
xfs.html
xfs-delayed-logging-design.html
[
link inativo
2024-03-03 ⓘ]
xfs-self-describing-metadata.html
[
link inativo
2024-03-03 ⓘ]
Nota
O kernel tem sua própria implementação do driver do NTFS (veja
ntfs.html
[
link inativo
2024-07-30 ⓘ]
), mas tem suporte limitado a escrever arquivos.
Sistemas de arquivos não inclusos no kernel
Sistema de arquivos
Comando de criação
Conjunto de patches para o kernel
Utilitários do userspace
Notas
APFS
mkapfs(8)
linux-apfs-dkms-git
AUR
[
link quebrado
: package not found]
apfsprogs-git
AUR
sistema de arquivos do
macOS
(10.13 e posterior). Somente leitura, experimental.
Bcachefs
bcachefs(8)
linux-bcachefs-git
AUR
bcachefs-tools-git
AUR
Reiser4
mkfs.reiser4(8)
reiser4progs
AUR
ZFS
zfs-linux
AUR
,
zfs-dkms
AUR
zfs-utils
AUR
porte,
OpenZFS
Journaling
Todos os sistemas de arquivos acima, com exceção do exFAT, ext2, FAT16/32, Reiser4 (opcional), Btrfs e ZFS, usam
journaling
. O journaling fornece resiliência a falhas registrando as alterações antes que elas sejam confirmadas no sistema de arquivos. No caso de uma falha no sistema ou falha de energia, esses sistemas de arquivos são mais rápidos para voltar a ficar online e menos propensos a serem corrompidos. O registro ocorre em uma área dedicada do sistema de arquivos.
Nem todas as técnicas de journaling são iguais. Ext3 e ext4 oferecem journaling de modo de dados, que registra dados e metadados, além da possibilidade de registrar apenas alterações de metadados. O journaling em modo de dados tem uma penalidade de velocidade e não é ativado por padrão. Na mesma linha, o Reiser4 oferece os chamados
"modelos de transação"
que não apenas alteram os recursos que oferecem, mas também em seu modo de journaling. Ele usa diferentes técnicas de journaling: um modelo especial chamado
logs errantes
que elimina a necessidade de gravar no disco duas vezes
write-anywhere
—uma abordagem pura de copiar-ao-gravar (principalmente equivalente ao padrão do btrfs, mas com um design de "árvore" fundamentalmente diferente) e uma abordagem combinada chamada
hybrid
que alterna heuristicamente entre as duas anteriores.
Note
O Reiser4 fornece quase o equivalente ao comportamento padrão de journaling do ext4 (somente metadados) com o uso do plug-in
node41
, que também apresenta somas de verificação de metadados e de verificação em linha, opcionalmente combinado com o comportamento dos logs errantes que ele fornece dependendo em qual modelo de transação é escolhido no momento da montagem.
Os outros sistemas de arquivos fornecem journaling em modo ordenado, que registra apenas metadados. Embora todo o journaling retorne um sistema de arquivos a um estado válido após uma falha, o journaling no modo de dados oferece a maior proteção contra corrupção e perda de dados. Há um comprometimento no desempenho do sistema, no entanto, porque o journaling no modo de dados realiza duas operações de gravação: primeiro no journal e depois no disco (que o Reiser4 evita com o recurso "registros errantes"). A troca entre velocidade e dados do sistema segurança deve ser considerada ao escolher o tipo de sistema de arquivos Reiser4 é o único sistema de arquivos que, por padrão, opera com atomicidade total e também fornece somas de verificação para metadados e dados em linha (as operações ocorrem inteiramente, ou não e não corrompem ou destroem completamente) dados devido a operações que ocorrem pela metade) e, por design, são muito menos propensos à perda de dados do que outros sistemas de arquivos como
Btrfs
.
Os sistemas de arquivos baseados na cópia na gravação (também conhecidos como gravação em qualquer lugar), como Reiser4, Btrfs e ZFS, não precisam usar o journal tradicional para proteger os metadados, porque eles nunca são atualizados no local. Embora o Btrfs ainda tenha uma árvore de logs semelhante a um diário, ele é usado apenas para acelerar o fdatasync/fsync.
Sistema de arquivos baseados em FUSE
Veja
FUSE
.
Sistemas de arquivos empilháveis
eCryptfs
— O sistema de arquivos empresárial criptográfico é um pacote de encriptação de disco para Linux. É implementado com uma camada de encriptação no nível do sistema de arquivos e compátivel com POSIX, propondo funcionalidade similar ao GnuPG a nível do sistema operacional.
https://ecryptfs.org
||
ecryptfs-utils
mergerfs
— Um sistema de arquivos de união baseado no FUSE.
https://github.com/trapexit/mergerfs
||
mergerfs
AUR
mhddfs
— Sistema de arquivos de união FUSE para múltiplos HDDs.
http://mhddfs.uvw.ru
||
mhddfs
AUR
overlayfs
— OverlayFS é um serviço de sistema de arquivos que implementa uma montagem de união para outros sistemas de arquivos.
https://docs.kernel.org/filesystems/overlayfs.html
||
linux
Unionfs
— Unionfs é um serviço de sistema de arquivos para Linux, FreeBSD e NetBSD que implementa uma união para outros sistemas de arquivos.
https://unionfs.filesystems.org/
||
not packaged?
search in AUR
unionfs-fuse
— Uma implementação do Unionfs para o userspace.
https://github.com/rpodgorny/unionfs-fuse
||
unionfs-fuse
AUR
Sistema de arquivos somente leitura
EROFS
— O Enhanced Read-Only File System é um sistema de arquivos somente leitura leve, que visa melhorar o desempenho e compactar a capacidade de armazenamento.
https://docs.kernel.org/filesystems/erofs.html
||
erofs-utils
SquashFS
— SquashFS é um sistema de arquivos compactado somente leitura. SquashFS compacta arquivos, inodes e diretórios, suporta tamanhos de blocos até 1 MB para maior compactação.
https://squashfs.sourceforge.net/
||
squashfs-tools
Sistemas de arquivos em cluster
Ceph
— Unificado, distribuído sistema de armazenamento feito para excelente desempenho, confiabilidade e escabilidade.
https://ceph.com/
||
ceph
AUR
Glusterfs
— Sistema de arquivos de cluster capaz de ecalar para vários peta-bytes.
https://www.gluster.org/
||
glusterfs
IPFS
— Um protocolo de hipermídia ponto a ponto para fazer a web mais rápida, segura e aberta. IPFS aims replace HTTP and build a better web for all of us. Usa blocos para guardar partes de um arquivos, cada célula de rede guarda somente o conteúdo que é do seu interesse, oferece desduplicação, distribuição, sistema escalável limitado somente pelos usuários. (atualmente em alpha)
https://ipfs.io/
||
go-ipfs
[
link quebrado
: replaced by
kubo
]
MooseFS
— MooseFS é sistema de arquivos tolerante a falhas, alta disponibilidade e de alto desempenho distribuído em rede.
https://moosefs.com
||
moosefs
OpenAFS
— Implementação de código aberto do sistema de arquivos distribuído AFS
https://www.openafs.org
||
openafs
AUR
OrangeFS
— OrangeFS é um sistema de arquivos de rede em expansão feito para transparentemente acessar discos de armazenamento baseado em multiplos servidores, em paralelo. Tem suporte otimizado MPI-IO para aplicações paralelas e distribuídas. Simplifica o uso de armazenamento paraleo não somente para clientes Linux como também para Windows, Hadoop, e WebHAV. Compátivel com POSIX. Parte do Linux desde a versão 4.6.
https://www.orangefs.org/
||
not packaged?
search in AUR
Sheepdog
— Sistema de armazenamento de objetos distribuído para serviços de volume e container e gerencia os discos e células de forma inteligente.
https://sheepdog.github.io/sheepdog/
||
sheepdog
AUR
Tahoe-LAFS
— Tahoe Least-Authority Filesystem é um sistema de arquivos distribuído grátis e aberto, seguro, descentralizado, tolerante a falhas e banco de dados ponto a ponto.
https://tahoe-lafs.org/
||
tahoe-lafs
AUR
[
link quebrado
: package not found]
Identificando sistemas de arquivos existentes
Para identificar sistemas de arquivos existentes, você pode usar o
lsblk
:
$ lsblk -f
NAME   FSTYPE LABEL     UUID                                 MOUNTPOINT
sdb
└─sdb1 vfat   Transcend 4A3C-A9E9
Um sistema de arquivos existente, se presente, vai ser mostrado na coluna
FSTYPE
. Se
montado
, vai aparecer na coluna
MOUNTPOINT
.
Criar um sistema de arquivos
Sistemas de arquivo são normalmente criados em uma
partição
, dentro de containers lógicos como
LVM
,
RAID
e
dm-crypt
, ou em um arquivo normal (veja
Wikipedia:Loop device
). Esta seção descreve o caso da partição.
Nota
Sistemas de arquivos podem ser escritos diretamente para o disco, isto é conhecido como
superfloppy
ou
disco sem partição
. Existem certas limitações neste método, particularmente se
inicializar
por tal unidade de armazenamento. Veja
Btrfs (Português)#Disco Btrfs sem partições
para um exemplo.
Atenção
Depois de criar o novo sistema de arquivos, dados antes presentes nesta partição podem não ser mais recuperados.
faça um backup de quaisquer dados que você deseja manter
.
O propósito de dada partição pode restringir a escolha do sistema de arquivos. Por exemplo, uma
partição de sistema EFI
deve ter um sistema de arquivos
FAT32
, e o sistema de arquivo do diretório
/boot
deve ser suportado pelo
gerenciador de boot
.
Antes de continuar,
identifique o dispositivo
onde o sistema de arquivos vai ser criado e se ele está ou não montado. Por exemplo:
$ lsblk -f
NAME   FSTYPE   LABEL       UUID                                 MOUNTPOINT
sda
├─sda1                      C4DA-2C4D
├─sda2 ext4                 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 /mnt
└─sda3                      56adc99b-a61e-46af-aab7-a6d07e504652
Sistemas de arquivos montados
devem
ser
desmontados
antes de proceder. No exemplo acima um sistema de arquivo existente no
/dev/sda2
está montado em
/mnt
. Este deve ser desmontado com:
# umount /dev/sda2
Para achar somente os sistemas de arquivos montados, veja
#Listar sistemas de arquivos montados
.
Para criar um novo sistema de arquivos, use o
mkfs(8)
. Veja
#Tipos de sistemas de arquivos
para o exato tipo, e também os utilitários do userspace que você pode instalar para um sistema de arquivos particular.
Por exemplo, para criar um novo sistema de arquivos do tipo
ext4
(comum para partições de dados no Linux) no
/dev/sda1
, rode:
# mkfs.ext4 /dev/sda1
Dica
Use a opção
-L
do
mkfs.ext4
para especificar um
rotúlo (label) sistema de arquivos
.
e2label
pode ser usado para mudar o rotúlo de um sistema de arquivos existente.
Sistemas de arquivos podem ser
redimensionados
depois da criação, no entanto, podem existir com certas limitações. Por exemplo, o tamanho do sistema de arquivos
XFS
pode ser aumentado, mas não reduzido. Veja
Wikipedia:Comparison of file systems#Resize capabilities
e a documentação do respectivo sistema de arquivos para detalhes.
O novo sistema de arquivos pode ser montado para um diretório de escolha.
Montar um sistema de arquivos
Para manualmente montar um sistema de arquivos localizado em um dispositivo (exemplo, uma partição) para um diretório, use
mount(8)
. Este exemplo monta
/dev/sda1
no
/mnt
.
# mount /dev/sda1 /mnt
Isto liga o sistema de arquivos em
/dev/sda1
para o diretório
/mnt
, fazendo seu conteúdo visível. Quaisquer dados que existiam no
/mnt
antes desta ação ficam invisíveis até que o dispositivo seja desmontado.
O
fstab
contém informações de como dispositivos devem ser automaticamente montados, se presentes. Veja o artigo do
fstab
para mais informações de como modificar este comportamento.
Se um dispositivo é especificado no
/etc/fstab
e somente o dispositivo ou ponto de montagem é dado na linha de comando, a informação presente no fstab vai ser usada para a montagem. Por exemplo, se o
/etc/fstab
contém uma linha indicando que
/dev/sda1
deveria ser montado para
/mnt
, então o seguinte vai automaticamente montar o dispositivo para este diretório:
# mount /dev/sda1
Ou
# mount /mnt
mount
contém algumas opções, muitas destas dependem do sistema de arquivos especificado.
As opções podem ser mudadas, ao:
usar opções na linha de comando com
mount
editando o
fstab
criando regras do
udev
compilando o kernel você mesmo
ou usando scripts para montagem de um sistema de arquivos específico (localizado em
/usr/bin/mount.*
).
Veja estes artigos relacionados e o artigo do sistema de arquivos de interesse para mais informações.
Dica
Sistemas de arquivos também podem ser montados com
systemd-mount
ao invês do
mount
. Se o ponto de montagem não é especificado, o sistema de arquivos vai ser montado automaticamente em
/run/media/system/
identificador_do_dispositivo
/
. Isto permite facilmente montar um sistema de arquivos sem ter de decidir onde montá-lo. Veja
systemd-mount(1)
para modo de uso e mais detalhes.
Listar sistemas de arquivos montados
Para listar todos os sistemas de arquivos montados, use
findmnt(8)
:
$ findmnt
findmnt
recebe uma variedade de argumentos que podem filtrar a saída e mostra informações adicionais. Por exemplo, é possível receber um dispositivo ou ponto de montagem como um argumento para somente mostrar informações sobre ele:
$ findmnt /dev/sda1
findmnt
coleta informações do
/etc/fstab
,
/etc/mtab
, e
/proc/self/mounts
.
Desmontar um sistema de arquivos
Para desmontar um sistema de arquivos, use
umount(8)
. O dispositivo que contém o sistema de arquivos (exemplo,
/dev/sda1
) ou o ponto de montagem (exemplo,
/mnt
) deve ser especificado:
# umount /dev/sda1
ou
# umount /mnt
Veja também
filesystems(5)
systemd-mount(1)
Documentação de sistemas de arquivos suporteados pelo Linux
Wikipedia:File systems
Wikipedia:Mount (Unix)