fsck (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

fsck, acrônimo do inglês de "File System Check", que significa "verificação do sistema de arquivos " é usado para verificar e, opcionalmente, reparar um ou mais sistemas de arquivos Linux. Normalmente, o programa fsck irá tentar manusear sistemas de arquivos em diferentes discos físicos em paralelo para reduzir o tempo total necessário para verificar todos os sistemas de arquivos (veja: fsck(8)).

O processo de inicialização do Arch Linux convenientemente cuida dos procedimentos fsck por você e irá verificar todas as partições relevantes em seu(s) dispositivo(s) automaticamente em cada inicialização. Consequentemente, geralmente não há necessidade de recorrer à linha de comando.

Verificação durante inicialização do sistema

Mecanismo

Há duas opções:

  1. mkinitcpio oferece a opção de executar fsck em seu sistema de arquivos raiz antes de montá-lo pelo hook do fsck. Ao fazer isto, você deverá montar a raiz em modo de escrita pelo apropriado parâmetro do kernel rw.[1]
  2. systemd irá executar fsck em todos os sistemas de arquivos, exceto os que tenham um código execução definido superior a 0 (em /etc/fstab ou arquivo init definido pelo usuário). Para o sistema de arquivos raiz, ele também deve ser montado inicialmente em modo somente-leitura com o parâmetro do kernel ro para depois ser remontado em modo de escrita pelo fstab (note que a opção de montagem defaults implica rw).

A primeira opção descrita é a padrão, e é a obtida se você seguir o guia de instalação. Se, ao invés dela, ocorrer a opção 2, você precisará remover o hook do fsck de mkinitcpio.conf e usar ro na linha de comando do kernel. O parâmetro do kernel fsck.mode=skip pode ser usado para certificar-se de que fsck está completamente desativado para ambas as opções.

Forçando a verificação

Se você usar o hook base do mkinitcpio, será possível forçar a execução do fsck durante a inicialização passando fsck.mode=force como um parâmetro do kernel. Isto fará com que ele verifique cada sistema de arquivos existente na máquina.

Alternativamente, systemd fornece systemd-fsck@.service(8), que verifica todos os sistemas de arquivos configurados, os quais não foram verificados em initramfs. Contudo, verificar o sistema de arquivos raiz dessa maneira irá causar uma demora no processo de inicialização, já que o sistema de arquivos precisará ser remontado.

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: É possível executar fsck pela initramfs usando o hook do systemd? (Discuss in Talk:Fsck (Português))
Nota: Para aqueles acostumados em usar outras distribuições GNU/Linux, os truques antigos que consistiam em escrever um arquivo com o nome forcefsck na raiz do sistema de arquivos ou usando o comando shutdown com a opção -F, somente funcionavam no antigo SysVinit e em versões anteriores do Upstart, e não estão mais funcionando com o systemd. O método descrito acima, portanto, é a única que funciona com Arch Linux.

Dicas e truques

Tentar reparar blocos danificados

Para automaticamente reparar setores danificados, execute:

Atenção: Isto não irá perguntar se você deseja repará-los, já que a resposta padrão será Sim quando você executá-lo.
# fsck -a

Reparar blocos danificados interativamente

Dica: Isto é útil quando um arquivo na partição de inicialização foi alterado, e o journal falhou em atualizá-lo corretamente. Neste caso, desmonte a partição de inicialização, e execute o seguinte código:

Para reparar setores danificados, execute:

# fsck -r <drive>

Alterando a frequência de verificação

Por padrão, fsck verifica o sistema de arquivos a cada 30 inicializações (contadas individualmente para cada partição). Para alterar a frequência de verificação, execute:

# tune2fs -c 20 /dev/sda1

Neste exemplo, 20 é o número de inicializações que ocorrerão entre duas verificações.

Note que 1 fará com que a verificação ocorra em cada inicialização, ao passo que 0 faria com que a varredura deixasse de ocorrer.

Dica: Se desejar ver a frequência e a atual contagem de montagens para uma partição específica, use:
# dumpe2fs -h /dev/sda1 | grep -i 'mount count'

Opções do fstab

fstab é um arquivo de configuração do sistema e é usado para informar ao Linux kernel quais partições (sistemas de arquivos) montar e onde estará a árvore do sistema de arquivos.

Um entrada típica do /etc/fstab será algo semelhante a isto:

/dev/sda1   /         ext4      defaults       0  1
/dev/sda2   /other    ext4      defaults       0  2
/dev/sda3   /win      ntfs-3g   defaults       0  0

A sexta coluna (em negrito) é a opção do fsck.

  • 0 = Não verificar.
  • 1 = Primeiro sistema de arquivos (partição) passar pela verificação; / (partição raiz) deverá ser definida com 1.
  • 2 = Todos os outros sistemas de arquivos a serem verificados.

Solução de problemas

Não é possível executar fsck em uma partição /usr separada

  1. Certifique-se de que você definiu hooks em /etc/mkinitcpio.conf e que você lembrou-se de recriar sua imagem initramfs após editar este arquivo.
  2. Verifique seu fstab! Somente a partição raiz precisa de "1" ao final da linha, todos os demais deverão conter "2" ou "0". Cuidadosamente verifique se há quaisquer erros de digitação.

ext2fs : no external journal

Às vezes (devido à falta de energia), um sistema de arquivos ext(3/4) poderá corromper-se de modo que um reparo normal não será capaz de solucionar. Normalmente, haverá um prompt do fsck indicando que não pôde encontrar um journal externo. Neste caso, execute os seguintes comandos:

Desmontar a partição baseada em seu diretório

# umount <diretório>

Gravar um novo journal à partição

# tune2fs -j /dev/<partition>

Executar fsck para reparar a partição

# fsck -p /dev/<partition>