Montando Filesystems: mount, umount e fstab

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 umount e lidar com erros de "busy"
  • Ler e escrever os seis campos do /etc/fstab com precisão
  • Identificar dispositivos de forma durável com UUID / LABEL e verificar com blkid / findmnt
  • Explicar, com fundamentação, como nofail muda 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 mount e confirmou com findmnt
  • [ ] Desmontou com segurança com umount (tratou busy com lsof / fuser)
  • [ ] Escreveu /etc/fstab usando UUID / LABEL
  • [ ] Verificou antes de reiniciar com mount -a / findmnt --verify
  • [ ] Adicionou nofail a á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.

Próximas Leituras

Continue Sua Jornada LPIC-1

Hub LPIC-1

  • Hub de Aprendizado LPIC-1 -- Mapa completo de artigos LPIC-1, acompanhamento de progresso e cobertura dos objetivos do exame

Artigos LPIC-1 Relacionados

Prática