Wie kann ich fernsteuern, welches OS Grub startet?

10

Betrachten Sie das folgende Dual-Boot-Setup:

  • Grub ist installiert zu /dev/sda
  • /dev/sda1 ist montiert als /boot
  • /dev/sda6 ist montiert als /
  • Windows 10 ist installiert auf /dev/sdb2

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

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 startet. Dies wird jedoch nicht funktionieren . Wenn ich Windows auswähle, kann ich den PC nicht remote neu starten und Ubuntu starten.

Gibt es eine Möglichkeit, ferngesteuert zu steuern, welches Betriebssystem gestartet wird?

Nathan Osman
quelle
@ Takkat von der Windows-Seite? (Kann ich Windows ausführen und Grub durch ein Programm oder Skript anweisen, Ubuntu zu starten?)
Nathan Osman
@ Takkat oh, ich verstehe, was du sagst ... das könnte funktionieren.
Nathan Osman
Haben Sie darüber nachgedacht, über PXE zu booten? Dann könnten Sie Ihre Startkonfiguration auf einem anderen Server belassen, auf den Sie jederzeit zugreifen und entsprechend anpassen können, und dann den anderen Computer neu starten, um das angegebene Betriebssystem zu starten?
Ziazis

Antworten:

11

Wir können mit grub-reboot zu einem bestimmten Grub-Menü-Starteintrag neu starten . Dies kann auch von einer Remote-Sitzung aus erfolgen, z. B. über SSH.

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

sudo grub-reboot <num>

Geben Sie hier die Bildbeschreibung ein

In diesem Fall ist mein Windows in Position 4. Also beim Ausstellen

sudo grub-reboot 4 && sudo reboot

Der Computer wird nach dem in den Grub-Einstellungen festgelegten Zeitlimit 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=savedin unserem definieren, /etc/default/grubaber auf meinem System hat es auch mit den Standardeinstellungen funktioniert.

Leider kann ein Neustart von Windows von Windows aus nicht durchgeführt werden.

Takkat
quelle
3

Eine weitere Idee dank Takkats Antwort :

  1. Standardstart ist Ubuntu
  2. grub-reboot NWo Nist der Windows-Starteintrag?
  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 starten und grub-reboot Nerneut! :-(

Fabby
quelle
Weitere Ideen bitte. :)
AB
1

Sie können das Standardbetriebssystem mit grub je nach Zeit festlegen. Siehe Kann GRUB geplant werden? Dies bedeutet: Ändern des Standardeintrags (automatische Anmeldung) zu definierten Zeiträumen automatisch? . So können Sie beispielsweise grub so konfigurieren, dass es unter Windows bootet, wenn $ MINUTE ungerade ist, und unter Linux booten, 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 verwenden 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. 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 gestartete Betriebssystem erinnert ( Wie kann man grub2 dazu bringen, sich an die letzte Wahl zu erinnern? )

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

Max
quelle