Para o Debian você pode usar AutoFsck mas o pacote não é mais suportado (última atualização em 2010). Então tenha isso em mente.
A outra maneira seria colocar um script FSCK / bash em seu script de desligamento. Para o SE linux / centos etc eu usaria chkconfig level 0 (halt) e 6 (reboot). chkconfig --levels 0 rc.local-shutdown on
Coloque o script em /etc/rc.d/init.d/
. (nível 6 para reinicialização)
Para o Debian eu colocaria a criação dos scripts em /etc/rc6.K00nome do script e /etc/rc0.d/K00nome do script,
Quanto ao script, você pode usar algo assim:
#!/bin/bash
NETFS="nonfs,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,nousbfs,noshfs,nofuse,nofuseblk"
if (( 'tune2fs -l /dev/sda2 | awk '/Mount count/{print $3}'' > 'tune2fs -l /dev/sda2 | awk '/Maximum mount count/{print $4-1}' ))
then /sbin/fsck -A -T -C -a -t $NETFS 2>/dev/null
fi
Este código não foi escrito por mim, mas por alguém nos fóruns archlinux . Eu não tentei o código. Então, tenha isso em mente também.
Ou você pode simplesmente fazer algo simples como /sbin/fsck -A -T -C -a -- -f
dentro do script.