Ubuntu mount e fstab
Montar é ligar uma partição a uma pasta, para que os arquivos dela apareçam ali. O desktop faz isso sozinho quando você conecta um pendrive. Num servidor, num segundo HD ou quando algo dá errado, você faz pelo terminal com mount. Para montar automaticamente a cada boot, existe o arquivo /etc/fstab.
- O que é um ponto de montagem e como ver o que está montado.
- Montar e desmontar à mão com
mounteumount, entendendo cada parte. - Quatro formas de montar, do clique ao
/etc/fstab. - Configurar um HD extra para montar sozinho no boot, sem risco de travar o sistema.
- Consertar o sistema quando um
fstaberrado impede o boot.
Antes dos comandos: uma árvore só
No Windows, cada disco vira uma letra: C:, D:, E:. No Linux existe uma árvore única que começa em /. Os outros discos são "pendurados" em pastas dessa árvore. A pasta onde um disco é pendurado se chama ponto de montagem.
| Partição | Ponto de montagem | Quem montou |
|---|---|---|
/dev/nvme0n1p2 | / | O sistema, no boot (está no fstab). |
/dev/nvme0n1p1 | /boot/efi | O sistema, no boot. |
/dev/sda1 (pendrive) | /media/ana/PENDRIVE | O desktop, ao conectar. |
| Um HD extra | /mnt/backup ou /dados | Você, com mount ou fstab. |
Por convenção, /media é para montagens automáticas do desktop e /mnt é para montagens temporárias feitas à mão.
Ver o que está montado
O findmnt (de find mount) mostra as montagens em forma de árvore. Para uma pasta específica, passe o caminho:
- findmnt
- O programa: lista o que está montado.
- /
- Mostra só a montagem da pasta
/.
$ findmnt / TARGET SOURCE FSTYPE OPTIONS / /dev/nvme0n1p2 ext4 rw,relatime
| Coluna | Significado |
|---|---|
TARGET | O ponto de montagem (a pasta). |
SOURCE | A partição que está ali. |
FSTYPE | O sistema de arquivos. |
OPTIONS | As opções: rw = leitura e escrita, ro = só leitura. |
Outras formas de ver as montagens:
| Comando | Quando usar |
|---|---|
findmnt | Ver tudo em árvore, inclusive montagens internas do sistema. |
df -h | Ver só os discos de verdade, com o espaço livre. |
lsblk | Ver discos montados e não montados (coluna MOUNTPOINTS vazia). |
mount (sem nada) | A forma antiga: uma linha por montagem, muito longa. |
Montar à mão: mount
Vamos montar o pendrive /dev/sda1 na pasta /mnt/pendrive. São três passos.
-
Descubra o nome da partição. Conecte o pendrive e rode
lsblk. Se o desktop já tiver montado o pendrive em/media, desmonte pelo app Arquivos primeiro.$ lsblk -e7 -o NAME,SIZE,FSTYPE,MOUNTPOINTS NAME SIZE FSTYPE MOUNTPOINTS sda 29,3G └─sda1 29,3G vfat « o pendrive, ainda sem pasta nvme0n1 476,9G ├─nvme0n1p1 1G vfat /boot/efi └─nvme0n1p2 475,9G ext4 /
-
Crie a pasta que vai servir de ponto de montagem. Ela precisa existir antes.
$ sudo mkdir -p /mnt/pendrive [sudo: authenticate] Senha:
-
Monte.
- sudo
- Montar exige permissão de administrador.
- mount
- O programa que monta.
- /dev/sda1
- O quê: a partição.
- /mnt/pendrive
- Onde: o ponto de montagem.
$ sudo mount /dev/sda1 /mnt/pendrive $ ls /mnt/pendrive fotos trabalho.odt 'Meus documentos' $ findmnt /mnt/pendrive TARGET SOURCE FSTYPE OPTIONS /mnt/pendrive /dev/sda1 vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro
Mais uma vez, silêncio significa sucesso: o mount não mostra nada quando dá certo. O mount descobre sozinho o tipo (aqui, vfat). Para forçar um tipo, use -t: sudo mount -t ext4 /dev/sdb1 /mnt/hd.
Opções de montagem: -o
A opção -o (de options) passa ajustes separados por vírgula, sem espaço.
- sudo mount
- Montar como administrador.
- -o ro,uid=1000
- Opções:
ro= só leitura;uid=1000= os arquivos pertencem à ana. - /dev/sda1 /mnt/pendrive
- O quê e onde.
| Opção | Para quê |
|---|---|
ro / rw | Só leitura / leitura e escrita. ro é ótimo para examinar um disco sem risco. |
uid=1000,gid=1000 | Em FAT32, exFAT e NTFS (que não têm donos), define quem é o dono dos arquivos. Sem isso, só o root grava. |
noexec | Impede rodar programas a partir desse disco. |
nofail | No fstab: se o disco não estiver conectado, o boot continua. |
remount,rw | Remonta algo que está só leitura como leitura e escrita. |
Para descobrir o seu número de usuário (o uid), rode id -u. O primeiro usuário criado no Ubuntu é o 1000.
Desmontar: umount
Repare: é umount, sem o "n". Desmontar grava no disco o que ainda estava na memória. Sempre desmonte antes de tirar um pendrive, ou arquivos podem ficar corrompidos.
- sudo
- Desmontar também exige administrador (para o que você montou com sudo).
- umount
- O programa que desmonta.
- /mnt/pendrive
- A pasta ou a partição (
/dev/sda1); os dois funcionam.
$ sudo umount /mnt/pendrive $ findmnt /mnt/pendrive $ echo $? 1 « 1 = nada montado ali; deu certo
Quatro formas de montar
Forma 1: o desktop
Conecte o pendrive: ele aparece no app Arquivos e é montado em /media/ana/RÓTULO. Para desmontar, clique no ícone de ejetar ao lado do nome.
Forma 2: udisksctl, sem sudo
O udisksctl faz pelo terminal o mesmo que o desktop: monta em /media/ana e não pede senha para discos removíveis.
$ udisksctl mount -b /dev/sda1 Mounted /dev/sda1 at /media/ana/PENDRIVE $ udisksctl unmount -b /dev/sda1 Unmounted /dev/sda1. $ udisksctl power-off -b /dev/sda « desliga o pendrive para remover com segurança
-b vem de block device. Saída ilustrativa: o texto pode variar conforme a versão.
Forma 3: mount, à mão
É o que você aprendeu acima. Use para montagens temporárias, em servidores ou quando precisa de opções especiais.
Forma 4: /etc/fstab, automático no boot
Para um HD que fica sempre conectado. É o assunto da próxima seção.
| Forma | Precisa de sudo? | Melhor quando… |
|---|---|---|
| Desktop | Não | Pendrive no dia a dia. |
udisksctl | Não (removíveis) | Pendrive pelo terminal ou por SSH no desktop. |
mount | Sim | Montagem temporária ou com opções especiais. |
/etc/fstab | Sim, para editar | Disco fixo que deve montar sozinho a cada boot. |
/etc/fstab: montar sozinho no boot
fstab vem de file systems table, "tabela de sistemas de arquivos". Cada linha diz ao sistema: "monte isto, ali, desse jeito". Veja o fstab de uma instalação nova do Ubuntu:
$ cat /etc/fstab # /etc/fstab: static file system information. # (comentários do instalador omitidos) /dev/disk/by-uuid/3f6c1e2a-9b7d-4c1e-8a5f-2d4b6c8e0f12 / ext4 defaults 0 1 /dev/disk/by-uuid/8E3F-1A2B /boot/efi vfat defaults 0 1 /swap.img none swap sw 0 0
Cada linha tem seis colunas, separadas por espaços ou tabs:
- UUID=7c9e...
- 1. O quê: a partição. Use o UUID: o nome
/dev/sdb1pode mudar se você trocar um cabo de lugar. - /dados
- 2. Onde: o ponto de montagem (a pasta precisa existir).
- ext4
- 3. Tipo do sistema de arquivos.
- defaults,nofail
- 4. Opções.
defaultsé o padrão;nofailevita travar o boot se o disco faltar. - 0
- 5. dump: coluna antiga de backup. Use sempre 0.
- 2
- 6. Ordem de verificação no boot: 1 para o
/, 2 para os outros discos, 0 para não verificar.
Passo a passo: um HD extra em /dados
-
Ache o UUID da partição do HD:
$ lsblk -f -e7 -o NAME,FSTYPE,UUID,MOUNTPOINTS NAME FSTYPE UUID MOUNTPOINTS sdb └─sdb1 ext4 7c9e2d41-0a6b-4f3e-9d8c-1b2a3c4d5e6f « o HD novo nvme0n1 ├─nvme0n1p1 vfat 8E3F-1A2B /boot/efi └─nvme0n1p2 ext4 3f6c1e2a-9b7d-4c1e-8a5f-2d4b6c8e0f12 /
-
Crie a pasta e faça uma cópia do
fstabatual, para poder voltar atrás:$ sudo mkdir -p /dados $ sudo cp /etc/fstab /etc/fstab.bak
-
Acrescente a linha no fim do arquivo com
sudo nano /etc/fstab(veja nano e vim):UUID=7c9e2d41-0a6b-4f3e-9d8c-1b2a3c4d5e6f /dados ext4 defaults,nofail 0 2
-
Confira o arquivo antes de reiniciar. O
findmnt --verifyprocura erros:$ sudo findmnt --verify Sucesso, nenhum erro ou aviso detectado
-
Teste sem reiniciar. O
systemctl daemon-reloadavisa o sistema que ofstabmudou, e omount -amonta tudo o que está nofstabe ainda não está montado:$ sudo systemctl daemon-reload $ sudo mount -a $ df -h /dados Sist. Arq. Tam. Usado Disp. Uso% Montado em /dev/sdb1 916G 28K 870G 1% /dados
Se o
mount -amostrar qualquer erro, não reinicie: corrija a linha ou volte o backup comsudo cp /etc/fstab.bak /etc/fstab. -
Dê a pasta para o seu usuário, porque um ext4 novo pertence ao root:
$ sudo chown ana:ana /dados
Sem nofail, se o disco não for encontrado, o sistema espera 90 segundos e para no modo de emergência. Sempre rode sudo findmnt --verify e sudo mount -a antes de reiniciar.
Quando não funciona
$ mount /dev/sda1 /mnt/pendrive
mount: /mnt/pendrive: é necessário ser superusuário para montar.
dmesg(1) pode ter mais informação após uma chamada a montar o sistema falhada.
O que aconteceu: só o root pode montar com mount.
Como resolver: use sudo mount …, ou udisksctl mount -b /dev/sda1, que não precisa de sudo.
$ sudo mount /dev/sda1 /mnt/usb mount: /mnt/usb: o ponto de montagem não existe.
Como resolver: crie a pasta antes: sudo mkdir -p /mnt/usb.
$ sudo mount /dev/sdc1 /mnt/pendrive mount: /mnt/pendrive: o dispositivo especial /dev/sdc1 não existe.
O que aconteceu: o nome está errado ou o pendrive não foi detectado.
Como resolver: confira o nome com lsblk. Se o pendrive não aparece, troque de porta USB e veja as mensagens do kernel com sudo dmesg | tail.
$ sudo umount /mnt/pendrive umount: /mnt/pendrive: o alvo está ocupado.
O que aconteceu: algum programa está usando arquivos do disco. Muitas vezes é o próprio terminal, que está dentro da pasta.
Como resolver: saia da pasta com cd. Para ver quem está usando: sudo lsof /mnt/pendrive ou sudo fuser -vm /mnt/pendrive. Feche o programa e tente de novo.
$ sudo mount -t ext4 /dev/sda1 /mnt/pendrive
mount: /mnt/pendrive: tipo de sistema de arquivos incorreto, opção inválida, superbloco inválido em /dev/sda1, página de código ou programa auxiliar faltando ou outro erro.
dmesg(1) pode ter mais informação após uma chamada a montar o sistema falhada.
O que aconteceu: o tipo informado com -t está errado (o pendrive é vfat), ou a partição está danificada.
Como resolver: tire o -t e deixe o mount descobrir, ou confira o tipo com lsblk -f.
Depois de editar o fstab e reiniciar, o boot fica parado por 1min30s e aparece algo assim:
[ TIME ] Timed out waiting for device dev-disk-by\x2duuid-7c9e2d41….device - /dev/disk/by-uuid/7c9e2d41-0a6b-…. [DEPEND] Dependency failed for dados.mount - /dados. You are in emergency mode. After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, or "exit" to boot into default mode. Cannot open access to console, the root account is locked. See sulogin(8) man page for more details. Press Enter to continue.
O que aconteceu: uma linha do fstab aponta para um disco que não existe (UUID digitado errado ou HD desconectado) e não tem nofail. O sistema entra no modo de emergência. Como a conta root do Ubuntu não tem senha, ele nem deixa entrar.
Como resolver pelo modo de recuperação:
- Reinicie e segure Shift (BIOS) ou toque Esc (UEFI) para abrir o menu do GRUB.
- Escolha Opções avançadas para Ubuntu e depois a linha que termina em (recovery mode).
- No menu de recuperação, escolha root (abrir um shell como root) e pressione Enter.
- O disco está montado só para leitura. Libere a escrita e corrija o arquivo:
#> mount -o remount,rw / #> nano /etc/fstab
Coloque#no começo da linha problemática (ou acrescentenofail), salve com Ctrl+O e saia com Ctrl+X. Se você fez o backup, bastacp /etc/fstab.bak /etc/fstab. - Reinicie com
reboot.
Se nem o modo de recuperação abrir, use um pendrive do Ubuntu. Veja Recuperar um Sistema.
Referência
| Comando | O que faz |
|---|---|
findmnt | Lista as montagens em árvore |
findmnt PASTA | Mostra o que está montado numa pasta |
sudo mount DISP PASTA | Monta uma partição numa pasta |
sudo mount -t TIPO … | Força o tipo do sistema de arquivos |
sudo mount -o ro … | Monta com opções (aqui, só leitura) |
sudo mount -o remount,rw / | Remonta o / para leitura e escrita |
sudo mount -a | Monta tudo do fstab que ainda não está montado |
sudo umount PASTA | Desmonta |
udisksctl mount -b DISP | Monta em /media sem sudo (removíveis) |
sudo findmnt --verify | Procura erros no /etc/fstab |
sudo lsof PASTA | Mostra quem está usando um disco |
Exercícios
1. Montar só para leitura
Complete para montar /dev/sdb1 em /mnt/hd sem poder alterar nada:
2. Desmontar
Complete o comando que desmonta /mnt/hd:
3. Testar o fstab
Complete o comando que monta tudo o que está no /etc/fstab, para testar antes de reiniciar:
4. Por que usar o UUID, e não /dev/sdb1, no fstab?
5. O que a opção nofail faz no fstab?
Resumo
- Montar = ligar uma partição a uma pasta (ponto de montagem). Veja as montagens com
findmntoudf -h. sudo mount /dev/X /pastamonta;sudo umount /pastadesmonta. Desmonte sempre antes de tirar um pendrive.udisksctl mount -b /dev/Xmonta sem sudo, como o desktop.- No
/etc/fstab, use UUID enofail, e teste comfindmnt --verifyemount -aantes de reiniciar. - Se o boot parar no modo de emergência, corrija o
fstabpelo modo de recuperação.