Como forçar o Ubuntu a inicializar em um menu de inicialização bloqueado?

31

Eu tenho o Ubuntu Server 11.04, mas é decapitado (sem monitor). A única maneira que eu quero acessar é remotamente via SSH. Mas, às vezes, digamos que, após uma perda de energia, quando o servidor reiniciar, ele ficará preso no menu de inicialização do Grub e não ocorrerá a contagem regressiva. Ele ficará lá esperando que eu escolha a primeira entrada de inicialização. Isso significa que eu tenho que ir lá e conectar um monitor e teclado.

Mas não posso fazer isso remotamente. Como forçá-lo a continuar inicializando a entrada de inicialização 1 (padrão), independentemente da perda de energia ou qualquer outra coisa?

nLinked
fonte

Respostas:

10

A resposta para esta pode ser encontrada no arquivo grub /etc/grub.d/00_header

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=${2}
fi
EOF
}

Definir o valor do tempo limite para -1 interromperá a contagem regressiva. Altere o valor para um valor> 0 ou sejaset timeout=10

esta seção do arquivo seria semelhante

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=10
else
  set timeout=${2}
fi
EOF
}

Então corra

sudo update-grub2
liberdade de expressão
fonte
Obrigado. Isso é para a seção "make_timeout" no arquivo, pois posso ver várias linhas "recordfail" ao pesquisar. Nesse caso, deixe a segunda opção "definir tempo limite" como está (a que diz "mais")?
NLinked 03/08/19
correto - atualizarei a resposta para esclarecer
fossfreedom
Se eu executar o sudo shutdown agora -r, mas executar ping no sistema e perceber que ele não voltou a ficar on-line, quando eu o desligo e ligo manualmente novamente, há algum lugar para verificar por que ele travou?
NLinked
ficou preso no grub novamente? ou acabou de desligar? Faça um homem "desligar", existem alguns arquivos nos quais as coisas são gravadas.
fossfreedom
3
Penso que esta solução não é permanente, porque será substituída se os pacotes grub receberem atualizações. A "outra solução" para usar "GRUB_RECORDFAIL_TIMEOUT" é mais apropriada. Portanto, votei respeitosamente esta solução e votei na outra.
Rik-shaw
36

A partir do Ubuntu 12.04, uma solução mais direta, mas não documentada, é usar /etc/default/grubpara substituir o tempo limite do recordfail :

GRUB_TIMEOUT=10
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT

O fato de essa opção ser completamente indocumentada é muito ruim.

EDITAR

Na verdade, o suporte para GRUB_RECORDFAIL_TIMEOUTfoi adicionado no meio do ciclo 12.04, a partir da versão 1.99-21ubuntu3.3:

  grub2 (1.99-21ubuntu3.3) precise-proposed; urgency=low

[ Ben Howard ]
* Parameterization of recordfail setting. This allows users to define the
  default time out of GRUB when recordfail has been set. The curren
  setting causes hangs on headless and appliances where access to the
  console is limited or prohibited.  (LP: #669481)  [1]

-- Louis Bouchard <[email protected]>  Tue, 21 Aug 2012 10:51:58 +0200

Informações mais detalhadas do LaunchPad .

C2H5OH
fonte
Depois de fazer a alteração, também execute update-grubpara gerar o /boot/grub/grub.cfgarquivo atualizado
Colt