Collegamento per riavviare da Windows a Ubuntu


10

Ho un sistema a doppio avvio standard: Ubuntu e Windows. Grub è configurato per avviare Windows per impostazione predefinita.

C'è un modo per creare una sorta di collegamento in Windows, che potrebbe:

  1. riavvia Windows
  2. avviare in Ubuntu

Il dubbio c'è un modo
— Tim

1
È possibile, ma non in modo semplice .... Non conoscere le capacità di questo: sourceforge.net/projects/grub2win/files provalo se vuoi o de.mcbf.net/david/grubchoosedefault e lo farai 100 % ha bisogno di ext2fsd.com . Inoltre potresti voler leggere questo linuxquestions.org/questions/linux-software-2/…
— RiddleMeThis

1
@Tim dove c'è una volontà (o tonnellate di denaro) c'è un modo: D
— Wilf

Risposte:


8

Non è necessario modificare /boot/grub/grub.cfgcome suggerito da Michal Hagara. Questo potrebbe interrompere Ubuntu se si installa un nuovo kernel e non si aggiorna il file e:\home\user\Grubshift\ubuntudefault\grub.cfg.

Tutto quello che devi fare è creare / copiare un file /boot/grub/grubenvcon il seguente contenuto

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

Dov'è next_entryla riga della prossima voce del menu di grub che dovrebbe essere avviata la prossima volta (a partire da zero). Quindi next_entry=2sarebbe la terza riga.

Grub rimuoverà automaticamente il valore dopo l'avvio, quindi la prossima volta riavvierai il tuo sistema operativo predefinito.

grub-rebootFunziona così .


Questa è una soluzione molto più conveniente, grazie!
— Dmitriy Berkutov il

Non sapevo di quella funzionalità:) ... Come hai visto, ho sottolineato, che scherzare con grub.cfg non è il più saggio ...
— RiddleMeThis

sei sicuro che 987 volte "#" è richiesto? Penso che 462 volte sia sufficiente
— MrGreen

2

Ecco cosa ho in mente:

  • http://www.ext2fsd.com/ (dovrebbe essere in grado di scrivere sulla partizione EXT, "montare" e assegnare una lettera all'avvio)
  • quindi preparerei il file GRUB modificato, dove Ubuntu è impostato come sistema operativo predefinito (anche questo verrà archiviato sulla partizione Linux)
  • Script BATCH di Windows (eseguito dal collegamento desiderato) che:
    1. Backup OLD GRUB (Windows come predefinito)
    2. copia GRUB modificato (il default è Ubuntu) su OLD one (il default è Windows)
    3. Riavvia il PC
  • Script BASH Linux che modifica e aggiorna GRUB all'avvio (o al riavvio) per ripristinare Windows come sistema operativo predefinito

Posso sbagliarmi completamente con questo approccio, ma non riesco a capire perché non dovrebbe funzionare.

MODIFICARE:

E c'è anche: http://www.paragon-drivers.com/extfs-windows/ che non ho mai provato.


PROGRESSO

1.Shortcut per riavviare Windows e avviare Ubuntu

OK, il lato negativo di questo è che dovremo modificare grub.cfg (/boot/grub/grub.cfg) direttamente (è sconsigliato - https://askubuntu.com/a/437341/402801 ), perché c'è nessun modo di eseguire update-grubda Windows ... se riesci a convivere con quella lettura più lontano.

  • Come ho già detto, installa Ext2Fsd , esegui il montaggio automatico e assegna una lettera all'avvio
  • Ho creato la mia "cartella di backup" /home/user/Grubshiftcon 3 sottodirectory: backup (per il backup di /boot/grub/grub.cfg effettivi), ubuntudefault (per la memorizzazione di grub.cfg con Ubuntu come predefinito), windowsdefault (hai idea)

Dopo l'installazione, Ubuntu è impostato come predefinito, quindi copialo grub.cfgnella directory desiderata. Ho la configurazione di "Windows come predefinito" modificando GRUB tramite grub-customizer (secondo me è più sicuro), dopo che copia Windows grub.cfgnella directory desiderata

Successivamente, apri il blocco note e inserisci:

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- opzione di copycomando, elimina la richiesta di conferma per voler sovrascrivere un file di destinazione esistente

/r /t 0 - opzioni di spegnimento, 1. significa riavvio, 2. significa immediatamente, senza che vengano visualizzati brutti messaggi

Modifica il percorso di conseguenza !!!

  • Salvare quel file (ho usato UTF-8) e modificare l'estensione in *.bat
  • Crea collegamento sul desktop per shift.bat, fai clic con il tasto destro su shorctur -> proprietà -> scheda scorciatoia -> Esegui: ridotto a icona (che eliminerà la comparsa di CMD)

L'ho provato almeno 8 volte, impostando Windows come predefinito con grub-customizer...

Non sto dicendo che sia sicuro, ma HEY !, stiamo scherzando con il bootloader ... non è sicuro

Quando funziona completamente, possiamo eliminare completamente il menu di GRUB, perché si avvierà sempre nel sistema operativo giusto ...


La logica sembra buona, purtroppo ext2fsd non supporta completamente ext4.
— Dmitriy Berkutov l'

1
Inoltre, se lo script si risolve (come se Windows lo facesse mai :) il computer non si avvia - buona idea però. Un buon esempio è se lo script Linux viene eseguito all'avvio, ma il computer viene spento durante l'avvio e l'esecuzione dello script, quindi ...
— Wilf,

0

Ecco come ho impostato la mia configurazione:

Per riassumere: il sistema riavvia il default per durare attivo, si riavvia da Windows a Linux e viceversa usando un semplice script.

Imposta grub per avviare sempre l'ultimo selezionato:

Sotto Linux:

  • inserisci GRUB_DEFAULT=savede GRUB_SAVEDEFAULT=truein / etc / default / grub
  • aggiorna la configurazione usando sudo update-grub

Installa il driver extfs di Paragons

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

Crea script di riavvio:

Se / boot / grub / grubenv non esiste, crealo usando la risposta di Germar

File batch per il riavvio da 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
  • sostituisci /mount disk1 L:con qualcosa di specifico per il tuo sistema. Puoi trovare i dischi disponibili usando il extmounter /listcomando e la lettera di unità. Inoltre, L:non deve essere già stato preso.
  • salvalo come ad es reboot-linux.bat
  • puoi fare clic con il tasto destro su bat e selezionare run as administratorper eseguirlo

Script di shell per il riavvio da Linux a Windows:

sudo sed -i -e '/next_entry/c\next_entry=2' /boot/grub/grubenv
sudo reboot
  • sostituire next_entry=2con qualunque sia la voce di Windows.
  • salvarlo come ad es. ~/reboot_windowse contrassegnarlo come eseguibile:chmod +x ~/reboot_windows
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.