fstab (Português) - ArchWiki

Jump to content
From ArchWiki

Status de tradução: Esse artigo é uma tradução de fstab. Data da última tradução: 2021-02-03. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- Nomeação persistente de dispositivo de bloco
- Sistemas de arquivos
- tmpfs
- swap

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 para `0`, 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 ser `1`. Para outras partições deve ser `2`, ou `0` para desabilitar a verificação.

Dica:

- 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 de `1`. 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

Atenção: Descritores de nomes do kernel não são persistentes e podem mudar a cada inicialização, eles não devem ser usados em arquivos de configuração.

### 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

Nota: Se qualquer um dos seus campos conter espaços, veja #Espaços no caminho do arquivo.

### 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

Nota: Se qualquer dos campos contém espaços, veja #Espaços no caminho do arquivo.

### 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.

Nota: Isto vai fazer o tipo de sistema de arquivo `autofs` que é ignorado pelo mlocate 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ção `strictatime` é 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.
  Nota: `noatime` implica `nodiratime`. Você não precisa especificar ambos.
- `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ção `defaults`, `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.

## Veja também

- Full device listing including block device
- Filesystem Hierarchy Standard
- 30x Faster Cache and Site Speed with TMPFS

Categories:

- File systems (Português)
- Boot process (Português)