fsck é uma ferramenta para verificar e reparar um sistema de arquivos no Linux, macOS e FreeBSD, semelhante à ferramenta CHKDSK do Windows.
Com o antigo sysvinit e o Upstart, os usuários podiam forçar uma verificação do disco na próxima reinicialização usando um comando simples (sudo touch /forcefsck
), mas esse não é mais o caso hoje em dia, com a maioria das distribuições Linux usando o systemd. Este artigo explica como forçar o fsck a ser executado durante a inicialização de duas maneiras, que funcionam com o systemd. Você também encontrará um comando que mostra quando uma partição foi verificada pela última vez pelo fsck, no final do artigo.
Usando as etapas abaixo, você forçará uma verificação de consistência do sistema de arquivos cada vez que o computador inicializar. Também existem instruções para desfazer isso.
tune2fs pode forçar um fsck em cada reinicialização somente para sistemas de arquivos EXT4, EXT3 e EXT2. A maioria das distribuições Linux usa EXT3/4 por padrão, então, a menos que você especifique explicitamente um tipo de sistema de arquivos diferente, é o que você está usando na maioria dos casos.
tune2fs pode disparar um fsck forçado em cada reinicialização usando a opção -c
(max-mount-counts). Esta opção define o número de montagens após as quais o sistema de arquivos será verificado, portanto, defini-la como 1
executará fsck cada vez que o computador inicializar. Definir como -1
ou 0
redefine isso (o número de vezes que o sistema de arquivos é montado será desconsiderado pelo e2fsck e pelo kernel).
Para que isso funcione, você precisa se certificar de que a partição que deseja verificar e reparar usando fsck tem o número de aprovação maior que 0
definido em /etc/fstab
(última coluna em /etc/fstab
). A partição raiz deve ser definida como 1
(primeiro a ser verificada), enquanto outras partições que você deseja verificar devem ser definidas como 2
. Exemplo:
# /etc/fstab: static file system information.
/dev/sda1 / ext4 errors=remount-ro 0 1
/dev/sda5 /home ext4 defaults 0 2
Depois de fazer isso, force um fsck em cada inicialização para um sistema de arquivos EXT4, EXT3 ou EXT2 usando:
sudo tune2fs -c 1 /dev/sdXY
Você precisará substituir sdXY
pela partição que deseja verificar e reparar. Você pode encontrar isso usando um aplicativo gráfico como o Gparted, que exibe todas as partições disponíveis para cada disco, ou usando uma ferramenta de linha de comando, como lsblk
ou fdisk
(sudo fdisk -l
).
Agora você pode reinicializar o sistema e o fsck deve ser forçado a executar uma verificação de consistência do sistema de arquivos.
Quando você não quiser mais forçar o fsck a executar em cada inicialização, execute o mesmo comando, mas com -1
em vez de 1
:
sudo tune2fs -c -1 /dev/sdXY
Você também pode usar este comando para executar o fsck periodicamente. Por exemplo, você pode definir o fsck para executar uma verificação do sistema de arquivos a cada 30 inicializações, usando -c 30
(por exemplo: sudo tune2fs -c 30 /dev/sdXY
).
fsck.mode=force
como um parâmetro do kernel e, opcionalmente, fsck.repair=yes
Isso deve funcionar com muitos tipos de sistemas de arquivos, incluindo ext4/ext3/ext2, xfs, ntfs, fat32, exfat e mais. Também deve ser observado que systemd-fsck não conhece nenhum detalhe sobre sistemas de arquivos específicos e simplesmente executa verificadores de sistema de arquivos específicos para cada tipo de sistema de arquivos (/sbin/fsck.*
; por exemplo: /sbin/fsck.ext4
).
systemd executa fsck para cada sistema de arquivos que tem um número de passagem fsck maior que 0
definido em /etc/fstab
(última coluna em /etc/fstab
), portanto, certifique-se de editar seu /etc/fstab
se não for o caso. A partição raiz deve ser definida como 1
(primeiro a ser verificado), enquanto outras partições que você deseja verificar devem ser definidas como 2
. Exemplo:
# /etc/fstab: static file system information.
/dev/sda1 / ext4 errors=remount-ro 0 1
/dev/sda5 /home ext4 defaults 0 2
Todas as partições que aparecem em /etc/fstab
e têm o número de passagem (última coluna em fstab) maior que 0 serão verificadas se você inicializar com o parâmetro de kernel fsck.mode=force
.
Agora que resolvemos isso, veja como forçar um fsck na inicialização com o systemd. Você precisa adicionar fsck.mode=force
como um parâmetro do kernel ao seu arquivo de configuração grub.
Este comando usa o editor de texto de linha de comando Nano para abrir /etc/default/grub
para que você possa editá-lo:
sudo nano /etc/default/grub
Para forçar um fsck cada vez que o computador inicializar, você precisará adicionar fsck.mode=force
a GRUB_CMDLINE_LINUX_DEFAULT
, no final da linha, mas antes da última citação ("
).
Exemplo:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash fsck.mode=force"
Certifique-se de não editar mais nada e de que as edições que você fez estão corretas, caso contrário, seu computador pode falhar ao inicializar!
Depois de fazer as alterações, salve o arquivo e saia (para salvar o arquivo e sair do Nano, use: Ctrl + O
, Enter
e, em seguida, Ctrl + X
).
Há um segundo parâmetro do kernel que você pode adicionar, chamado fsck.repair
. Ele tem a opção padrão preen
, que repara automaticamente os problemas que podem ser corrigidos com segurança. Você pode usar fsck.repair=yes
para responder "sim" a todas as perguntas pelo fsck ou "não" para responder não a todas as perguntas.
Exemplo (force o fsck em cada reinicialização e responda "sim" a todas as perguntas do fsck):
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash fsck.mode=force fsck.repair=yes"
Adicione isso a /etc/default/grub
da mesma maneira como explicado antes.
Depois de terminar de editar /etc/default/grub
, atualize sua configuração Grub2:
sudo update-grub
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grub-mkconfig -o /boot/grub/grub.cfg
Em outras distribuições do Linux, você pode tentar os comandos mencionados acima. Se eles não funcionarem, pesquise como atualizar a configuração do Grub2 para sua distribuição Linux.
Quando terminar, reinicie o sistema e fsck deve executar uma verificação de consistência do sistema de arquivos na inicialização.
Para parar a verificação forçada de seu sistema de arquivos em cada inicialização, remova fsck.mode=force
(e fsck.repair=yes
se você o adicionou) de seu arquivo de configuração /etc/default/grub
e atualize o grub, como já explicado.
Você pode descobrir quando um sistema de arquivos foi verificado pela última vez por fsck usando tune2fs:
sudo tune2fs -l /dev/sdXY | grep checked
Substitua sdXY
pela partição que você deseja ver quando foi verificada pela última vez. Exemplo:
$ sudo tune2fs -l /dev/sda1 | grep checked
Last checked: Thu May 23 15:16:23 2019
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Force fsck (Filesystem Consistency Check) After Reboot