Pular para o conteúdo principal

Capítulo 3.8 - Tipos de Sistemas de Arquivos

Objetivos de Aprendizagem​

Ao final deste capítulo, você será capaz de:

  • Compreender os diferentes tipos de sistemas de arquivos
  • Identificar os sistemas de arquivos mais comuns
  • Escolher o sistema de arquivos adequado para cada caso
  • Entender sistemas de arquivos especiais

O que é um Sistema de Arquivos?​

Um sistema de arquivos (File System) define como os dados são organizados e armazenados em um disco. O Linux suporta diversos tipos de sistemas de arquivos.


Sistemas de Arquivos Locais​

ext4 (Fourth Extended)​

O mais comum no Linux:

Características:

  • Journaling: Resistente a falhas
  • Tamanho máx: 1EB (exabyte)
  • Arquivo máx: 16TB
  • Estável e maduro

Uso:

  • Sistema de arquivos padrão
  • Discos locais
  • Servidores generalistas

Comandos:

# Criar
mkfs.ext4 /dev/sda1

# Verificar
fsck.ext4 /dev/sda1

# Ver informações
tune2fs -l /dev/sda1

xfs​

Desempenho para arquivos grandes:

Características:

  • Muito rápido para arquivos grandes
  • Tamanho máx: 8EB
  • Arquivo máx: 8EB
  • Alocação dinâmica

Uso:

  • Bancos de dados
  • Arquivos volumosos
  • Servidores de alta performance

Comandos:

# Criar
mkfs.xfs /dev/sda1

# Verificar
xfs_repair /dev/sda1

# Ver informações
xfs_info /dev/sda1

btrfs (B-Tree File System)​

Funcionalidades avançadas:

Características:

  • Snapshots: Instantâneos
  • Compressão: Transparente
  • Copy-on-Write: Eficiente
  • RAID integrado

Uso:

  • Sistemas que precisam de snapshots
  • Backups
  • Ambientes de desenvolvimento

Comandos:

# Criar
mkfs.btrfs /dev/sda1

# Criar um snapshot
btrfs subvolume snapshot /mnt/data /mnt/data/snapshot1

# Compressão
mount -o compress=zlib /dev/sda1 /mnt

Comparação​

FSTamanho MáxArquivo MáxJournalUso
ext41EB16TBSimGeral
xfs8EB8EBSimArquivos grandes
btrfs16EB16EBSimAvançado

Sistemas de Arquivos de Rede​

NFS (Network File System)​

Compartilhamento de arquivos em rede:

# Servidor: Exportar
# /etc/exports
/home/user1 192.168.1.0/24(rw,sync)

# Cliente: Montar
mount -t nfs server:/home/user1 /mnt/nfs

Uso:

  • Compartilhamento de arquivos entre sistemas Unix/Linux
  • Servidores de arquivos centralizados

CIFS/SMB​

Compatível com Windows:

# Montar um compartilhamento Windows
mount -t cifs //server/share /mnt/smb -o username=user

Uso:

  • Compartilhamento entre plataformas
  • Compatibilidade com Windows

Sistemas de Arquivos Especiais​

tmpfs​

Em memória (RAM):

# Montar tmpfs
mount -t tmpfs -o size=1G tmpfs /mnt/tmpfs

# Usado para:
# - /tmp (frequentemente)
# - /dev/shm (memória compartilhada)

Características:

  • Muito rápido (RAM)
  • Temporário (perdido ao reiniciar)
  • Tamanho limitado pela RAM

procfs​

Interface com o kernel:

# Montado automaticamente em /proc
# Contém:
# - /proc/cpuinfo: Info CPU
# - /proc/meminfo: Info memória
# - /proc/pid/: Detalhes de processos

Características:

  • Sistema de arquivos virtual
  • Dados em tempo real
  • Somente leitura (geralmente)

sysfs​

Informações do sistema:

# Montado automaticamente em /sys
# Contém:
# - /sys/class/: Classes de dispositivos
# - /sys/devices/: Dispositivos

Características:

  • Interface de hardware
  • Configuração de hardware
  • Virtual

Comandos de Gerenciamento​

Ver Sistemas de Arquivos Montados​

# Lista simples
mount

# Formato legível
df -h

# Tipos de sistemas de arquivos
mount | grep -E '^/dev' | awk '{print $5}' | sort -u

Montar/Desmontar​

# Montar
mount /dev/sda1 /mnt
mount -t ext4 /dev/sda1 /mnt

# Montar com opções
mount -o rw,noexec /dev/sda1 /mnt

# Desmontar
umount /mnt
umount /dev/sda1

# Forçar desmontagem (se ocupado)
umount -f /mnt
umount -l /mnt # Lazy unmount

Configuração Permanente (/etc/fstab)​

# Formato: device mountpoint fstype options dump pass
/dev/sda1 / ext4 defaults 0 1
/dev/sda2 /home ext4 defaults 0 2
/dev/sda3 /var xfs defaults 0 2
server:/export /mnt/nfs nfs defaults 0 0

Opções comuns:

  • defaults: rw, suid, dev, exec, auto, nouser, async
  • noexec: Não executa arquivos
  • nosuid: Ignora SUID
  • ro: Somente leitura
  • noatime: Não atualiza atime

Verificação e Reparo​

fsck​

Verificar e reparar:

# Verificar (sem reparar)
fsck /dev/sda1

# Reparar automaticamente
fsck -a /dev/sda1

# Forçar verificação
fsck -f /dev/sda1

# Específico para ext4
fsck.ext4 /dev/sda1

Importante:

  • Desmonte antes de usar fsck (se possível)
  • Use modo single-user para sistema raiz

Resumo​

Neste capítulo, você aprendeu:

Tipos locais: ext4 (padrão), xfs (arquivos grandes), btrfs (avançado)
Tipos de rede: NFS (Unix), CIFS/SMB (Windows)
Tipos especiais: tmpfs (RAM), procfs (kernel), sysfs (sistema)
Gerenciamento: mount, umount, /etc/fstab para montagem permanente
Verificação: fsck para reparar sistemas de arquivos


Próximos Passos​

Lab 3.4: Prática Completa
Módulo 4: Gerenciamento de Processos


Capítulo criado em: Dezembro 2024