fsck (Portuguê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:
- 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] - 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 kernelro
para depois ser remontado em modo de escrita pelo fstab (note que a opção de montagemdefaults
implicarw
).
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.
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:
# fsck -a
Reparar blocos danificados interativamente
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.
# 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
- 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. - 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>