Montando Filesystems: mount, umount e fstab
O Que Voce Vai Conquistar
- Anexar um dispositivo a qualquer ponto de montagem com
mount - Desmontar com seguranca com
umounte lidar com erros de "busy" - Ler e escrever os seis campos do
/etc/fstabcom precisao - Identificar dispositivos de forma duravel com UUID / LABEL e verificar com
blkid/findmnt - Explicar, com fundamentacao, como
nofailmuda se o sistema inicia ou nao
Este e o nucleo do objetivo 104.3 do LPIC-1 "Controlar montagem e desmontagem de filesystems". Ele cobre como dispositivos se conectam a arvore de diretorios, incluindo os erros frequentes no exame com fstab.
O Que e Montagem
Montagem anexa um filesystem em um dispositivo de bloco a um unico ponto (o ponto de montagem) na arvore de diretorios existente. O Linux nao atribui letras de drive; tudo e unificado em uma unica arvore.
Executar mount sem argumentos lista todos os filesystems atualmente montados, mostrando dispositivo, ponto de montagem, tipo e opcoes nessa ordem.
mount | grep sdb
/dev/sdb1 on /mnt type ext4 (rw,relatime)
A ideia chave e que voce gerencia um relacionamento dispositivo-diretorio, nao arquivos. Arquivos que estavam originalmente no ponto de montagem ficam ocultos enquanto algo esta montado ali (eles nao sao deletados; reaparecem apos a desmontagem).
Como Montar com mount
A forma basica e mount DISPOSITIVO PONTOMONTAGEM. Se uma entrada correspondente existe no /etc/fstab, especificar apenas um dos dois e 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 particao. Conheca 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 e auto-detectado, mas voce pode declara-lo explicitamente com -t ext4. Verifique o resultado em arvore com findmnt.
Passo 3: Montar com opcoes
mount -t ext4 -o ro,noexec /dev/sdb1 /mnt findmnt -o TARGET,OPTIONS /mnt
TARGET OPTIONS /mnt ro,noexec,relatime
-o passa opcoes de montagem como uma lista separada por virgulas. ro significa somente leitura e noexec proibe a execucao de binarios naquele filesystem. Combine multiplas opcoes 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) atraves de um dispositivo de loopback. Voce pode navegar pelo conteudo da imagem como um diretorio sem nenhum dispositivo fisico.
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 opcoes sem desmontar. Use para trocar um filesystem em execucao de rw para ro, por exemplo. Funciona ate em filesystems sempre ocupados como /.
Como Desmontar com Seguranca com umount
umount aceita tanto o ponto de montagem quanto o nome do dispositivo. Como um filesystem ocupado nao pode ser desmontado, a chave e identificar o processo que esta usando.
Passo 1: Uma desmontagem normal
umount /mnt findmnt /mnt
(sem saida)
Desmonte com umount /mnt (ou umount /dev/sdb1). Note que o comando e umount (sem n), nao unmount. Sem saida significa sucesso.
Passo 2: Quando o filesystem esta ocupado
umount /mnt
umount: /mnt: target is busy.
Se um processo tem um arquivo aberto ou seu diretorio 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 e seu proprio shell que executou cd /mnt; mude para outro diretorio e execute umount novamente.
Passo 3: Desmontagem lazy como ultimo recurso
umount -l /mnt
(sem saida)
-l (lazy) desconecta o filesystem da arvore imediatamente e o libera quando nao houver mais referencias. Evita o "busy" mas requer cuidado com escritas em andamento, portanto trate como ultimo recurso quando voce nao consegue parar o processo que esta usando.
Como Escrever os Seis Campos do fstab
/etc/fstab e o arquivo de definicao de montagem estatica lido no boot e pelo mount -a. Cada linha tem seis campos separados por espacos ou tabs.
UUID=e5f6a7b8-... /data ext4 defaults,nofail 0 2
| # | Campo | Conteudo | Exemplo |
|---|---|---|---|
| 1 | Dispositivo | O que montar. UUID= / LABEL= / caminho do dispositivo |
UUID=e5f6... |
| 2 | Ponto de montagem | Diretorio alvo. swap usa none ou swap |
/data |
| 3 | Tipo de filesystem | ext4 / xfs / vfat / swap / auto, etc. |
ext4 |
| 4 | Opcoes de montagem | Separadas por virgula. 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 verificacao) |
2 |
O campo 5 e para o comando dump e geralmente e 0. O campo 6 (passno) e a ordem de verificacao do filesystem no boot: raiz / e 1, outros filesystems verificados sao 2, e 0 significa sem verificacao. Entradas no mesmo disco sao verificadas sequencialmente enquanto discos diferentes sao verificados em paralelo.
defaults no campo 4 e um atalho para rw,suid,dev,exec,auto,nouser,async. Um disco local padrao nao precisa de nada mais.
Por Que Especificar por UUID / LABEL
Um nome de dispositivo como /dev/sdb1 pode mudar para /dev/sdc1 quando voce adiciona discos ou a ordem de deteccao muda. Codificar nomes de dispositivos no fstab significa que uma mudanca de nome ou monta o dispositivo errado ou falha ao montar e interrompe o boot.
Um UUID (um identificador unico atribuido quando o filesystem e criado) e um LABEL (um nome de rotulo arbitrario) nao dependem da posicao de conexao do dispositivo, portanto o fstab deve usa-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 rotulo, que voce define com uma ferramenta como e2label.
Como Verificar o fstab Apos Editar
Um erro no fstab leva diretamente a um sistema que nao inicia. Antes de reiniciar, sempre verifique as entradas contra o sistema em execucao.
Testar todas as entradas com mount -a
mount -a
(sem saida = sucesso)
mount -a monta toda entrada auto no fstab (tudo exceto noauto). Entradas ja montadas sao puladas. Se nenhum erro aparece, as entradas do fstab sao validas; qualquer linha com erro provavelmente tem um problema.
Verificacao 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 existencia do ponto de montagem e validade das opcoes sem realmente montar. Confirme 0 errors antes de reiniciar.
Reiniciar apos editar o fstab sem verificar pode interromper o boot normal e deixar voce em um shell de emergencia se houver um erro. Sempre confirme com mount -a e findmnt --verify primeiro.
Referencia Rapida de Opcoes de Montagem Importantes
Opcoes representativas usadas no campo 4 ou mount -o. Combine-as separadas por virgula.
| Opcao | Significado |
|---|---|
defaults |
O conjunto padrao rw,suid,dev,exec,auto,nouser,async |
ro / rw |
Somente leitura / leitura-escrita |
noexec |
Proibir execucao de binarios naquele filesystem |
nosuid |
Desabilitar bits setuid / setgid |
nodev |
Proibir interpretacao de arquivos de dispositivo |
auto / noauto |
Montar automaticamente com mount -a/no boot, ou nao |
user / users |
Permitir que um usuario regular monte (user so permite ao montador desmontar) |
nofail |
Continuar o boot mesmo se o dispositivo estiver ausente |
noexec,nosuid,nodev e um conjunto classico de hardening para pen drives ou areas de dados temporarios. Aplica-lo a areas que nao contem executaveis ou binarios setuid aumenta a seguranca.
Visao Geral da Automontagem com systemd
Em distribuicoes modernas que usam systemd, o /etc/fstab e 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 opcoes do campo 4 podem solicitar comportamento especifico do systemd. Por exemplo, x-systemd.automount monta o alvo sob demanda na primeira vez que e acessado (automontagem). Para filesystems de rede, _netdev adia a montagem ate que a rede esteja acessivel.
# Exemplo: montagem sob demanda quando acessado UUID=e5f6... /data ext4 noauto,x-systemd.automount 0 2
Para o LPIC-1, e suficiente entender que o fstab e convertido pelo systemd em units .mount, mais opcoes como nofail e _netdev.
Erros Comuns e Correcoes
Erro 1: Um erro no fstab torna o sistema nao inicializavel
Escrever um dispositivo inexistente ou UUID errado no fstab interrompe o boot no shell de emergencia por padrao. Adicione nofail a areas de dados nao essenciais para que o boot continue mesmo sem o dispositivo, e sempre verifique apos editar com mount -a e findmnt --verify.
Erro 2: Nao consegue desmontar porque esta ocupado
target is busy sinaliza um processo com um arquivo aberto ou diretorio atual naquele filesystem. Identifique com lsof /mnt ou fuser -m /mnt, depois encerre o processo ou saia do diretorio antes de umount.
Erro 3: Uma mudanca de UUID quebra a montagem
Recriar um filesystem com mkfs muda seu UUID, entao uma entrada do fstab com o UUID antigo falha ao montar. Apos reformatar, obtenha o novo UUID com blkid e atualize o fstab.
Erro 4: Digitar o comando como unmount
O comando de desmontagem e umount (sem n). unmount nao existe e retorna command not found. O exame tambem 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 esta montado ali; eles nao sao deletados. Desmonte e os arquivos originais reaparecem.
Solucao de Problemas
Sintoma: mount da um erro "wrong fs type"
Causa: A auto-deteccao do tipo de filesystem falhou, ou -t especifica o tipo errado
Verificacao:
blkid /dev/sdb1
Correcao: Confirme o tipo real com blkid e declare com mount -t TYPE. Se o modulo do kernel ou ferramentas para aquele tipo (como xfsprogs) estao faltando, instale-os.
Sintoma: Uma area de dados nao esta montada apos reboot
Causa: A entrada do fstab tem noauto, ou o UUID mudou
Verificacao:
findmnt --verify blkid
Correcao: 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 nao pode ser removido apos umount -l
Causa: A desmontagem lazy apenas desconecta da arvore; com processos referenciando ainda vivos, nao e realmente liberado
Verificacao:
fuser -m /dev/sdb1
Correcao: Identifique e encerre os processos restantes com fuser -m. A liberacao real se completa quando todas as referencias acabam.
Checklist de Conclusao
- [ ] Verificou o dispositivo e tipo com
lsblk/blkid - [ ] Montou com
mounte confirmou comfindmnt - [ ] Desmontou com seguranca com
umount(tratou busy comlsof/fuser) - [ ] Escreveu
/etc/fstabusando UUID / LABEL - [ ] Verificou antes de reiniciar com
mount -a/findmnt --verify - [ ] Adicionou
nofaila areas opcionais para evitar um sistema nao inicializavel
Resumo
| Cenario | Comando | Finalidade |
|---|---|---|
| Montar | mount -t ext4 -o ro /dev/sdb1 /mnt |
Anexar com tipo e opcoes |
| Desmontar | umount /mnt |
Desconectar com seguranca |
| Tratar busy | lsof /mnt / fuser -m /mnt |
Encontrar a causa do "busy" |
| Ler identificadores | blkid |
Obter UUID / LABEL / tipo |
| Verificar estado | findmnt |
Mostrar a arvore de montagem |
| Verificar fstab | mount -a / findmnt --verify |
Validar antes de reiniciar |
Montagem e a base das operacoes de armazenamento e e melhor aprendida junto com criacao de particoes e o FHS. Como um erro no fstab leva diretamente a um sistema que nao inicia, dominar os passos de verificacao importa tanto para passar no LPIC-1 quanto para o trabalho real.