Como forçar automaticamente discos fsck após uma falha no `systemd`?

18

Como definir systemdpara forçar fsckdiscos automaticamente após uma falha (desligamento total)?

Quando eu usei sysvinit(no Arch Linux) como /sbin/initusei o hack: no arquivo rc.localeu crio /forcefsck; no rc.local.shutdowneu removo. Na inicialização, rc.sysinitative force fsck, se /forcefsckexistir.

Como fazer o mesmo systemd? Talvez tenha instalações embutidas para fsckesmagamento automático depois?

GAD3R
fonte
Resposta semelhante Como o btrfs verifica uma partição raiz .
dma_k

Respostas:

20

Você pode forçar fsckno momento da inicialização passando fsck.mode=force( autoé o padrão e skippode ser usado para ignorar a verificação) como um parâmetro de linha de comando do kernel (a partir da systemdv. 213 , há também um segundo parâmetro: fsck.repair- para controlar como fsckdeve lidar com sistemas de arquivos impuros na inicialização, os valores possíveis são: preencorrigir o que pode ser corrigido com segurança, yesresponder sim a todas as perguntas e noé o padrão).


Observe que systemd-fsck não conhece detalhes 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.*) .
Agora, se o seu sistema de arquivos é xfsou btrfsserá executado /sbin/fsck.xfsou /sbin/fsck.btrfsrespectivamente. Se isso não parece funcionar, talvez você deva verificar a página do manual fsck.xfsou fsck.btrfsrespectivamente e examinar o conteúdo desses arquivos /sbin.

don_crissti
fonte
11
Por exemplo, com o Grub: edit /etc/default/grub, adicione fsck.mode=forceo valor de GRUB_CMDLINE_LINUX_DEFAULT. Então corra update-grube reboot.
Yvan
2
não funciona para xfs btw. mas ei. esse é o futuro
Florian Heigl