Ich habe ein Dual-Boot-Linux / Windows-System eingerichtet und wechsle häufig von einem zum anderen. Ich überlegte, ob ich in einem der Menüs ein Menüelement hinzufügen könnte, um Windows direkt neu zu starten, ohne die GRUB-Eingabeaufforderung zu verlassen.
Ich habe diese Frage in einem Forum gesehen, das ist genau das, was ich will, aber es geht um Lilo, was nicht mein Fall ist.
Ich dachte an eine Lösung, die den Standardeintrag im GRUB-Menü ändern und dann neu starten würde, aber es gibt einige Nachteile, und ich fragte mich, ob es eine sauberere Alternative gibt.
(Ich wäre auch an einer Lösung interessiert, um von Windows direkt in Linux zu booten, aber das könnte schwieriger sein und gehört nicht hierher. Wie auch immer, solange ich es auf die eine Art habe, könnte die andere Art eingerichtet werden als der Standard.
UPDATE Es scheint, dass jemand eine ähnliche Frage gestellt hat , und wenn dies die vorgeschlagenen Antworten sind, kann ich sie genauso gut bearbeiten /boot/grub/grubenv
wie grub-reboot
und grub-set-default
und grub-editenv
tun. )
Vielen Dank im Voraus für alle Tipps.
UPDATE :
Dies ist meine GRUB-Version: (GRUB) 1.99-12ubuntu5-1linuxmint1
Ich habe versucht zu rennen grubonce
, der Befehl wurde nicht gefunden. Und die Suche in den Repositories bringt mir nichts. Ich bin auf Linux Mint, also könnte es sein ...
Sehen man grub-reboot
, es scheint so, als würde es tun, was ich will, genauso wie es grubonce
tut. Es ist auch überall verfügbar (zumindest für mich, ich denke, es ist Teil des Grub-Pakets). Ich habe zwei verwandte Befehle gesehen: grub-editenv
und grub-set-default
.
Ich habe herausgefunden, dass man nach dem Laufen etwas Ähnliches bekommt sudo grub-set-default 4
, wenn man läuft grub-editenv list
:
saved_entry=4
Und beim Laufen grub-reboot 4
bekommst du so etwas wie:
prev_saved_entry=0
saved_entry=4
Was bedeutet, dass beide dasselbe tun (einer ist vorübergehend, einer nicht).
Überraschenderweise, als ich versuchte:
sudo grub-reboot 4
sudo reboot now
Es hat nicht funktioniert, als hätte ich nichts getan, es zeigte mir nur das Menü wie gewohnt und wählte den ersten Eintrag aus, der besagt, dass dieser Eintrag in 10s gebootet wird.
Ich habe es noch einmal versucht, ich dachte, ich hätte vielleicht den falschen Eintrag geschrieben (er basiert auf Null, oder?). Dieses Mal hing es nur am Menübildschirm, und ich musste den PC hart zurücksetzen, um booten zu können.
Wenn jemand das ausprobieren kann, nur um zu sehen, ob es nur ich ist, würde ich es schätzen. (Minze hat es mir schwer gemacht, und das wäre eine gute Gelegenheit, mich zu ändern: P).
Das Einlesen des Codes /boot/grub/grub.cfg
scheint der richtige Weg zu sein, aber nach meinen Beobachtungen werden diese Einstellungen einfach ignoriert ...
Antworten:
Damit der
grub-reboot
Befehl ausgeführt werden kann, müssen mehrere erforderliche Konfigurationsänderungen vorgenommen werden:saved
. Ein möglicher Ort hierfür ist dieGRUB_DEFAULT=
Leitung in/etc/default/grub
grub-set-default
, um Ihren Standardeintrag auf den Standardeintrag festzulegen, den Sie normalerweise verwenden.update-grub
).Dies sollte sich um die Ersteinrichtung kümmern. Machen Sie in Zukunft einfach
grub-reboot <entry>
einen einmaligen Boot von<entry>
.quelle
saved
", während meine AufbewahrungGRUB_DEFAULT=0
auch ausreichte. Also ist dassaved
unnötig?GRUB_DEFAULT=0
durchGRUB_DEFAULT=saved
sudo update-grub
Ihr Befehl wird sein:
Eine hübsche Funktion in Ihrem ~ / .bashrc wird so aussehen
Falls Ihre grub.conf mehrere Zeilen für Windows enthält, kümmern sich die folgenden Funktionen nur um Zeilen, die mit
menuentry
der ersten beginnen und nur die erste auswählen , und beziehen sich auf Windows:quelle
/boot/grub/grub.cfg
enthält mehr Zeilen mit "Windows", von denen viele ungefähr so aussagen...=1 i915.semaphores=1 acpi_osi='!Windows 2012' $vt...
, also gehe ich davon aus, dass Ihr Code darauf fehlschlagen würde. Dies kann durch Greifen nach behoben werden^menuentry 'Windows
.Mit der GRUB Reboot GNOME Shell Extension ist das ganz einfach (wenn Sie also GNOME verwenden).
Um die Erweiterung zu verwenden, rufen Sie die oben verlinkte Website auf und klicken Sie auf den kleinen Schalter in der oberen rechten Ecke (wahrscheinlich ist er deaktiviert, wenn Sie zum ersten Mal zur Seite navigieren). Sie werden aufgefordert, zu bestätigen, dass Sie die Erweiterung herunterladen und installieren möchten.
Sobald es installiert ist, können Sie Ihr Systemmenü öffnen und auf den Netzschalter klicken, wie Sie es normalerweise für einen Neustart tun würden. Das sich öffnende Fenster, in dem bestätigt wird, dass Sie das System herunterfahren oder neu starten möchten, enthält jetzt eine Schaltfläche mit der Bezeichnung "Neu starten auf ...". Wenn Sie auf diese Schaltfläche klicken, werden die Elemente in Ihrem Grub-Menü in der Liste angezeigt, sodass Sie auswählen können, welches Betriebssystem nach dem Neustart automatisch gestartet werden soll. Wenn Sie eines dieser Elemente auswählen, wird Ihr System mit den ausgewählten Grub-Optionen heruntergefahren und neu gestartet.
quelle
Ich verwende openSUSE, das mit einem Skript namens kommt
grubonce
, das genau das tut, was Sie brauchen - setzen Sie grub entry, um es beim nächsten Neustart zu verwenden.Ich weiß nicht, welche (falls vorhanden) anderen Distributionen dieses Skript enthalten. Falls Ihre Distribution es nicht hat, können Sie diese Seite lesen:
http://sidvind.com/wiki/GRUB:_Boot_another_OS_once
quelle
grub-set-default
scheint verfügbarer zu sein (grubonce
wird in Ubuntu nicht aufgeführt). Dies kann auch hilfreich sein, da Windows 7 einen Neustart während des Startvorgangs durchführt, wenn beim letzten Herunterfahren Aktualisierungen angewendet wurden (dh der Start wird gestartet, einige Aktualisierungsdaten werden verarbeitet, ein Neustart wird durchgeführt und anschließend die Anmeldeseite angezeigt).Ich habe Windows 7 oft gestartet, nur um Ubuntu wieder zum Laufen zu bringen.
quelle
grub-reboot
. Ich bearbeite meine Frage mit mehr Details. Danke trotzdem.In Fedora können Sie das folgende Skript verwenden. Beachten Sie, dass dies größtenteils das gleiche ist wie unter https://askubuntu.com/a/18186/149422 beschrieben , mit einigen Änderungen für GRUB 2 in Fedora .
quelle
Ich benutze Ubuntu 16.04 und die oben genannten Lösungen haben bei mir nicht funktioniert ... aus irgendeinem Grund
sudo grub-reboot 2
schien die/boot/grub/grubenv
Datei nie zu aktualisieren , auch nach dem WechselGRUB_DEFAULT=0
zuGRUB_DEFAULT=saved
in beiden/etc/default/grub
und/boot/grub/menu.lst
. Die Verwendung dessavedefault --default=2 --once
Befehls in grub schien ebenfalls weder zu funktionieren noch die grubenv-Datei zu ändern. Es kehrte immer wieder zum ursprünglichen Menü zurück, als ob nichts getan worden wäre.Also habe ich es manuell gemacht und es hat funktioniert (ich bin mir nicht sicher, wie es mit RAID-Laufwerken funktionieren würde).
Wobei die 2 der auf Null basierende Menüeintrag für den Windows-Eintrag im Startmenü von Grub ist.
Sie können sehen, warum dies funktioniert, indem Sie sich die
/boot/grub/grub.cfg
Datei ansehen, da sie den Wert next_entry verwendet und ihn dann für den nächsten Start zurücksetzt.quelle
Stimmen Sie mit @ jw013 überein. Außerdem können Sie die Menükachel für den Neustart von Grub angeben (einschließlich des Titels des übergeordneten Menüs). z.B:
Während "Erweiterte Optionen für Ubuntu" das übergeordnete Menü ist, ist "Ubuntu mit Linux 4.13.0-26-generic" das Untermenü.
quelle
Starten Sie den Computer auf einem bestimmten Startziel neu (Grub-Eintrag).
Das Startziel wird interaktiv mit fzf ausgewählt.
quelle