Come controllare in remoto quale sistema operativo Grub si avvia?


10

Considera la seguente configurazione a doppio avvio:

  • Grub è installato su /dev/sda
  • /dev/sda1 è montato come /boot
  • /dev/sda6 è montato come /
  • Windows 10 è installato su /dev/sdb2

Allo stato attuale, Grub seleziona Ubuntu per impostazione predefinita quando si avvia e posso accedere in remoto tramite SSH. È anche possibile selezionare Windows all'avvio di Grub e posso accedere in remoto tramite RDP.

Il problema è che non ho modo di selezionare quale sistema operativo avviare quando non sono fisicamente presente.

Questa domanda descrive un metodo per far avviare automaticamente Grub all'ultimo sistema operativo selezionato. Tuttavia, questo non funzionerà . Se seleziono Windows, non ho modo di riavviare in remoto il PC e avviare Ubuntu.

C'è un modo per controllare in remoto quale sistema operativo si avvia?


@Takkat dal lato di Windows però? (Posso eseguire Windows e avere una sorta di programma o script per istruire Grub ad avviare Ubuntu?)
Nathan Osman

@Takkat oh, capisco cosa stai dicendo ... che potrebbe funzionare.
Nathan Osman,

Hai pensato di avviare tramite PXE? Quindi è possibile lasciare la configurazione di avvio su un altro server a cui è possibile accedere in qualsiasi momento e regolare di conseguenza e riavviare l'altro computer per avviare il sistema operativo specificato?
Ziazis

Risposte:


11

Possiamo riavviare una determinata voce di avvio del menu Grub usando grub-reboot . Questo può essere fatto anche da una sessione remota, ad es. Tramite SSH.

Per avviare un altro sistema operativo, scegli la posizione in cui è rappresentato nel menu di Grub a partire da 0:

sudo grub-reboot <num>

inserisci qui la descrizione dell'immagine

In questo caso il mio Windows è in posizione 4. Quindi durante l'emissione

sudo grub-reboot 4 && sudo reboot

Il computer si riavvierà su Windows dopo il timeout definito nelle impostazioni di Grub.

Dopo il riavvio da Windows, la macchina si avvierà nel sistema operativo predefinito. Questo può essere definito con

sudo grub-set-default <num>

Per farlo funzionare, potremmo dover definire GRUB_DEFAULT=savednel nostro /etc/default/grubsistema, ma sul mio sistema ha funzionato anche con le impostazioni predefinite.

Purtroppo non è possibile riavviare Windows da Windows.


3

Un'altra idea grazie alla risposta di Takkat :

  1. L'avvio predefinito è Ubuntu
  2. grub-reboot Ndove si Ntrova la voce di avvio di Windows
  3. Il riavvio di Windows ti riporterà all'avvio predefinito: Ubuntu.

Svantaggio : per riavviare Windows è necessario riavviare due volte: riavviare Windows, avviare Ubuntu e di grub-reboot Nnuovo! :-(


Altre idee per favore. :)
AB,

1

Puoi impostare il sistema operativo predefinito con grub a seconda del tempo, vedi GRUB può essere programmato? Ciò significa: modificare automaticamente la "voce" predefinita (accesso automatico) in determinati periodi di tempo? . Quindi, ad esempio, puoi configurare grub per l'avvio su Windows quando $ MINUTE è dispari e l'avvio su Linux quando $ MINUTE è pari.

insmod datehook
if [ $MINUTE -eq 0 -o $MINUTE -eq 2  -o $MINUTE -eq 4 -o $MINUTE -eq 6 -o $MINUTE -eq 8]; then
    set default="Ubuntu"
else
    set default="Windows"
fi

Se si desidera un sistema operativo specifico; aspetta solo che arrivi il suo momento.

L'uso di questo metodo dovrebbe tenere conto del tempo necessario per raggiungere Grub. L'uso di un intervallo di 5 minuti è probabilmente più affidabile.


Penso che sia anche possibile alternare tra le voci di avvio. Qualcosa di simile a :

if [ $default = "Ubuntu" ]; then
  set default="Windows"
else
  set default="Ubuntu"
fi

quando grub è configurato per ricordare l'ultimo SO avviato ( come ottenere grub2 per ricordare l'ultima scelta? )

Se il PC non si avvia nel sistema operativo desiderato, è sufficiente riavviare.

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.