it-swarm.com.de

Gibt es eine Möglichkeit für Grub, Windows automatisch von Windows aus neu zu starten?

Ich habe ein Dual-Boot-Setup:

  1. Ubuntu 16.04 LTS
  2. Windows

Derzeit verwende ich, wenn ich von Ubuntu in Windows reboot will, grub-reboot mit der entsprechenden Nummer als Argument. Das funktioniert gut.

Manchmal muss Windows jedoch neu gestartet werden, damit ein bestimmtes Programm installiert oder aktualisiert werden kann, und ich muss manuell den richtigen Eintrag für das Grub-Startmenü auswählen. Gibt es eine ähnliche Möglichkeit (über die Windows-Benutzeroberfläche), um grub mitzuteilen, welcher Eintrag gebootet werden soll?

Ich nehme an, der Befehl grub-reboot übergibt das Argument an eine Datei, die wiederum von grub auf reboot gelesen wird.

edit (in Bezug auf meine ausgewählte Antwort): Ich bin gerade dabei, das ext4-Laufwerk zu mounten, das/boot enthält, und die Bearbeitung per Skript durchzuführen. Dies wird möglicherweise eine Weile dauern, da ich dies in meiner Freizeit neben meinem 40-Stunden/Woche-Non-Tech-Job mache. ^^

11
amon san

Sie können replizieren, was grub-reboot tut. Es ist nur ein Skript, das schließlich aufruft:

grub-editenv /boot/grub/grubenv set next_entry="Windows"

Wobei Windows der Name Ihres Menüeintrags ist. Es könnte nicht so sein

Ich habe das gemacht. Alles, was es tut, ist, next_entry=Windows in /boot/grub/grubenv einzufügen. In Zeile 2. Wenn es sich also nur um eine Datei in einem Dateisystem handelt , können Sie in Windows genau dasselbe tun . Es ist ein Windows-Problem zu lösen, aber hier ist die allgemeine Übersicht:

  • Hängen Sie den Datenträger ein, auf dem sich der Start befindet. Dies ist wahrscheinlich der schwierigste Teil, da dies wahrscheinlich ext4 ist. Dies könnte helfen, aber es ist nicht unvorstellbar, dass Linux mit Windows ausgeführt werden muss, um es zu bearbeiten.

    Wie Muru betont, muss es nicht so schwer sein. Sie können /boot in eine eigene FAT32-Partition verschieben . Dies macht es trivial, in Windows zu mounten.

  • Fügen Sie next_entry=Windows (oder was auch immer) nach dem Kommentar vor den Hashes in die Datei ein.

  • Aushängen.
  • Starten Sie neu.

Skripte, die in Windows sind weit außerhalb meiner Komfortzone und nicht wirklich das, was wir hier tun. Aber das sollte alles sein, was Sie tun müssen.

8
Oli

Am einfachsten geht es mit Grub

Es ist umständlich, grub von Windows aus zu steuern. Eine Drittanbieteranwendung für den Zugriff auf Ubuntu unter Windows und einige Hacking-Aktionen sind erforderlich. Wie auch immer, vom oberen Teil dieses Beitrags aus: Wie ändere ich die Reihenfolge in meinen Dual-Boot-Distributionen? Sie können grub so einstellen, dass der Neustart automatisch zur letzten Menüoption erfolgt. Wenn Sie also zum ersten Mal mit Windows booten und es um 2 Uhr morgens aufwacht, um Updates auszuführen, lädt grub Windows neu, damit Updates ordnungsgemäß abgeschlossen werden können.

Wenn Sie Ubuntu manuell neu starten und aus grub auswählen, wird Ubuntu bei jedem nächsten Neustart automatisch geladen. Diese Funktion funktioniert genauso gut, wenn Sie Fehler im aktuellen Kernel haben und grub automatisch in eine ältere Kernelversion booten möchten, die Sie ausgewählt haben.

Wie man Grub dazu bringt, die letzte Bootauswahl zu wiederholen

Das ist ziemlich einfach. Mit Sudo können Sie /etc/default/grub bearbeiten und Folgendes ändern:

#GRUB_DEFAULT=0 # Rather than option #1, we'll always default to last boot choice.
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Die erste Zeile, die Sie auskommentieren, und rechts darunter die nächsten beiden Zeilen.

Speichern Sie die Datei und geben Sie das Terminal ein:

Sudo update-grub

Ubuntu-Befehlszeile zum Neustarten von Windows

Momentan benutzt du so etwas:

Sudo grub-reboot x # Where x is Windows zero-based grub menu number
Sudo reboot now

Von diesem modifizierten Stack Exchange answer können Sie den Standard-Grub verwenden, um Windows neu zu starten. Kopieren Sie diesen Code in Ihre ~/.bashrc -Datei:

function reboot-to-windows {
    WINDOWS_TITLE=`grep -i "^menuentry 'Windows" /boot/grub/grub.cfg|head -n 1|cut -d"'" -f2`
    Sudo grub-set-default "$WINDOWS_TITLE"
    Sudo reboot
}
  • Speichern Sie die Datei ~/.bashrc mit der neuen Funktion reboot-to-windows.
  • Schließen Sie Ihre aktuelle Terminalsitzung.
  • Öffnen Sie eine neue Terminalsitzung, um den geänderten ~/.bashrc zu laden.
  • Sie könnten : ~/.bashrc eingeben, um es in die vorhandene Terminalsitzung neu zu laden, aber einige Leute empfehlen, dies nicht zu tun.

Um Windows über die Befehlszeile neu zu starten, verwenden Sie:

reboot-to-windows

Wenn Windows automatisch neu gestartet wird, wenn Sie nicht suchen, wird Windows neu gestartet. Auf diese Weise können automatische Windows-Updates normal über mehrere Neustartzyklen ausgeführt werden, die Windows manchmal verwendet.

19

grub-set-default sollte dasselbe tun wie grub-reboot, aber die Einstellung dauerhaft machen. Dies ist nicht genau von der Windows-Benutzeroberfläche, wie Sie gefragt haben, aber vielleicht funktioniert es für Sie.

2
Sebastian Stark

Sie haben nicht gesagt, welche Windows-Version Sie verwenden oder ob Sie UEFI verwenden.

Wenn Sie einen ordnungsgemäßen UEFI-Start verwenden (und keinen Legacy-Start), ist es möglich, vorübergehend mit dem Windows UEFI-Starteintrag zu starten. Unter Linux kann dies mit Tools wie efibootmgr erfolgen. Unter Windows verwende ich persönlich EasyUEFI . Es ist kostenlos für den persönlichen Gebrauch auf der Benutzeroberfläche, jedoch nicht für den Einsatz in Unternehmen oder auf der Benutzeroberfläche. Ich kann nicht für seine Sicherheit bürgen. Es scheint auch etwas langsam zu sein, aber es scheint zu funktionieren

In meinem eigenen Setup, das Arch Linux (Kernel EFI Shim, ohne GRUB) und Windows 10 verwendet, sieht es nach Auswahl von "Manage EFI Boot Option" auf dem Startbildschirm folgendermaßen aus:

Image showing one-time boot option

Wenn Sie UEFI-Boot verwenden, sollten Sie etwas Ähnliches für Windows sowie einen einzelnen Eintrag für Ubuntu (der GRUB lädt) und einige andere gerätespezifische Optionen sehen. Die einmalige Startoption kann dann verwendet werden, um den UEFI-Starteintrag für Windows einmal zu starten und anschließend den Startvorgang zurück zu GRUB. Nachdem Sie dies eingestellt haben, starten Sie wie gewohnt neu.

1
muru