O FSCK não é executado automaticamente

1

Meu /etc/fstab para minha partição principal do sistema operacional:

UUID=5ee65c50-5672-42a6-9dcf-8bdba30c38aa  /   ext4    defaults,noatime,nodiratime,data=writeback,errors=remount-ro    0   1

Uma das opções está definida para montar a partição como somente leitura se houver algum erro.

Eu quero que o sistema operacional execute automaticamente fsck , corrija todos os problemas e, em seguida, reinicialize se algum erro for encontrado e a partição estiver definida como somente leitura. Eu também defini FSCKFIX=yes em /etc/defaults/rcS . Atualmente, nada funciona!

A única maneira de fazer isso funcionar é executar uma função bash em rc.local:

TIMEOUT=30
check_disk() {
    DEV=/dev/mmcblk0p2

    local TPREV=$(date +%s);
    while :
    do
        ro='awk '$4~/(^|,)ro($|,)/' /proc/mounts | grep "/dev/root"'
        if [ ! -z "${ro}" ]
        then
            echo -e "parition is readonly; running fsck now \n"
            fsck -y ${DEV}
            reboot
            break
        fi

        # Timeout
        local TNOW=$(date +%s)
        if ((TNOW - TPREV>=TIMEOUT)); then
            break
        fi

        sleep 1
    done
}

check_disk &

Eu preciso fazer um loop para x seconds porque fstab remonta a partição depois que rc.local é executado.

Estou executando o Debian. Ajuda é apreciada

    
por Kousha 19.02.2016 / 22:45

0 respostas