sai do e2fsck na inicialização

4

É possível, de alguma forma, sair do e2fsck na inicialização?

Meu sistema executa o e2fsck a cada 30 dias, o que é bom para mim e eu quero que continue assim. Mas às vezes, quando ligo o computador e já passaram 30 dias, ainda quero que ele seja inicializado rapidamente. Por exemplo, quando eu tenho que fazer uma apresentação em um laptop - imagine dizer a 50 pessoas "nós só temos que esperar por 10 minutos ... não, eu não posso evitar ... sim, isso é Linux, por que você está perguntando " :)

Se eu pressionar Ctrl + C, ele para a verificação e continua a sequência de inicialização, mas o sistema não pode ser usado porque o sistema de arquivos raiz é montado como somente leitura. E depois que eu reiniciar o cheque começa novamente.

Eu procurei na Internet pela resposta e há muitas perguntas semelhantes, mas não encontrei nenhuma solução. Alguém sabe de uma solução?

Observação : Estou procurando uma solução que não desabilite o fsck e que não exija qualquer ação antes de reinicializar o computador - eu não sei de antemão vou ter que pular o cheque.

Se for importante: Debian 6 (Squeeze). \

UPDATE : Eu aprendi que é possível sair do e2fsck com a tecla Esc no Ubuntu. Isso é exatamente o que eu estou procurando - alguém sabe como fazer isso acontecer no Debian?

SOLUTION : A resposta de Garrett estava correta, eu tive que editar /etc/init.d/checkroot.sh . Logo antes destas linhas:

#
# The actual checking is done here.
#
if [ "$rootcheck" = yes ]
then
    ...

Eu adicionei estas linhas:

if [ "$rootcheck" = yes ]
then
    if [ -f /forcefsck ] || grep -s -w -i "forcefsck" /proc/cmdline
    then
        echo "fsck was forced."
    else
        echo "********************************************************************************************************"
        echo "*                                                                                                      *"
        echo "*  WARNING: fsck should be run, but it is disabled. Create /forcefsck and reboot at your convenience.  *"
        echo "*                                                                                                      *"
        echo "********************************************************************************************************"
        rootcheck="no"
    fi
fi

Funciona lindamente - eu sorrio toda vez que vejo a mensagem, sabendo que acabei de resgatar outra meia hora da minha vida. :)

    
por johndodo 31.01.2012 / 10:25

3 respostas

6

Existem três maneiras fáceis de alcançar o que você deseja, dependendo da situação.

  1. Ao encerrar, use a linha de comando shutdown binary e passe a opção -f , por exemplo, para uma reinicialização: shutdown -rf now . Você também pode fazer um atalho com isso, se preferir. Isso irá pular a verificação do fsck somente na próxima reinicialização.
  2. Quando o menu grub for exibido no boot, pressione 'e' para editar o kernel de inicialização atual, edite a linha vmlinuz e anexe fastboot ao final. Como na opção 1, isso pula a verificação do fsck somente para essa inicialização.
  3. Se você realmente quiser desativar completamente a verificação (não recomendada), edite o arquivo /etc/fstab . Encontre a linha com seu sistema de arquivos raiz e no final haverá dois números, geralmente 1 2 . Alterar o último número (2 aqui) para 0 impedirá que todas as verificações de fsck de inicialização automáticas sejam executadas nesse volume.

Editar para # 2: você pode adicionar uma nova entrada ao grub para fastboot , que pode ser mais adequada ao seu caso de exemplo. Isso mantém a verificação normal do fsck enquanto apresenta uma opção durante a inicialização.

    
por 31.01.2012 / 17:42
1

Apesar de não abordar diretamente sua questão de como anular um fsck em execução, se você souber antecipadamente que precisará de uma inicialização rápida (como se estivesse planejando fazer uma apresentação), certamente poderá executar o fsck manualmente em algum momento anterior. Isso dará a você 30 dias antes da próxima verificação automatizada do sistema de arquivos sem tocar em nenhuma configuração do sistema.

    
por 31.01.2012 / 11:06
1

Você pode editar o script de inicialização que chama fsck. Então você poderia, por exemplo, pedir ao console para fazer um fsck, com um tempo limite. Os scripts estão em /etc/init.d/checkroot.sh e /etc/init.d/checkfs.sh.

Noto que minha cópia tem esse código, que você pode reativar:

# Disabled AC power check until fsck can be told to only check the
# file system if it is corrupt when running on battery. (bug #526398)
#       if which on_ac_power >/dev/null 2>&1 && [ "$rootcheck" = yes ]
#       then
#               on_ac_power >/dev/null 2>&1
#               if [ "$?" -eq 1 ]
#               then
#                       log_warning_msg "On battery power, so skipping file system check."
#                       rootcheck=no
#               fi
#       fi
    
por 31.01.2012 / 11:59