Verificação do sistema de arquivos ext4
durante a inicialização
Testado no SO: Linux Mint 18.x em uma máquina virtual
Informações básicas
/etc/fstab
tem a ordem fsck
como a última coluna (6ª), por exemplo:
<file system> <mount point> <type> <options> <dump> <fsck>
UUID=2fbcf5e7-1234-abcd-88e8-a72d15580c99 / ext4 errors=remount-ro 0 1
FSCKFIX=yes
variable em /etc/default/rcS
Isto irá alterar o fsck para auto fix, mas não forçará uma verificação fsck.
De man rcS
:
FSCKFIX When the root and all other file systems are checked, fsck is invoked with the -a option which means "autorepair". If there are major inconsistencies then the fsck process will bail out. The system will print a message asking the administrator to repair the file system manually and will present a root shell prompt (actually a sulogin prompt) on the console. Setting this option to yes causes the fsck commands to be run with the -y option instead of the -a option. This will tell fsck always to repair the file systems without asking for permission.
De man tune2fs
If you are using journaling on your filesystem, your filesystem will never be marked dirty, so it will not normally be checked.
Comece com
Definindo o seguinte
FSCKFIX=yes
no arquivo
/etc/default/rcS
Verifique e anote a última vez que fs foi verificado:
sudo tune2fs -l /dev/sda1 | grep "Last checked"
Estas duas opções NÃO funcionaram
-
Transmitindo o argumento
-F
(forçafsck
on reboot) parashutdown
:shutdown -rF now
Não; veja:
man shutdown
. -
Adicionando o arquivo
/forcefsck
vazio com:touch /forcefsck
Estes scripts parecem usar isto:
/etc/init.d/checkfs.sh /etc/init.d/checkroot.sh
NÃO funcionou na reinicialização, mas o arquivo foi excluído.
Verificado por:
sudo tune2fs -l /dev/sda1 | grep "Last checked" sudo less /var/log/fsck/checkfs sudo less /var/log/fsck/checkroot
Estes parecem ser os logs dos scripts
init
.
Repito que estas duas opções NÃO FUNCIONARAM!
Ambos os métodos funcionaram
-
switches de inicialização do kernel systemd-fsck
Editando o arquivo de configuração principal
grub
:sudoedit /etc/default/grub
GRUB_CMDLINE_LINUX="fsck.mode=force"
sudo update-grub sudo reboot
Isso fez uma verificação do sistema de arquivos conforme verificado com:
sudo tune2fs -l /dev/sda1 | grep "Last checked"
Nota: Esta DID uma verificação, mas para forçar uma correção também, você precisa especificar
fsck.repair="preen"
oufsck.repair="yes"
. -
Usando
tune2fs
para definir o número de montagens do sistema de arquivos antes de fazer umfsck
,man tune2fs
tune2fs' info is kept in the file system superblock
-c
define o número de vezes para montar o fs antes de verificar o fs.sudo tune2fs -c 1 /dev/sda1
Verifique com:
sudo tune2fs -l /dev/sda1
Este trabalho DID foi verificado com:
sudo tune2fs -l /dev/sda1 | grep "Last checked"
Resumo
Para forçar um fsck
em cada inicialização no Linux Mint 18.x, use tune2fs
ou fsck.mode=force
, com opcional fsck.repair=preen
/ fsck.repair=yes
, a linha de comando do kernel alterna.