Saltar al contenido

¿Editar grub desde Windows?

Si encuentras algo que te causa duda puedes dejarlo en los comentarios y te responderemos tan rápido como podamos.

Solución:

El título de la pregunta es cuál es la solución propuesta por OP al problema. El título pudo ser cambiado a “¿Cómo puedo hacer que Grub arranque automáticamente con la última opción de sistema operativo utilizada?”.

Podría decirse que este debería ser el comportamiento grub predeterminado. Por ejemplo, podría estar usando Windows durante una semana jugando Mass Effect IV y nunca entro a Ubuntu. O podría estar probando algo en Ubuntu 14.04 con un Kernel específico y no me gusta tener que seleccionarlo cada vez que se reinicia más de 50 veces.

Hay un enlace en varios comentarios anteriores a una respuesta de Stack Exchange propuesta como una pregunta duplicada. También podemos hacer referencia a Preguntas y respuestas de AskUbuntu: ¿Cómo hacer que grub2 recuerde la última opción?

En resumen editar /etc/default/grubcomente una línea e inserte dos líneas debajo:

#GRUB_DEFAULT=0 # Rather than first menu option, we'll default to last  OS.
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Luego guarde los cambios y ejecute sudo update-grub.

¡Voila! Mientras trabaja en Windows y las actualizaciones automáticas ocurren a las 3 am, el sistema se reinicia en Windows y aplica Stage 3 of 3.

OP está proponiendo “¿Editar Grub desde Windows?” en el título como una solución al problema. Sin embargo, después de indicar el motivo, queda claro el título. deberían ser cambiado a algo como: “¿Cómo me aseguro de que los reinicios de actualización automática de Windows vayan a Windows en lugar de a Ubuntu?”.

Si la pregunta era “¿Cómo reinicio a la última opción de sistema operativo?” es un duplicado obvio del enlace. El nuevo título propuesto (o algo más corto) tiene mérito porque otros pueden buscar el mismo problema. Sé que he tenido el problema de actualización-reinicio-actualización de Windows antes y nunca me hubiera imaginado buscar en el enlace aquí.

PD Puedes editar Grub desde Windows pero, ¿por qué querrías hacerlo?

Actualización: Resuelto (en su mayoría): la razón por la que esto fue tan complicado fue porque Windows había marcado el ESP como oculto, por lo que WSL estaba obteniendo errores de acceso denegado. Creo que debido a una conversión MBR2GPT. Cambiar esto no fue sencillo, si alguien tiene curiosidad, le explicaré si no puede encontrar su propia solución.

He agregado los pasos finales para lograr la mitad de Windows de esta configuración a continuación, omitiré el procedimiento para ejecutar WSL, es fácil (pista: busque Linux en la tienda de Windows).

Mi respuesta propuesta requiere arranque UEFI y GPT, más común en estos días. La forma en que evité el problema de que Windows desconociera las particiones de Linux se inspiró en la forma en que Windows maneja el arranque.

La forma tradicional de arrancar en MBR era entregar a /boot/grub (etapa 2) y use el espacio adicional para hacer cosas que el MBR no pudo. La partición EFI es esencialmente un MBR gigante en cualquier disco que desee colocar. El momento eureka fue cuando noté que Windows básicamente colocó la etapa 2 del administrador de arranque de Windows en la partición EFI en el mismo directorio que bootmgr.efi y bootmgfw.efi. Entonces, ¿por qué no poner Grub etapa 2 allí también?

TL;RD

Explicando paso a paso cómo responde esto al OP.

  1. ESP (EFI System Partition) tiene formato FAT32, ¡perfecto para multiplataforma!

  2. En Linux, mkdir /boot/efi y luego monte ESP en esto;

    grub-install --boot-directory=boot/efi/EFI/grub /dev/nvme0n1
    

    Etcétera. (Espero no estar simplificando demasiado).

  3. reiterando la solución propuesta por otros aquí al problema principal

    GRUB_DEFAULT=saved
    GRUB_SAVEDEFAULT=true
    
  4. La revelación maestra – #Grub Environment Block – grub/grubenv está en una partición FAT32 y es trivial modificarlo en Linux:

    grub-editenv /boot/efi/EFI/grub/grubenv set next_entry=X
    

    donde X es el menuentry numerado desde 0.

  5. Bueno los comandos son:

    mountvol b: /S
    wsl sudo mount -t drvfs b: /mnt/b
    wsl sudo grub-editenv /mnt/b/EFI/grub/grubenv set next_entry=0
    wsl sudo umount /mnt/b
    mountvol b: /D
    

Ver enlace SU en la parte inferior re: script

El problema final es que estoy demasiado cansado para escribir un script para hacer esto ahora mismo, los comandos wsl no funcionan por separado, el estado no se transmite. No soy programador, solo necesito algo de tiempo para averiguar cómo se pueden unir estos tres comandos de Linux. Esto es suficiente para satisfacer los requisitos de “¿funciona esta respuesta?” por ahora. Voy a actualizar con una versión final pronto. P.ej. Debe iniciar el terminal WSL para usar esta solución en este momento.

Actualizaré esta pregunta para pedir ayuda para escribir el script por lotes: ¿Cómo crear un script en el Subsistema de Windows para Linux (WSL) y llamarlo desde un archivo por lotes?

No sé cómo hacer esto desde Windows, pero puede hacer la mayor parte de lo que describió con una GUI en Ubuntu.

Así es como puede evitar tener que reiniciar Windows Always Boot to Ubuntu

Realice los pasos a continuación. Después de esos pasos, reiniciar Windows siempre se iniciará en Windows automáticamente. Reiniciar Ubuntu siempre reiniciará a ubuntu automáticamente. No tendrás que editar cada vez. Simplemente configure Grub para recordar la última opción. La última opción siempre será el valor predeterminado automático sin más cambios manuales cada vez.

Instale el personalizador de GUI Grub.

$ sudo add-apt-repository ppa:danielrichter2007/grub-customizer
$ sudo apt-get update
$ sudo apt-get install grub-customizer

Desde la GUI, puede elegir qué Arranque estará en la parte superior seleccionándolo y luego haciendo clic en las flechas Arriba/Abajo para colocarlo en la lista.

En la pestaña general, puede personalizar aún más el comportamiento de Grub. También puede hacer clic en Advance para cambiar habilitar, deshabilitar, agregar, eliminar o cambiar las líneas del archivo grub.

El arranque temporal en la parte de Windows se puede lograr mediante:

1) Select the GRUB_DEFAULT entry -> Click the Value Column.  Replace the "0"
   with "saved"
2) Add an entry named "GRUB_SAVEDDEFAULT" -> Set the value to "true"
3) Now click Close -> Save (When you click save Grub will be updated to your new
   configuration)

Ahora, después de reiniciar Windows, no volverá a Ubuntu

Ahora, cuando esté realizando actualizaciones de Windows y otro mantenimiento, el sistema siempre se iniciará en Windows (una vez que haya iniciado Windows) hasta que elija Ubuntu para volver.

Te mostramos las reseñas y valoraciones de los lectores

Si entiendes que ha sido de ayuda nuestro artículo, sería de mucha ayuda si lo compartes con otros juniors y nos ayudes a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *