Pular para o conteúdo
Esta página está desatualizada. Por favor, consulte a documentação mais recente em /configuration/automount_with_fstab/

Automontar Discos Adicionais via fstab no Arranque

Este tutorial descreve os conceitos básicos da utilização do ficheiro fstab localizado em /etc/, de modo a montar discos estáticos durante o arranque. Explica brevemente como encontrar o UUID de uma partição ou disco, o que algumas opções fazem e leituras adicionais caso a informação fornecida seja insuficiente.

  • Acesso Root ou sudo
Abra um terminal e execute o seguinte comando:
lsblk -f
Exemplo de saída:
# NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
# zram0 [SWAP]
# nvme0n1
# ├─nvme0n1p1 vfat FAT32 E04D-9F05
# ├─nvme0n1p2
# ├─nvme0n1p3 ntfs 08A24E90A24E81E4 715.4G 50%
# ├─nvme0n1p4 vfat FAT32 E09C-D4DA 628.1M 39% /boot
# ├─nvme0n1p5 ext4 1.0 187a9f06-9411-48d9-b941-f03c2e605812 203.6G 47% /
# └─nvme0n1p6 ntfs

No nosso exemplo, sabemos que queremos montar uma partição Windows, que é NTFS. Também sabemos que sensivelmente metade do seu espaço está disponível. Portanto, podemos determinar que a partição que queremos montar é a nvme0n1p3 e o seu UUID é 08A24E90A24E81E4, com um sistema de ficheiros ntfs neste exemplo.

Frequentemente, o lsblk -f fornecerá nesta fase toda a informação de que necessita para montar o seu disco através do /etc/fstab. Se ainda não tiver a certeza de qual é a partição correta, pode executar o seguinte comando:

Terminal window
sudo fdisk -l
Exemplo de saída:
# Device Start End Sectors Size Type
# /dev/nvme0n1p1 2048 206847 204800 100M EFI System
# /dev/nvme0n1p2 206848 239615 32768 16M Microsoft reserved
# /dev/nvme0n1p3 239616 2997384182 2997144567 1.4T Microsoft basic data
# /dev/nvme0n1p4 2997385216 2999482367 2097152 1G EFI System
# /dev/nvme0n1p5 2999482368 3905454079 905971712 432G Linux root (x86-64)
# /dev/nvme0n1p6 3905454080 3907026943 1572864 768M Windows recovery environment

Já conhecemos o nosso UUID neste exemplo. No entanto, o fdisk -l pode tornar tudo um pouco mais claro ao mostrar o tamanho exato da partição (1.4T), bem como o seu tipo (Microsoft basic data).

Isto deverá tornar perfeitamente claro que a partição que pretendemos é a nvme0n1p3 com o UUID 08A24E90A24E81E4, conforme descrito anteriormente. Já o sabíamos antes, mas agora temos a certeza absoluta.

Assim que tiver a confiança de ter encontrado a partição correta, copie o UUID. A cópia a partir do emulador de terminal é normalmente feita com ctrl+shift+C.

Agora que obtivemos o UUID da nossa partição, é altura de abrir o ficheiro fstab.

Sinta-se à vontade para usar o editor de texto da sua preferência. Neste exemplo, utilizaremos o nano. Para editar o ficheiro fstab, este deve ser aberto como root:

Terminal window
sudo nano /etc/fstab

Utilizando as teclas de setas, navegue até ao fundo do ficheiro fstab e, em seguida, crie a nossa nova entrada numa nova linha vazia:

Terminal window
UUID=08A24E90A24E81E4 /media/windows ntfs3 defaults,nofail,uid=1000,gid=1000,rw,user,exec,umask=000 0 0

A decomposição desta entrada é a seguinte:

  • UUID=08A24E90A24E81E4 é o sistema de ficheiros que pretendemos montar, identificado pelo seu UUID. Existem outros métodos para identificar o seu sistema de ficheiros, embora o UUID tenda a ser o mais seguro. Métodos adicionais estão listados aqui.

  • /media/windows é o ponto de montagem do nosso disco. O Linux Filesystem Hierarchy Standard indica que /media/ é o local apropriado para a montagem de discos removíveis. windows indica o diretório onde desejamos montar o disco. Cada disco que pretendamos montar precisará do seu próprio diretório.

  • ntfs3 é o tipo de sistema de ficheiros a ser utilizado. No nosso exemplo, estamos a utilizar explicitamente o controlador (driver) de kernel ntfs3. Outros exemplos seriam ext4, xfs ou semelhantes. Esta declaração explícita pode ser substituída por auto para permitir que o comando mount faça a sua melhor estimativa.

  • defaults,nofail,uid=1000,gid=1000,rw,user,exec,umask=000: Estas são as opções de montagem:

    • defaults: um conjunto padrão de opções que inclui rw, suid, dev, exec, auto, nouser, e async.
    • nofail: permite que o processo de arranque continue mesmo que esta montagem falhe.
    • uid=1000 e gid=1000: define a propriedade (dono e grupo) dos ficheiros montados para o utilizador e grupo com o ID 1000.
    • rw: monta o sistema de ficheiros com permissões de leitura e escrita (read-write).
    • user: permite que um utilizador não-root monte o sistema de ficheiros.
    • exec: permite a execução de binários no sistema de ficheiros montado.
    • umask=000: define a máscara de permissões de ficheiro para permitir permissões de leitura, escrita e execução para todos.
    • o primeiro 0 (dump) está tipicamente em desuso em sistemas modernos. Deixá-lo em 0 não causará problemas. Pode ler mais sobre isto aqui.
    • o segundo 0 define a ordem para as verificações do sistema de ficheiros (fsck) no momento do arranque. Para uma partição root, este valor deve ser 1, a menos que o seu sistema de ficheiros root seja btrfs (que deve ser 0). Todos os outros sistemas de ficheiros no seu fstab devem ser 0 (desativado) ou 2. Mais informações aqui.

Para uma análise mais aprofundada de cada opção, visite as páginas de manual do fstab e do mount.

Como nota lateral, todas as opções após a declaração do tipo de sistema de ficheiros são opcionais caso não as altere em relação ao padrão.

Assim:

UUID=<UUID da partição> /media/foo somefs

e

UUID=<UUID da partição> /media/foo somefs defaults 0 0

são equivalentes. somefs seguido de nada é implicitamente somefs defaults 0 0.

Se desejar montar agora o disco para o qual criou a entrada, precisa de executar o seguinte:

Terminal window
sudo systemctl daemon-reload

e depois:

Terminal window
sudo mount -a

O seu disco deverá agora aparecer em /media/windows e aparecerá lá sempre que reiniciar o sistema.

Terminal window
ls /media/windows
# '$Recycle.Bin' Linux SteamLibrary
# AMD Modding swapfile.sys
# Apps pagefile.sys 'System Volume Information'
# bootTel.dat PerfLogs Users
# Development ProgramData WiiU
# 'Documents and Settings' 'Program Files' Windows
# DumpStack.log.tmp 'Program Files (x86)' XboxGames
# FanControl Recovery xiv_modding
# Games RetroArch-Win64
# Intel 'Ship of Harkinian'

Se desejar criar um link para o seu disco recém-montado na sua pasta pessoal (home), pode executar o seguinte:

Terminal window
ln -s /media/windows ~/Windows

Para demonstrar que funcionou:

Terminal window
ls ~/Windows
# '$Recycle.Bin' Linux SteamLibrary
# AMD Modding swapfile.sys
# Apps pagefile.sys 'System Volume Information'
# bootTel.dat PerfLogs Users
# Development ProgramData WiiU
#'Documents and Settings' 'Program Files' Windows
# DumpStack.log.tmp 'Program Files (x86)' XboxGames
# FanControl Recovery xiv_modding
# Games RetroArch-Win64
# Intel 'Ship of Harkinian'
  • Encontre o UUID da sua partição
Terminal window
lsblk -f
  • Abra o ficheiro /etc/fstab
Terminal window
sudo nano /etc/fstab
  • Crie uma entrada no final do ficheiro
Terminal window
UUID=<partition UUID> /media/foo somefs defaults 0 0

Substituindo <UUID da partição>, foo e somefs pelo seu UUID, diretório e sistema de ficheiros (ex: ext4), bem como definindo quaisquer outras opções que deseje após “defaults”, tais como _netdev para um NAS, ou nofail para qualquer disco não crítico.

  • Recarregue o seu daemon
Terminal window
sudo systemctl daemon-reload
  • Monte o seu disco
Terminal window
sudo mount -a

Este disco está agora montado e passará também a ser montado automaticamente em cada arranque.