Eu tenho um servidor Ubuntu 12.04 sem cabeça em um datacenter a 1500 milhas de distância. Duas vezes agora, na reinicialização, o sistema decidiu que tinha que fsck. Infelizmente, o Ubuntu executou o fsck no modo interativo, então eu tive que pedir a alguém no meu datacenter para revisar, conectar um console e pressionar a tecla Y. Como faço para configurá-lo para que o fsck seja executado no modo não interativo no momento da inicialização com o sinalizador -y
ou -p
(aka -a
)?
Se eu entendi o processo de inicialização do Ubuntu corretamente, o init chama o mountall, que por sua vez chama o fsck. No entanto, não vejo nenhuma maneira de configurar como o fsck é chamado. Isso é possível?
(Para evitar uma sugestão; sei que posso usar tune2fs -i 0 -c 0
para evitar fscks periódicos. Isso pode ajudar um pouco, mas preciso que o sistema tente voltar, mesmo que tenha um motivo real para fsck, digamos, após uma falha de energia .)
Em resposta às perguntas de acompanhamento, aqui estão os detalhes pertinentes do meu / etc / fstab. Não acredito que tenha editado isso do que o Ubuntu colocou lá.
UUID=3515461e-d425-4525-a07d-da986d2d7e04 / ext4 errors=remount-ro 0 1
UUID=90908358-b147-42e2-8235-38c8119f15a6 /boot ext4 defaults 0 2
UUID=01f67147-9117-4229-9b98-e97fa526bfc0 none swap sw 0 0
/etc/default/rcS
não são realmente válidas em 2019, com o Ubuntu 16 e o Ubuntu 18 agora usando o systemd. Não conheço a história completa do systemd, mas afsck.repair
opção de linha de comando de configuração / kernel parece relevante. Os documentos atualmente dizem que seu padrão épreen
, o que significa-p
. Também pode ser definido comoyes
para-y
./etc/default/grub
pode ser o lugar para definir isso. Ficaria agradecido se alguém com mais conhecimento fornecesse uma resposta moderna do sistema.Respostas:
A configuração que eu estou procurando é em / etc / default / rcS ,
FSCKFIX=yes
. Isso significa "reparar automaticamente os sistemas de arquivos com inconsistências durante a inicialização" e faz com que o fsck seja executado com o-y
sinalizador. Foi definidono
em ambos os meus sistemas Ubuntu.Mesmo quando definido como
no
, o tempo de inicialização do fsck ainda é um pouco inativo. mountall executa fsck com-a
, um sinônimo para-p
, que significa "corrigir automaticamente qualquer problema no sistema de arquivos que possa ser corrigido com segurança sem intervenção humana". Aparentemente,-p
cai para o modo interativo se houver correções inseguras a serem feitas. Para executar totalmente automaticamente, você precisa-y
ouFSCKFIX=yes
.Aqui está o trecho de código relevante de mountall.c
fonte
fsck.repair=yes
a paramGRUB_CMDLINE_LINUX_DEFAULT
in/etc/default/grub
Para o Ubuntu 15,16,17+, a configuração do valor FSCKFIX está localizada em lib / init / vars.sh
Pode usar o comando
grep -r FSCKFIX * 2>/dev/null
para encontrá-lo.fonte
/etc/default/rcS
./lib/init/vars.sh
tem um padrão paraFSCKFIX
mas fontes/etc/default/rcS
que podem substituí-lo. OTOH, um sistema Ubuntu 18 recém-instalado, não tinha umrcS
arquivo.Verifique se você não possui nenhum sinalizador que possa causar isso no fstab e verifique seus scripts de inicialização. (Tente grep'ing seus scripts init para 'fsck' para descobrir onde é usado) Meu sistema executa fsck não interativo, então aqui está uma cópia do meu fstab e parte do meu script / etc / init / mountall para você comparar
Fragmento de / etc / init / mountall
fonte
grep FSCKFIX /etc/default/rcS
diz no seu sistema?