¿Cómo puedo forzar a Ubuntu a arrancar en un menú de arranque atascado?

31

Tengo Ubuntu Server 11.04, pero no tiene cabeza (no tiene monitor). La única forma en que quiero poder acceder es remotamente a través de SSH. Pero, a veces, digamos después de una pérdida de energía, cuando el servidor se reinicia, se quedará atascado en el menú de arranque de Grub y no hará una cuenta regresiva. Simplemente colgará allí esperando que yo elija la primera entrada de arranque. Esto significa que tengo que ir allí y enchufar un monitor y un teclado.

Pero no puedo hacer eso de forma remota. ¿Cómo puedo forzarlo a que continúe arrancando para iniciar la entrada 1 (predeterminado) independientemente de la pérdida de energía o lo que sea?

nEnlazado
fuente

Respuestas:

10

La respuesta a esta se puede encontrar en el archivo grub /etc/grub.d/00_header

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

Establecer el valor de tiempo de espera en -1 detendrá la cuenta regresiva. Cambie el valor a un valor> 0, es decirset timeout=10

esta sección del archivo se vería así

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

Entonces corre

sudo update-grub2
fossfreedom
fuente
Gracias. Esto es para la sección "make_timeout" en el archivo, ya que puedo ver varias líneas "recordfail" cuando busco. Si es así, ¿deja esa segunda opción "establecer tiempo de espera" tal como está (la que dice "más")?
nLinked
correcto - Actualizaré la respuesta para aclarar
fossfreedom
Si ejecuto sudo shutdown now -r, pero hago ping en el sistema y noto que no se ha vuelto a conectar, cuando lo apago y vuelvo a encender manualmente, ¿hay algún lugar para comprobar por qué se bloqueó?
nEnlace el
¿se ha quedado atascado en la comida nuevamente? o simplemente se ha apagado? Haga un hombre "apagado", hay un par de archivos donde se escriben cosas.
fossfreedom
3
Creo que esta solución no es permanente porque se sobrescribirá si los paquetes grub reciben actualizaciones. La "otra solución" para usar "GRUB_RECORDFAIL_TIMEOUT" es más apropiada. Entonces, respetuosamente he votado negativamente a esta solución y voté a favor de la otra.
rik-shaw
36

A partir de Ubuntu 12.04, una solución más sencilla, pero no documentada, es utilizar /etc/default/grubpara anular el tiempo de espera de falla de registro :

GRUB_TIMEOUT=10
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT

El hecho de que dicha opción esté completamente indocumentada es demasiado malo.

EDITAR

En realidad, el soporte para GRUB_RECORDFAIL_TIMEOUTse agregó en la mitad del ciclo 12.04, a partir de la versión 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

Información más detallada de LaunchPad .

C2H5OH
fuente
Después de realizar el cambio, también ejecute update-grubpara generar el /boot/grub/grub.cfgarchivo actualizado
Colt