Montando Filesystems: mount, umount e fstab
O Que Você Vai Conquistar
- Anexar um dispositivo a qualquer ponto de montagem com
mount - Desmontar com segurança com
umounte lidar com erros de "busy" - Ler e escrever os seis campos do
/etc/fstabcom precisão - Identificar dispositivos de forma durável com UUID / LABEL e verificar com
blkid/findmnt - Explicar, com fundamentação, como
nofailmuda se o sistema inicia ou não
Este é o núcleo do objetivo 104.3 do LPIC-1 "Controlar montagem e desmontagem de filesystems". Ele cobre como dispositivos se conectam à árvore de diretórios, incluindo os erros frequentes no exame com fstab.
O Que é Montagem
Montagem anexa um filesystem em um dispositivo de bloco a um único ponto (o ponto de montagem) na árvore de diretórios existente. O Linux não atribui letras de drive; tudo é unificado em uma única árvore.
Executar mount sem argumentos lista todos os filesystems atualmente montados, mostrando dispositivo, ponto de montagem, tipo e opções nessa ordem.
mount | grep sdb
/dev/sdb1 on /mnt type ext4 (rw,relatime)
A ideia chave é que você gerencia um relacionamento dispositivo-diretório, não arquivos. Arquivos que estavam originalmente no ponto de montagem ficam ocultos enquanto algo está montado ali (eles não são deletados; reaparecem após a desmontagem).
Como Montar com mount
A forma básica é mount DISPOSITIVO PONTOMONTAGEM. Se uma entrada correspondente existe no /etc/fstab, especificar apenas um dos dois é suficiente.
Passo 1: Verificar o dispositivo alvo
lsblk blkid
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 50G 0 disk └─sda1 8:1 0 50G 0 part / sdb 8:16 0 10G 0 disk └─sdb1 8:17 0 10G 0 part /dev/sda1: UUID="a1b2c3d4-..." TYPE="ext4" /dev/sdb1: UUID="e5f6a7b8-..." TYPE="ext4" LABEL="data"
Use lsblk para a hierarquia de dispositivos de bloco e blkid para o UUID, LABEL e tipo de filesystem de cada partição. Conheça o tipo antes de montar.
Passo 2: Montar o dispositivo
mount /dev/sdb1 /mnt findmnt /mnt
TARGET SOURCE FSTYPE OPTIONS /mnt /dev/sdb1 ext4 rw,relatime
mount /dev/sdb1 /mnt anexa /dev/sdb1 a /mnt. Na maioria dos ambientes o tipo é auto-detectado, mas você pode declará-lo explicitamente com -t ext4. Verifique o resultado em árvore com findmnt.
Passo 3: Montar com opções
mount -t ext4 -o ro,noexec /dev/sdb1 /mnt findmnt -o TARGET,OPTIONS /mnt
TARGET OPTIONS /mnt ro,noexec,relatime
-o passa opções de montagem como uma lista separada por vírgulas. ro significa somente leitura e noexec proíbe a execução de binários naquele filesystem. Combine múltiplas opções como -o ro,noexec.
Passo 4: Montar uma imagem ISO via loopback
mount -o loop ubuntu.iso /mnt findmnt /mnt
TARGET SOURCE FSTYPE OPTIONS /mnt /dev/loop0[/ubuntu.iso] iso9660 ro,relatime
-o loop monta um arquivo (como uma imagem ISO) através de um dispositivo de loopback. Você pode navegar pelo conteúdo da imagem como um diretório sem nenhum dispositivo físico.
Passo 5: Remontar um filesystem montado
mount -o remount,ro /mnt findmnt -o TARGET,OPTIONS /mnt
TARGET OPTIONS /mnt ro,relatime
-o remount altera apenas as opções sem desmontar. Use para trocar um filesystem em execução de rw para ro, por exemplo. Funciona até em filesystems sempre ocupados como /.
Como Desmontar com Segurança com umount
umount aceita tanto o ponto de montagem quanto o nome do dispositivo. Como um filesystem ocupado não pode ser desmontado, a chave é identificar o processo que está usando.
Passo 1: Uma desmontagem normal
umount /mnt findmnt /mnt
(sem saida)
Desmonte com umount /mnt (ou umount /dev/sdb1). Note que o comando é umount (sem n), não unmount. Sem saída significa sucesso.
Passo 2: Quando o filesystem está ocupado
umount /mnt
umount: /mnt: target is busy.
Se um processo tem um arquivo aberto ou seu diretório atual naquele filesystem, falha com target is busy. Identifique o processo com lsof ou fuser.
lsof /mnt fuser -m /mnt
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 4210 user cwd DIR 8,17 4096 2 /mnt /mnt: 4210c
lsof /mnt lista os processos usando o alvo, e fuser -m /mnt mostra o PID. Frequentemente é seu próprio shell que executou cd /mnt; mude para outro diretório e execute umount novamente.
Passo 3: Desmontagem lazy como último recurso
umount -l /mnt
(sem saida)
-l (lazy) desconecta o filesystem da árvore imediatamente e o libera quando não houver mais referências. Evita o "busy" mas requer cuidado com escritas em andamento, portanto trate como último recurso quando você não consegue parar o processo que está usando.
Como Escrever os Seis Campos do fstab
/etc/fstab é o arquivo de definição de montagem estática lido no boot e pelo mount -a. Cada linha tem seis campos separados por espaços ou tabs.
UUID=e5f6a7b8-... /data ext4 defaults,nofail 0 2
| # | Campo | Conteúdo | Exemplo |
|---|---|---|---|
| 1 | Dispositivo | O que montar. UUID= / LABEL= / caminho do dispositivo |
UUID=e5f6... |
| 2 | Ponto de montagem | Diretório alvo. swap usa none ou swap |
/data |
| 3 | Tipo de filesystem | ext4 / xfs / vfat / swap / auto, etc. |
ext4 |
| 4 | Opções de montagem | Separadas por vírgula. defaults, etc. |
defaults,nofail |
| 5 | dump | Se o dump deve fazer backup (geralmente 0) |
0 |
| 6 | fsck passno | Ordem do fsck no boot (0 = sem verificação) |
2 |
O campo 5 é para o comando dump e geralmente é 0. O campo 6 (passno) é a ordem de verificação do filesystem no boot: raiz / é 1, outros filesystems verificados são 2, e 0 significa sem verificação. Entradas no mesmo disco são verificadas sequencialmente enquanto discos diferentes são verificados em paralelo.
defaults no campo 4 é um atalho para rw,suid,dev,exec,auto,nouser,async. Um disco local padrão não precisa de nada mais.
Por Que Especificar por UUID / LABEL
Um nome de dispositivo como /dev/sdb1 pode mudar para /dev/sdc1 quando você adiciona discos ou a ordem de detecção muda. Codificar nomes de dispositivos no fstab significa que uma mudança de nome ou monta o dispositivo errado ou falha ao montar e interrompe o boot.
Um UUID (um identificador único atribuído quando o filesystem é criado) e um LABEL (um nome de rótulo arbitrário) não dependem da posição de conexão do dispositivo, portanto o fstab deve usá-los. Leia os valores com blkid.
blkid /dev/sdb1
/dev/sdb1: UUID="e5f6a7b8-1234-..." TYPE="ext4" LABEL="data"
# Exemplos de linhas do /etc/fstab UUID=e5f6a7b8-1234-... /data ext4 defaults,nofail 0 2 LABEL=data /data ext4 defaults,nofail 0 2
Para UUID, coloque o valor do blkid diretamente no campo 1. LABEL funciona apenas para um filesystem que tem um rótulo, que você define com uma ferramenta como e2label.
Como Verificar o fstab Após Editar
Um erro no fstab leva diretamente a um sistema que não inicia. Antes de reiniciar, sempre verifique as entradas contra o sistema em execução.
Testar todas as entradas com mount -a
mount -a
(sem saida = sucesso)
mount -a monta toda entrada auto no fstab (tudo exceto noauto). Entradas já montadas são puladas. Se nenhum erro aparece, as entradas do fstab são válidas; qualquer linha com erro provavelmente tem um problema.
Verificação cruzada das entradas do fstab com findmnt
findmnt --verify
/data [ ] target exists [ ] FS options: defaults,nofail 0 parsing errors, 0 errors, 0 warnings
findmnt --verify analisa o fstab e verifica existência do ponto de montagem e validade das opções sem realmente montar. Confirme 0 errors antes de reiniciar.
Reiniciar após editar o fstab sem verificar pode interromper o boot normal e deixar você em um shell de emergência se houver um erro. Sempre confirme com mount -a e findmnt --verify primeiro.
Referência Rápida de Opções de Montagem Importantes
Opções representativas usadas no campo 4 ou mount -o. Combine-as separadas por vírgula.
| Opção | Significado |
|---|---|
defaults |
O conjunto padrão rw,suid,dev,exec,auto,nouser,async |
ro / rw |
Somente leitura / leitura-escrita |
noexec |
Proibir execução de binários naquele filesystem |
nosuid |
Desabilitar bits setuid / setgid |
nodev |
Proibir interpretação de arquivos de dispositivo |
auto / noauto |
Montar automaticamente com mount -a/no boot, ou não |
user / users |
Permitir que um usuário regular monte (user só permite ao montador desmontar) |
nofail |
Continuar o boot mesmo se o dispositivo estiver ausente |
noexec,nosuid,nodev é um conjunto clássico de hardening para pen drives ou áreas de dados temporários. Aplicá-lo a áreas que não contêm executáveis ou binários setuid aumenta a segurança.
Visão Geral da Automontagem com systemd
Em distribuições modernas que usam systemd, o /etc/fstab é convertido no boot em units .mount pelo systemd-fstab-generator e montado sob o controle do systemd. Escrever o fstab continua funcionando exatamente como antes.
As opções do campo 4 podem solicitar comportamento específico do systemd. Por exemplo, x-systemd.automount monta o alvo sob demanda na primeira vez que é acessado (automontagem). Para filesystems de rede, _netdev adia a montagem até que a rede esteja acessível.
# Exemplo: montagem sob demanda quando acessado UUID=e5f6... /data ext4 noauto,x-systemd.automount 0 2
Para o LPIC-1, é suficiente entender que o fstab é convertido pelo systemd em units .mount, mais opções como nofail e _netdev.
Erros Comuns e Correções
Erro 1: Um erro no fstab torna o sistema não inicializável
Escrever um dispositivo inexistente ou UUID errado no fstab interrompe o boot no shell de emergência por padrão. Adicione nofail a áreas de dados não essenciais para que o boot continue mesmo sem o dispositivo, e sempre verifique após editar com mount -a e findmnt --verify.
Erro 2: Não consegue desmontar porque está ocupado
target is busy sinaliza um processo com um arquivo aberto ou diretório atual naquele filesystem. Identifique com lsof /mnt ou fuser -m /mnt, depois encerre o processo ou saia do diretório antes de umount.
Erro 3: Uma mudança de UUID quebra a montagem
Recriar um filesystem com mkfs muda seu UUID, então uma entrada do fstab com o UUID antigo falha ao montar. Após reformatar, obtenha o novo UUID com blkid e atualize o fstab.
Erro 4: Digitar o comando como unmount
O comando de desmontagem é umount (sem n). unmount não existe e retorna command not found. O exame também testa a grafia.
Erro 5: Pensar que os arquivos do ponto de montagem desapareceram
Arquivos originalmente no ponto de montagem ficam apenas ocultos enquanto algo está montado ali; eles não são deletados. Desmonte e os arquivos originais reaparecem.
Solução de Problemas
Sintoma: mount dá um erro "wrong fs type"
Causa: A auto-detecção do tipo de filesystem falhou, ou -t especifica o tipo errado
Verificação:
blkid /dev/sdb1
Correção: Confirme o tipo real com blkid e declare com mount -t TYPE. Se o módulo do kernel ou ferramentas para aquele tipo (como xfsprogs) estão faltando, instale-os.
Sintoma: Uma área de dados não está montada após reboot
Causa: A entrada do fstab tem noauto, ou o UUID mudou
Verificação:
findmnt --verify blkid
Correção: Verifique a validade do fstab com findmnt --verify, depois corrija para auto (ou remova noauto) com o UUID correto. Verifique manualmente com mount -a.
Sintoma: O disco ainda não pode ser removido após umount -l
Causa: A desmontagem lazy apenas desconecta da árvore; com processos referenciando ainda vivos, não é realmente liberado
Verificação:
fuser -m /dev/sdb1
Correção: Identifique e encerre os processos restantes com fuser -m. A liberação real se completa quando todas as referências acabam.
Checklist de Conclusão
- [ ] Verificou o dispositivo e tipo com
lsblk/blkid - [ ] Montou com
mounte confirmou comfindmnt - [ ] Desmontou com segurança com
umount(tratou busy comlsof/fuser) - [ ] Escreveu
/etc/fstabusando UUID / LABEL - [ ] Verificou antes de reiniciar com
mount -a/findmnt --verify - [ ] Adicionou
nofaila áreas opcionais para evitar um sistema não inicializável
Resumo
| Cenário | Comando | Finalidade |
|---|---|---|
| Montar | mount -t ext4 -o ro /dev/sdb1 /mnt |
Anexar com tipo e opções |
| Desmontar | umount /mnt |
Desconectar com segurança |
| Tratar busy | lsof /mnt / fuser -m /mnt |
Encontrar a causa do "busy" |
| Ler identificadores | blkid |
Obter UUID / LABEL / tipo |
| Verificar estado | findmnt |
Mostrar a árvore de montagem |
| Verificar fstab | mount -a / findmnt --verify |
Validar antes de reiniciar |
Montagem é a base das operações de armazenamento e é melhor aprendida junto com criação de partições e o FHS. Como um erro no fstab leva diretamente a um sistema que não inicia, dominar os passos de verificação importa tanto para passar no LPIC-1 quanto para o trabalho real.