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.