fstab (Português)
O arquivo fstab(5) pode ser usado para definir como partições do disco, vários outros dispositivos de bloco, ou sistemas de arquivos remotos devem ser montados no sistema.
Cada sistema de arquivos é descrito em uma linha separada. Estas definições serão convertidas dinamicamente em units de montagem do systemd durante a inicialização, e quando a configuração do gerenciador do sistema é recarregada. A configuração padrão vai automaticamente executar fsck e montar os sistemas de arquivos antes de iniciar serviços que precisam deles montados. Por exemplo, systemd automaticamente garante que a montagem de sistemas de arquivos remotos como NFS ou Samba é somente realizada depois da rede estar configurada. Portanto, a montagem de sistemas de arquivos locais e remotos especificados no /etc/fstab
deve funcionar normalmente. Veja {{man|5|systemd.mount} para detalhes.
O comando mount
usará o fstab, se somente o diretório ou dispositivo é dado, para preencher o valor do outro parâmetro. Ao fazer isso, as opções de montagem que estão listadas no fstab também serão usadas.
Uso
Um simples /etc/fstab
, usando UUIDs do sistema de arquivos:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> UUID=0a3407de-014b-458b-b5c1-848e92a327a3 / ext4 defaults 0 1 UUID=f9fe0b69-a280-415d-a03a-a32752370dee none swap defaults 0 0 UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4 defaults 0 2
<device>
, dispositivo, descreve o dispositivo de bloco especial ou sistema de arquivos remoto a ser montado; veja #Identificando sistemas de arquivos.<dir>
, diretório, descreve o ponto de montagem.<type>
, o tipo do sistema de arquivos.<options>
, as opções de montagem associadas; veja mount(8) § FILESYSTEM-INDEPENDENT_MOUNT_OPTIONS e ext4(5) § MOUNT_OPTIONS.<dump>
é verificado pelo utilitário dump(8). Este campo é normalmente definido para0
, que desabilita a verificação.<fsck>
define a ordem de execução do fsck do sistema de arquivos na iniciliazação; veja fsck(8). Para o dispositivo raiz isto deve ser1
. Para outras partições deve ser2
, ou0
para desabilitar a verificação.
- O tipo
auto
deixa o comando de montagem supor que tipo de sistema de arquivos é usado. Isto é útil para mídias óticas (CD/DVD/Blu-ray). - Se o sistema de arquivos raiz é btrfs ou XFS (Português), a ordem do fsck deve ser definida para
0
ao invês de1
. veja fsck.btrfs(8) e fsck.xfs(8).
Todos os dispositivos especificados dentro do /etc/fstab
serão automaticamente montados na inicialização e quando o parâmetro -a
é usado com mount(8) a menos que a opção noauto
é especificada. Dispositivos que são listados e não estão presentes resultarão em um erro a menos que a opção nofail
é usada.
Veja fstab(5) § DESCRIPTION para detalhes.
Identificando sistemas de arquivos
Existem diferentes maneiras de identificar sistemas de arquivos que serão montados no /etc/fstab
: o descritor de nomes do kernel, rótulo e UUID do sistema de arquivos, e rótulo e UUID da partição GPT. UUID ou PARTUUID devem ser preferidos sobre o descritor de nomes do kernel e rótulos. Veja nomeação persistente de dispositivo de bloco para mais explicações. É recomendado a leitura dele antes de continuar lendo este.
Neste seção, será descrito como montar sistemas de arquivos usando todos os métodos de montagem disponíveis por meio de exemplos. A saída dos comandos lsblk -f
e blkid
usados nos seguintes exemplos estão disponíveis no artigo Nomeação persistente de dispositivo de bloco.
Para usar descritores de nomes do kernel, use /dev/sdxy
na primeira coluna.
Descritores de nomes do kernel
Execute lsblk -f
para listar as partições e prefixar os valores na coluna NAME com /dev/
.
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> /dev/sda1 /boot vfat defaults 0 2 /dev/sda2 / ext4 defaults 0 1 /dev/sda3 /home ext4 defaults 0 2 /dev/sda4 none swap defaults 0 0
Rótulos do sistema de arquivos
Execute lsblk -f
para listar as partições, e prefixe os valore na coluna LABEL (rótulo em português) com LABEL=
ou alternativamente execute blkid
e use os valores LABEL sem aspas:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> LABEL=ESP /boot vfat defaults 0 2 LABEL=SYSTEM / ext4 defaults 0 1 LABEL=DATA /home ext4 defaults 0 2 LABEL=SWAP none swap defaults 0 0
UUIDs do sistema de arquivos
Execute lsblk -f
para listar as partições, e prefixe os valores na coluna UUID com UUID=
ou alternativamente execute blkid
e use os valores UUID sem as aspas:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> UUID=CBB6-24F2 /boot vfat defaults 0 2 UUID=0a3407de-014b-458b-b5c1-848e92a327a3 / ext4 defaults 0 1 UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4 defaults 0 2 UUID=f9fe0b69-a280-415d-a03a-a32752370dee none swap defaults 0 0
Rótulos de partição GPT
Execute blkid
para listar as partições, e use os valores PARTLABEL sem as aspas:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> PARTLABEL=EFI\040SYSTEM\040PARTITION /boot vfat defaults 0 2 PARTLABEL=GNU/LINUX / ext4 defaults 0 1 PARTLABEL=HOME /home ext4 defaults 0 2 PARTLABEL=SWAP none swap defaults 0 0
UUIDs de partição GPT
Execute blkid
para listar as partições, e use os valores PARTUUID sem as aspas:
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> PARTUUID=d0d0d110-0a71-4ed6-936a-304969ea36af /boot vfat defaults 0 2 PARTUUID=98a81274-10f7-40db-872a-03df048df366 / ext4 defaults 0 1 PARTUUID=7280201c-fc5d-40f2-a9b2-466611d3d49e /home ext4 defaults 0 2 PARTUUID=039b6c1c-7553-4455-9537-1befbc9fbc5b none swap defaults 0 0
Dicas e truques
Automontagem com systemd
Veja systemd.mount(5) para todas as opções de montagem.
Partição local
No caso de uma grande partição, pode ser mais eficiente permitir serviços que não dependem dela para iniciar enquanto o fsck é executado nela. Para fazer isso adicione as seguintes opções na entrada do fstab
da partição:
noauto,x-systemd.automount
Assim o fsck e a montagem vão ser somente executados quando ela é primeiro acessada, e o kernel colocará no buffer todo o acesso a arquivos dela até que esteja pronta. Este método pode ser relevante se ter, por exemplo, uma partição /home
significantemente grande.
autofs
que é ignorado pelo locate por padrão.Sistema de arquivos remoto
O mesmo se aplica para a montagem de sistema de arquivos remoto. Se você quer que eles sejam montados somente no acesso, você precisa usar os parâmetros noauto,x-systemd.automount
. Adicionalmente, você pode usar a opção x-systemd.mount-timeout=
para especificar quanto o systemd deve esperar para o comando de montagem terminar. Também, a opção _netdev
garante que o systemd entende que a montagem depende da rede e que faça ela depois que a rede está conectada.
noauto,x-systemd.automount,x-systemd.mount-timeout=30,_netdev
Sistema de arquivos criptografado
Se você tem sistemas de arquivos criptografados com keyfiles, você pode também adicionar o parâmetro noauto
para a entrada correspondente no /etc/crypttab
. systemd não irá então abrir o dispositivo criptografado na inicialização, ao invês disso vai esperar até que ele seja acessado e então automaticamente abrí-lo com a keyfile especificada antes de montar. Isto pode salvar alguns segundos na inicialização se você está usando um dispositivo RAID criptografado por exemplo, porquê o systemd não precisa esperar pelo dispositivo se tornar disponível. Por exemplo:
/etc/crypttab
data /dev/md0 /root/key noauto
Desmontar automaticamente
Você pode também especificar um periodo máximo de ociosidade para um dispositivo montado com o parâmetro x-systemd.idle-timeout
. Por exemplo:
noauto,x-systemd.automount,x-systemd.idle-timeout=1min
Isto vai fazer o systemd desmontar o dispositivo depois dele ficar ocioso por 1 minuto.
Dispositivos externos
Dispositivos externos que são montados quando presentes mas ignorados quando não, podem precisar da opção nofail
. Isto previne erros sendo reportados na inicialização. Por exemplo:
/etc/fstab
/dev/sdg1 /media/backup jfs nofail,x-systemd.device-timeout=1ms 0 2
A opção nofail
é melhor combinada com a opção x-systemd.device-timeout
. Devido ao tempo máximo de espera padrão de um dispositivo ser 90 segundos, então um dispositivo externo desconectado com somente nofail
vai fazer sua inicialização 90 segundos mais longa, a menos que você reconfigure o tempo máximo de espera como mostrado. Tenha a certeza de não definí-lo como 0, já que isto é traduzido para o infinito.
Espaços no caminho do arquivo
Desde que espaços são usados no fstab
para delimitar campos, se qualquer campo (PARTLABEL, LABEL ou o ponto de montagem) contém espaços, estes espaços devem ser trocados pelo caractere \
seguido pelo código octal de 3 dígitos 040
:
/etc/fstab
UUID=47FA-4071 /home/usuario/Fotos\040da\040camera vfat defaults 0 0 /dev/sda7 /media/100\040GB\040(Armazenamento) ext4 defaults,user 0 2
Opções atime
Abaixo opções atime que podem ter impacto no desempenho do dispositivo de armazenamento.
- A opção
strictatime
atualiza o tempo de acesso dos arquivos toda vez que eles são acessados. Isto é útil quando o Linux é usado para servidores; não tem muito valor para usuários comuns. A desvantagem da opçãostrictatime
é que até mesmo ler de um arquivo do page cache (ler da memória ao invês do dispositivo de armazenamento) vai resultar em uma escrita. - A opção
noatime
totalmente desabilita a escrita do tempo de acesso do arquivo para o dispositivo de armazenamento toda vez que ele é acessado. Funciona bem para quase todos as aplicações, exceto as que precisam saber se um arquivo foi lido desde a última vez que foi modificado. A informação do tempo de escrita do arquivo continuará a ser atualizada em qualquer momento que o arquivo é modificado com esta opção habilitada. - A opção
nodiratime
desabilita a escrita do tempo de acesso de um arquivo somente para diretórios enquanto outros arquivos vão ainda ter seu tempo de acesso escrito. relatime
atualiza o tempo de acesso somente se o tempo de acesso anterior for anterior ao tempo atual de modificação ou alteração. Adicionalmente, desde o Linux 2.6.30, o tempo de acesso é sempre atualizado se desde a última modificação tiver passado mais de 24 horas. Esta opção é usada quando a opçãodefaults
,atime
(que significa que o kernel vai usar o padrão, que érelatime
; veja mount(8) e wikipedia:Stat (system call)#Criticism of atime) ou nenhuma opção é especificada.
Quando usar Mutt ou outra aplicação que precisa saber se um arquivo foi lido desde a última vez que foi modificado, a opção noatime
não deve ser usada; usar a opção relatime
é aceitável e ainda oferece uma melhora de desempenho.
Desde o kernel 4.0 existe outra opção relacionada:
lazytime
reduz escrita para o disco ao manter as mudanças no timestamp do nó-i (tempo de acesso, modificação e criação) somente em memória. Os timestamps no disco são atualizados somente quando (1) o nó-i do arquivo precisa ser atualizado por alguma mudança não relacionada ao timestamp do arquivo, (2) uma sincronização para o disco ocorre, (3) um nó-i não deletado é expulso da memória ou (4) se mais que 24 horas passaram desde a última vez que a cópia em memória foi escrita no disco.
- Atenção: Caso ocorra uma falha de sistema, o tempo de acesso e modificação no disco podem estar desatualizadas em até 24 horas.
Note que a opção lazytime
funciona em conjunto com as opção *atime
acima mencionadas, não como uma alternativa. Que é relatime
por padrão, mas pode ser até mesmo strictatime
com o mesmo ou menor custo da escrita no disco como a opção relatime
sozinha.
Remontar a partição raiz
Se por alguma razão a partição raiz foi inapropriadamente montada como somente leitura, remontar a partição raiz com acesso a leitura-escrita pode ser feito com o seguinte comando:
# mount -o remount,rw /
Automontagem de partição GPT
Em um disco particionado com GPT é possível omitir as partições /
, /home
, /srv
e swap do /etc/fstab
ao particionar de acordo com a Discoverable Partitions Specification. Veja systemd#Montagem automática de partição GPT.