Enlace para reiniciar de Windows a Ubuntu

10

Tengo un sistema estándar de arranque dual: Ubuntu y Windows. Grub está configurado para iniciar Windows de forma predeterminada.

¿Hay alguna manera de crear algún tipo de enlace en Windows que podría:

  1. reiniciar Windows
  2. iniciar en Ubuntu
Dmitriy Berkutov
fuente
Duda de que haya un camino
Tim
1
Es posible, pero no de manera fácil ... No conozca las capacidades de esto: sourceforge.net/projects/grub2win/files pruébelo si lo desea o de.mcbf.net/david/grubchoosedefault y obtendrá 100 % necesita este ext2fsd.com . También es posible que desee leer este linuxquestions.org/questions/linux-software-2/…
RiddleMeThis
1
@Tim donde hay un testamento (o toneladas de dinero) hay una manera: D
Wilf

Respuestas:

8

No es necesario modificar /boot/grub/grub.cfgcomo sugirió Michal Hagara. Esto podría romper Ubuntu si instala un nuevo núcleo y no actualiza el e:\home\user\Grubshift\ubuntudefault\grub.cfg.

Todo lo que necesita hacer es crear / copiar un archivo /boot/grub/grubenvcon el siguiente contenido

# GRUB Environment Block
next_entry=2
###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

¿Dónde next_entryestá la línea de la siguiente entrada del menú de grub que debe iniciarse la próxima vez (comenzando desde cero) Entonces next_entry=2sería la tercera línea.

Grub eliminará automáticamente el valor después del arranque, por lo que la próxima vez volverá a iniciar su sistema operativo predeterminado.

Así es como grub-rebootfunciona.

Germar
fuente
Esta es una solución mucho más conveniente, ¡gracias!
Dmitriy Berkutov
No sabía nada de esa funcionalidad:) ... Como se puede ver, he señalado, que jugar con grub.cfg no es la más sabia ...
RiddleMeThis
¿estás seguro de que se requieren 987 veces '#'? Creo que 462 veces es suficiente :-D
Jounathaen
2

Esto es lo que tengo en mente:

  • http://www.ext2fsd.com/ (debería ser capaz de escribir en la partición EXT, "montar" y asignar letras en el arranque)
  • luego prepararía el archivo GRUB modificado, donde Ubuntu está configurado como SO predeterminado (este también se almacenaría en la partición de Linux)
  • Script BATCH de Windows (ejecutado por su acceso directo deseado) que:
    1. Copia de seguridad OLD GRUB (Windows por defecto)
    2. copiar GRUB modificado (el valor predeterminado es Ubuntu) sobre OLD one (el valor predeterminado es Windows)
    3. Reiniciar PC
  • Script BASH de Linux que modificaría y actualizaría GRUB al inicio (o reinicio) para configurar Windows como SO predeterminado

Puedo estar completamente equivocado con este enfoque, pero no puedo ver por qué no debería funcionar.

EDITAR:

Y también hay: http://www.paragon-drivers.com/extfs-windows/ que nunca he probado.


PROGRESO

1. Atajo para reiniciar Windows y arrancar Ubuntu

OK, el lado negativo de esto es que tendremos que modificar grub.cfg (/boot/grub/grub.cfg) directamente (se desaconseja - https://askubuntu.com/a/437341/402801 ), porque hay no hay forma de correr update-grubdesde Windows ... si puedes vivir con eso, sigue leyendo.

  • Como mencioné anteriormente, instale Ext2Fsd , haga que se monte automáticamente y asigne una letra al inicio
  • He creado mi "Carpeta de copia de seguridad" /home/user/Grubshiftcon 3 subdirectorios: copia de seguridad (para hacer una copia de seguridad de /boot/grub/grub.cfg), ubuntudefault (para almacenar grub.cfg con Ubuntu como predeterminado), windowsdefault (tienes el idea)

Después de la instalación, Ubuntu se configura como predeterminado, así que cópielo grub.cfgen el directorio deseado. Tengo la configuración "Windows por defecto" modificando GRUB a través de grub-customizer (es más seguro en mi opinión), después de eso copie Windows grub.cfgen el directorio deseado

Después de eso, abra el bloc de notas e inserte:

copy e:\boot\grub\grub.cfg /y e:\home\user\Grubshift\backup
copy e:\home\user\Grubshift\ubuntudefault\grub.cfg /y e:\boot\grub
shutdown /r /t 0

/y- opción de copycomando, suprime las indicaciones para confirmar que desea sobrescribir un archivo de destino existente

/r /t 0 - opciones de apagado, 1. significa reiniciar, 2. significa inmediatamente, sin mensajes feos apareciendo

¡Modifique la ruta en consecuencia!

  • Guarde ese archivo (he usado UTF-8) y cambie la extensión a *.bat
  • Cree un acceso directo de escritorio para shift.bat, haga clic derecho en shorctur -> propiedades -> pestaña de acceso directo -> Ejecutar: minimizado (eso eliminará la aparición de CMD)

He intentado esto al menos 8 veces, configurando Windows como predeterminado con grub-customizer...

No digo que sea seguro, pero ¡HEY !, estamos jugando con el gestor de arranque ... eso no es seguro

Cuando está funcionando completamente, podemos deshacernos del menú de GRUB por completo, porque siempre se iniciará en el sistema operativo correcto ...

Adiviname esto
fuente
La lógica se ve bien, lamentablemente ext2fsd no es totalmente compatible con ext4.
Dmitriy Berkutov
1
Además, si la secuencia de comandos se arruina (como si Windows alguna vez hiciera eso :) la computadora no arrancará, aunque es una buena idea. Un buen ejemplo es si el script de Linux se ejecuta en el arranque, pero la computadora se apaga mientras arranca y solo ejecuta ese script, entonces ...
Wilf
0

Así es como configuré mi configuración:

Para resumir: el sistema se reinicia de forma predeterminada a último activo, se reinicia desde Windows a Linux y viceversa utilizando un script simple.

Configure grub para arrancar siempre por última vez seleccionado:

Debajo de Linux:

  • entrar GRUB_DEFAULT=savedy GRUB_SAVEDEFAULT=trueen / etc / default / grub
  • actualizar configuración usando sudo update-grub

Instalar el controlador extfs de Paragons

ver http://www.paragon-drivers.com/extfs-windows/

Crear scripts de reinicio:

Si / boot / grub / grubenv no existe, créelo usando la respuesta de Germar

Archivo por lotes para reiniciar desde Windows a Linux:

@echo off
"C:\Program Files (x86)\Paragon Software\ExtFS for Windows\extmounter" /mount disk1 L:

:CheckForFile
IF EXIST "L:\boot\grub\grubenv" GOTO FoundIt
GOTO CheckForFile
:FoundIt

sed -i -e '/next_entry/c\next_entry=0' L:/boot/grub/grubenv
"C:\Program Files (x86)\Paragon Software\ExtFS for Windows\extmounter" /umount disk1 L:
echo press enter to reboot
pause
shutdown -r -t 00
  • reemplace /mount disk1 L:con algo específico para su sistema. Puede encontrar discos disponibles utilizando el extmounter /listcomando y la letra de la unidad. Además, L:no debe ser tomado ya.
  • guárdelo como p. ej. reboot-linux.bat
  • puedes hacer clic derecho en bat y seleccionar run as administratorpara ejecutarlo

Script de Shell para reiniciar de Linux a Windows:

sudo sed -i -e '/next_entry/c\next_entry=2' /boot/grub/grubenv
sudo reboot
  • reemplace next_entry=2con cualquiera que sea su entrada de Windows.
  • guárdelo como, por ejemplo, ~/reboot_windowsy márquelo como ejecutable:chmod +x ~/reboot_windows
dominik andreas
fuente