Como montar e automatizar partições com fstab corretamente
1. Introdução ao fstab e sua importância no Linux
O arquivo /etc/fstab (File System Table) é um dos pilares da inicialização do Linux. Ele define como e onde os sistemas de arquivos devem ser montados automaticamente durante o boot. Sem ele, cada partição precisaria ser montada manualmente com o comando mount após cada reinicialização — algo inviável em servidores e estações de trabalho produtivas.
A diferença entre montagem manual e automatizada é crucial: enquanto mount /dev/sda1 /mnt funciona apenas na sessão atual, uma entrada no fstab garante que a montagem ocorra sempre que o sistema iniciar. Os cenários de uso incluem discos internos (raiz, home, boot), SSDs, partições de backup, dispositivos removíveis e até sistemas de arquivos remotos como NFS e Samba.
2. Estrutura detalhada de uma linha no fstab
Cada linha do fstab contém seis campos obrigatórios, separados por espaços ou tabulações:
<dispositivo> <ponto_de_montagem> <tipo> <opções> <dump> <pass>
Exemplo completo:
UUID=1234-5678 /mnt/dados ext4 defaults,noatime 0 2
Explicação dos campos:
- Dispositivo: Pode ser o caminho do dispositivo (
/dev/sda1), UUID ou LABEL. UUID é preferível por ser imutável mesmo se a ordem dos discos mudar. - Ponto de montagem: Diretório onde o sistema de arquivos será acessível (ex:
/mnt/backup). - Tipo: Sistema de arquivos (ext4, ntfs, vfat, nfs, cifs).
- Opções:
defaults(rw, suid, dev, exec, auto, nouser, async) ou combinações comonoatime,noexec,nodev,nosuid. - Dump: 0 (não fazer backup) ou 1 (fazer backup com dump). Geralmente 0.
- Pass: Ordem de verificação com fsck (0 = ignorar, 1 = raiz, 2 = demais partições).
Identificando UUIDs:
sudo blkid
Exemplo de saída:
/dev/sda1: UUID="a1b2c3d4-..." TYPE="ext4"
/dev/sdb1: UUID="ABCD-1234" TYPE="vfat"
3. Montando partições comuns de forma segura
Partição ext4 (Linux nativo)
UUID=a1b2c3d4-... /home ext4 defaults,noatime 0 2
Partição NTFS (Windows)
UUID=... /mnt/windows ntfs-3g defaults,uid=1000,gid=1000,umask=022,fmask=113,dmask=002 0 0
uid=1000,gid=1000: Define proprietário como o primeiro usuárioumask=022: Permissões 755 para diretóriosfmask=113: Permissões 644 para arquivos
Partição FAT32 (dispositivos USB)
UUID=ABCD-1234 /mnt/usb vfat defaults,uid=1000,gid=1000,umask=002 0 0
4. Automatizando montagens de dispositivos removíveis e redes
Dispositivos removíveis com nofail
UUID=... /mnt/externo ext4 defaults,nofail,x-systemd.automount 0 2
nofail: Impede falha no boot se o dispositivo não estiver presentex-systemd.automount: Monta sob demanda (apenas quando acessado)
Compartilhamento NFS
servidor:/export /mnt/nfs nfs defaults,noatime,timeo=30,retrans=3 0 0
Compartilhamento Samba/CIFS (com credenciais seguras)
Crie um arquivo de credenciais /etc/samba/credenciais:
username=usuario
password=senha
domain=dominio
Proteja o arquivo:
sudo chmod 600 /etc/samba/credenciais
Linha no fstab:
//servidor/compartilhamento /mnt/samba cifs credentials=/etc/samba/credenciais,uid=1000,gid=1000,iocharset=utf8,nofail 0 0
5. Gerenciamento de falhas e recuperação
A opção nofail é essencial para dispositivos que podem não estar presentes (USB, HD externo). Sem ela, se o dispositivo não for encontrado, o boot trava com uma mensagem de emergência.
O campo pass controla a ordem do fsck:
pass=1: Raiz (/) — verificado primeiropass=2: Demais partições — verificadas em paralelo depois da raizpass=0: Ignorar verificação (útil para NTFS, FAT e sistemas remotos)
Diagnóstico de problemas:
# Verificar erros relacionados ao fstab no boot
dmesg | grep fstab
# Logs do systemd-fstab-generator
journalctl -u systemd-fstab-generator
# Testar montagem sem reiniciar
sudo mount -a
6. Boas práticas de segurança e desempenho
Segurança:
- Evite
umask=000em partições compartilhadas (permite qualquer acesso) - Use
noexecem partições de dados para prevenir execução de scripts maliciosos:
text UUID=... /mnt/dados ext4 defaults,noexec,nodev,nosuid 0 2 - Prefira
uid/gidespecíficos em vez de permissões abertas
Desempenho:
noatime: Desabilita atualização do tempo de acesso (reduz escrita em disco)discard: Habilita TRIM para SSDs (libera blocos não utilizados)commit=60: Atrasta a sincronização de metadados (reduz escrita, mas aumenta risco de perda em queda de energia)
Exemplo otimizado para SSD:
UUID=... / ext4 defaults,noatime,discard,commit=30 0 1
7. Exemplos práticos e validação da configuração
Exemplo completo de fstab
# /etc/fstab
UUID=raiz-uuid / ext4 defaults,noatime,discard 0 1
UUID=home-uuid /home ext4 defaults,noatime 0 2
UUID=swap-uuid none swap sw 0 0
UUID=dados-uuid /mnt/dados ext4 defaults,noexec,nodev,nosuid 0 2
//servidor/backup /mnt/backup cifs credentials=/etc/samba/credenciais,uid=1000,nofail 0 0
servidor:/export /mnt/nfs nfs defaults,noatime,nofail 0 0
Testar sem reiniciar
# Montar todas as entradas do fstab
sudo mount -a
# Verificar montagens ativas
findmnt --verify
# Verificar árvore de montagem
findmnt
Script de backup do fstab original
#!/bin/bash
# backup_fstab.sh
BACKUP_DIR="/root/backup_fstab"
mkdir -p "$BACKUP_DIR"
DATA=$(date +%Y%m%d_%H%M%S)
cp /etc/fstab "$BACKUP_DIR/fstab.backup.$DATA"
echo "Backup salvo em: $BACKUP_DIR/fstab.backup.$DATA"
Execute antes de qualquer alteração:
sudo chmod +x backup_fstab.sh
sudo ./backup_fstab.sh
8. Solução de problemas comuns
Erro de UUID incorreto
Sintoma: "UUID=... não encontrado" no boot.
Solução: Localize o UUID correto com:
sudo blkid
Edite o fstab e substitua pelo UUID correto.
Permissões negadas em montagens NTFS/CIFS
Sintoma: Acesso negado ao diretório montado.
Solução: Ajuste uid, gid e umask:
# Descobrir seu UID e GID
id usuario
# Exemplo corrigido
UUID=... /mnt/windows ntfs-3g defaults,uid=1000,gid=1000,umask=022 0 0
Se estiver usando SELinux ou AppArmor, verifique as políticas:
# Para SELinux
sudo restorecon -Rv /mnt/ponto_de_montagem
# Para AppArmor
sudo aa-status | grep mount
Montagem duplicada ou conflitante
Sintoma: "mount: /mnt/ponto já montado" ou o sistema monta no local errado.
Solução:
# Verificar montagens ativas
mountpoint /mnt/ponto
# Recarregar configurações do systemd
sudo systemctl daemon-reload
# Remover montagem manual e testar novamente
sudo umount /mnt/ponto
sudo mount -a
Referências
- Documentação oficial do fstab (Linux man page) — Página de manual completa com todos os campos, opções e exemplos do arquivo fstab.
- Guia do Ubuntu sobre montagem de partições — Tutorial prático da comunidade Ubuntu com exemplos para ext4, NTFS, FAT e sistemas remotos.
- Arch Wiki: fstab — Documentação técnica avançada com opções específicas, UUIDs, LABELs e boas práticas de segurança.
- Red Hat: Configuração de montagem automática com fstab — Guia oficial Red Hat com foco em servidores e automação.
- Como usar UUIDs no Linux para identificar discos — Tutorial prático sobre como localizar e usar UUIDs com blkid e fstab.
- Montagem de compartilhamentos Samba/CIFS no Linux — Documentação oficial do Samba sobre opções de montagem CIFS, credenciais e segurança.