¿Cómo puedo configurar grub (o un gestor de arranque diferente) para usar teclas modificadoras?

¿Cómo puedo configurar grub (o un gestor de arranque diferente) para usar teclas modificadoras?

Para aclarar, quiero realizar un arranque dual de Windows y una distribución de Linux. Ya sé cómo configurar mi computadora portátil para hacer eso. Sin embargo, no quiero que el menú de grub se muestre al arrancar. Me gustaría que inicie Windows automáticamente de forma predeterminada, a menos que se presione una tecla modificadora durante el inicio (ctrl, por ejemplo). Si se presiona la tecla modificadora, se iniciará la distribución de Linux.

es posible?

Respuesta1

Este hilo en AskUbuntuaborda una cuestión casi idéntica. Aparentemente, puede ocultar el cuadro de diálogo de grub y abrirlo presionando shifty, de lo contrario, dejar que el sistema operativo predeterminado se inicie después del tiempo que definió a través de la GRUB_TIMEOUTentrada en su grub.cfg.

GRUB_DEFAULT= 2 #depends on which entry Windows is
hiddenmenu #this hides the menu
GRUB_TIMEOUT=3 #example for 3 seconds

Respuesta2

Como escribes en tu comentario, esto es para una nueva instalación, así que supongo que vendrá concomida2.

En realidad, en mi experiencia, siempre arrancar Windows con grub1 fue difícil. La adición de un nuevo kernel a la lista de versiones de kernel para seleccionar (por ejemplo, después de una actualización del kernel de Linux) cambiaría la posición de la entrada de Windows. Esto provocó un punto codificado GRUB_DEFAULTa otra cosa (la mayoría de las veces, la prueba de memoria insertada por el instalador de grub entre la lista de kernels de Linux y la entrada de Windows en la lista). Con grub1 resolví este problema al tener un script que purgaba todos los kernels excepto los 3 más recientes, manteniendo así fija la posición de Windows.

Así que asegúrese de utilizar grub2, ya que facilita las cosas gracias a 2 características:

  • grub2 permitesubmenús, para que el valor de GRUB_DEFAULTno deje de ser válido después de una actualización del kernel (lo que coloca los kernels antiguos en el submenú)
  • grub2 genera las entradas del menú a través deguiones(en /etc/grub.dUbuntu)

Recomiendo hacer el cambio a laguionespara forzar a Windows a ser la primera opción en el menú: en /etc/grub.dcambiar nombre 30_os-prober(que genera la entrada de Windows) a algo como 09_os-prober. Luego, este script se ejecuta antes, 10_linuxya que los scripts se ejecutan ordenados por nombre de archivo y la entrada de Windows siempre estará en la parte superior. Y la parte superior es la predeterminada si no se especifica nada más.

Ejecute update-grubpara crear el menú en /boot/grub, de modo que se encargue de iniciar siempre Windows.

En cuanto a que no se muestre el menú que quieres usarGRUB_HIDDEN_TIMEOUTy algunos otros en /etc/grub/default:

# wait 5 seconds for a key-press before showing the menu
GRUB_HIDDEN_TIMEOUT=5
# do not show the countdown counter
GRUB_HIDDEN_TIMEOUT_QUIET=true
# after hidden timeout is done wait 0 seconds -> boot without menu
GRUB_TIMEOUT=0

La combinación anterior espera 5 segundos sin salida (cuenta regresiva) o un menú y luego inicia la primera entrada. (Nuevamente: ejecute update-grubdespués de cambiar eso).

Respuesta3

En Grub2:

set timeout=0
if keystatus --ctrl; then
    set timeout=15
fi

Si se presiona Ctrl, se mostrará el menú durante 15 segundos antes de iniciar la entrada estándar; Si no se presiona Ctrl, iniciará la entrada estándar de inmediato sin ningún menú.

Para obtener más información, consulte info grubel estado de la clave. Hay algunas advertencias: es posible que no funcione en todas las plataformas. Alternativamente a --ctrl, también admite --alt y --shift, por lo que puede probarlos si --ctrl no funciona.

Alternativamente, puedes poner Grub en una memoria USB. Entonces, Windows arrancará directamente cuando no esté conectado. También puedes colocar varios Live CD y cosas como memtest o freedos en la memoria USB. Algo muy útil para tener en tu billetera :)

información relacionada