Tengo un sistema de arranque dual Linux / Windows configurado, y con frecuencia cambio de uno a otro. Estaba pensando si podría agregar un elemento de menú en uno de los menús para reiniciar directamente en Windows, sin detenerme en el mensaje de GRUB.
Vi esta pregunta en un foro, eso es exactamente lo que quiero pero se trata de lilo, que no es mi caso.
Pensé en una solución que modificara la entrada predeterminada en el menú de GRUB y luego reiniciara, pero hay algunos inconvenientes, y me preguntaba si había una alternativa más limpia.
(Además, me interesaría una solución para arrancar desde Windows directamente en Linux, pero eso podría ser más difícil y no pertenece aquí. De todos modos, siempre que lo tenga de una manera, la otra forma podría configurarse como el valor por defecto.
ACTUALIZACIÓN Parece que alguien le preguntó una pregunta similar , y si esas son las respuestas sugeridas, que bien podría editar /boot/grub/grubenv
como grub-reboot
y grub-set-default
y grub-editenv
hacer. )
Gracias de antemano por cualquier consejo.
ACTUALIZACIÓN :
Esta es mi versión de GRUB: (GRUB) 1.99-12ubuntu5-1linuxmint1
Intenté ejecutar grubonce
, el comando no se encuentra. Y buscarlo en los repositorios no me da nada. Estoy en Linux Mint, así que eso podría ser ...
Al ver man grub-reboot
, parece que hace lo que quiero, como lo grubonce
hace. También está disponible en todas partes (al menos es para mí, creo que es parte del paquete grub). Vi dos comandos relacionados: grub-editenv
y grub-set-default
.
Descubrí que después de correr sudo grub-set-default 4
, cuando corres grub-editenv list
obtienes algo similar a:
saved_entry=4
Y cuando corres grub-reboot 4
, obtienes algo como:
prev_saved_entry=0
saved_entry=4
Lo que significa que ambos hacen lo mismo (uno es temporal y el otro no).
Sorprendentemente, cuando intenté:
sudo grub-reboot 4
sudo reboot now
No funcionó, como si no hubiera hecho nada, solo me mostró el menú como de costumbre y seleccionó la primera entrada, diciendo que arrancará esta entrada en 10 segundos.
Lo intenté de nuevo, pensé que podría haber escrito una entrada incorrecta (está basada en cero, ¿verdad?). Esa vez, simplemente se colgó en la pantalla del menú, y tuve que reiniciar la PC para poder arrancar.
Si alguien puede probar esto, solo para ver si soy solo yo, lo agradecería. (mint me ha estado haciendo pasar un mal momento, y esa sería una buena ocasión para cambiar: P).
Al leer el código /boot/grub/grub.cfg
, parece que este es el camino a seguir, pero según mis observaciones, solo se ignora esta configuración ...
Respuestas:
Para que el
grub-reboot
comando funcione, deben realizarse varios cambios de configuración necesarios:saved
. Una posible ubicación para esto es laGRUB_DEFAULT=
línea en/etc/default/grub
grub-set-default
para configurar su entrada predeterminada a la que usa normalmente.update-grub
).Esto debería ocuparse de la configuración inicial. En el futuro, solo hazlo
grub-reboot <entry>
por un arranque de una sola vez<entry>
.fuente
saved
", mientras que mi mantenimientoGRUB_DEFAULT=0
también fue suficiente. Entonces, ¿essaved
innecesario?GRUB_DEFAULT=0
conGRUB_DEFAULT=saved
sudo update-grub
su comando será:
se verá una bonita función en su ~ / .bashrc
En caso de que su grub.conf contenga varias líneas para Windows, las siguientes funciones se ocuparán solo de las líneas que comienzan
menuentry
y seleccionan solo la primera, en referencia a Windows:fuente
/boot/grub/grub.cfg
contiene más líneas con "Windows", muchas de las cuales indican algo así...=1 i915.semaphores=1 acpi_osi='!Windows 2012' $vt...
, así que supongo que su código fallará. Esto se puede solucionar haciendo grepping para^menuentry 'Windows
.Una manera súper fácil de hacerlo es con GRUB Reboot GNOME Shell Extension (es decir, si está usando GNOME).
Para usar la extensión, vaya al sitio vinculado anteriormente y haga clic en la pequeña palanca en la esquina superior derecha (probablemente dice Desactivado cuando navega por primera vez a la página). Se le pedirá que confirme que desea descargar e instalar la extensión.
Una vez que está instalado, puede abrir el menú del sistema y hacer clic en el botón de encendido como lo haría normalmente para reiniciar. La ventana que aparece confirmando que desea cerrar o reiniciar ahora tiene un botón con la etiqueta "Reiniciar a ...". Cuando hace clic en ese botón, los elementos del menú de grub aparecen en la lista para que pueda seleccionar qué sistema operativo se iniciará automáticamente después de reiniciar. Si selecciona uno de esos elementos, su sistema se apagará y reiniciará utilizando las opciones de grub seleccionadas.
fuente
Uso openSUSE, que viene con un script llamado
grubonce
, que hace exactamente lo que necesita: configurar la entrada de grub para usarla en el próximo reinicio.No sé qué (si alguna) otras distribuciones envían este script, por lo que en caso de que su distribución no lo tenga, puede consultar esta página:
http://sidvind.com/wiki/GRUB:_Boot_another_OS_once
fuente
grub-set-default
parece más disponible (grubonce
no aparece en el verso de Ubuntu). También puede ser más útil ya que Windows 7 tiene la costumbre de reiniciar durante el inicio si las actualizaciones se aplicaron en el último apagado (es decir, comienza el inicio, procesa algunos datos de actualización, se reinicia y luego muestra la página de inicio de sesión).A menudo he iniciado Windows 7 solo para volver y encontrar Ubuntu ejecutándose.
fuente
grub-reboot
. Estoy editando mi pregunta con más detalle. Gracias de cualquier manera.En Fedora, puede usar el siguiente script. Tenga en cuenta que esto es casi lo mismo que se describe en https://askubuntu.com/a/18186/149422 , con algunas modificaciones para GRUB 2 en Fedora .
fuente
Estoy usando Ubuntu 16.04 y las soluciones anteriores no funcionaron para mí ... por alguna razón,
sudo grub-reboot 2
nunca pareció actualizar el/boot/grub/grubenv
archivo, incluso después de cambiarGRUB_DEFAULT=0
aGRUB_DEFAULT=saved
ambos/etc/default/grub
y/boot/grub/menu.lst
. El uso delsavedefault --default=2 --once
comando en grub tampoco parecía funcionar ni cambiar el archivo grubenv. Simplemente seguía volviendo al menú original de grub como si no se hubiera hecho nada.Así que terminé haciéndolo manualmente y ha estado funcionando (sin embargo, no estoy seguro de cómo funcionaría con las unidades RAID).
Donde el 2 es la ubicación de entrada de menú basada en cero para la entrada de Windows en el menú de inicio de grub.
Puede ver por qué esto funciona mirando el
/boot/grub/grub.cfg
archivo, ya que usa el valor next_entry y luego lo restablece para el próximo arranque.fuente
De acuerdo con @ jw013. Y también puede asignar el mosaico de menú para reiniciar grub (incluido el título del menú principal). p.ej:
Donde "Opciones avanzadas para Ubuntu" es el menú principal, "Ubuntu, con Linux 4.13.0-26-generic" es el submenú.
fuente
Reinicie la máquina a un objetivo de arranque específico (entrada de Grub).
El objetivo de arranque se selecciona interactivamente con fzf.
fuente