it-swarm.com.de

Wie kann man fernsteuern, welches Betriebssystem Grub bootet?

Betrachten Sie das folgende Dual-Boot-Setup:

  • Grub ist installiert um /dev/sda
  • /dev/sda1 wird gemountet als /boot
  • /dev/sda6 wird gemountet als /
  • Windows 10 ist auf /dev/sdb2 installiert.

Derzeit wählt Grub standardmäßig Ubuntu, wenn es gestartet wird, und ich kann mich remote über SSH anmelden. Es ist auch möglich, Windows beim Start von Grub auszuwählen und mich remote über RDP anzumelden.

Das Problem ist, dass ich nicht auswählen kann, welches Betriebssystem gestartet werden soll, wenn ich nicht physisch anwesend bin.

Diese Frage beschreibt eine Methode, mit der Grub das zuletzt ausgewählte Betriebssystem automatisch bootet. funktioniert jedoch nicht . Wenn ich Windows auswähle, kann ich den PC nicht remote neu starten und Ubuntu booten.

Gibt es eine Möglichkeit, das hochzufahrende Betriebssystem fernzusteuern?

9
Nathan Osman

Wir können mit grub-reboot einen bestimmten Starteintrag im Grub-Menü neu starten. Dies kann auch von einer Fernsitzung aus erfolgen, z. über SSH.

Um in ein anderes Betriebssystem zu booten, wählen Sie die Position, die im Grub-Menü dargestellt wird, beginnend mit 0:

Sudo grub-reboot <num>

enter image description here

In diesem Fall befindet sich mein Windows in der Position 4. Also beim Ausstellen

Sudo grub-reboot 4 && Sudo reboot

Der Computer wird nach dem in den Grub-Einstellungen festgelegten Timeout unter Windows neu gestartet.

Nach dem Neustart von Windows startet der Computer mit dem Standardbetriebssystem. Dies kann mit definiert werden

Sudo grub-set-default <num>

Damit dies funktioniert, müssen wir möglicherweise GRUB_DEFAULT=saved in unserem /etc/default/grub definieren, aber auf meinem System hat es auch mit den Standardeinstellungen funktioniert.

Ein Neustart von Windows von Windows aus ist leider nicht möglich.

11
Takkat

Eine weitere Idee dank takkats Antwort :

  1. Der Standardstart ist Ubuntu
  2. grub-reboot N wobei N der Windows-Starteintrag ist
  3. Durch einen Neustart von Windows kehren Sie zum Standardstart zurück: Ubuntu.

Nachteil : Um Windows neu zu starten, müssen Sie zweimal neu starten: Starten Sie Windows neu, lassen Sie Ubuntu neu starten und grub-reboot N erneut! : - (

3
Fabby

Sie können das Standard-Betriebssystem mit grub abhängig von der Zeit einstellen, siehe Kann GRUB geplant werden? Dies bedeutet: Ändern des Standardeintrags (automatische Anmeldung) zu festgelegten Zeiten automatisch? . So können Sie beispielsweise grub so konfigurieren, dass es unter Windows bootet, wenn $ MINUTE ungerade ist, und unter Linux bootet, wenn $ MINUTE gerade ist.

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

Wenn Sie ein bestimmtes Betriebssystem möchten; Warten Sie einfach, bis es soweit ist.

Bei dieser Methode sollte die Zeit berücksichtigt werden, die benötigt wird, um Grub zu erreichen. Die Verwendung eines Zeitrahmens von 5 Minuten ist wahrscheinlich zuverlässiger.


Ich denke, es ist auch möglich, zwischen den Starteinträgen zu wechseln. So etwas wie :

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

wenn grub so konfiguriert ist, dass es sich an das zuletzt gebootete Betriebssystem erinnert ( Wie wird grub2 dazu gebracht, sich an die letzte Auswahl zu erinnern? )

Wenn Ihr PC nicht mit dem gewünschten Betriebssystem startet, starten Sie ihn einfach neu.

1
Max