Montando Filesystems: mount, umount e fstab

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 umount e lidar com erros de "busy"
  • Ler e escrever os seis campos do /etc/fstab com precisao
  • Identificar dispositivos de forma duravel com UUID / LABEL e verificar com blkid / findmnt
  • Explicar, com fundamentacao, como nofail muda 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 mount e confirmou com findmnt
  • [ ] Desmontou com seguranca 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 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.

Proximas 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

Pratica