Wie kann ich grub2 dazu bringen, eine andere Option erst beim nächsten Start zu starten?

19

Ich richte einen kopflosen Linux / Windows-Dual-Boot-Rechner ein. Ich möchte meistens, dass die Maschine immer mit Ubuntu hochfährt, außer gelegentlich, wenn ich etwas in Windows testen muss.

Ich habe Windows und Ubuntu installiert und derzeit wird jedes Mal auf Ubuntu gebootet. Ich möchte in der Lage sein, es anzuweisen, erst beim nächsten Start unter Windows zu booten. Wenn ich dann unter Windows neu starte, kehrt das System zum Booten von Ubuntu zurück.

Ich habe Grub Legacy gefunden - Abschnitt 4.3.1 - Einmaliges Booten, aber ich verwende einen Ubuntu 14.04-Server mit der neueren Version von Grub. Nach dem, was ich gelesen habe, muss ich einige Änderungen vornehmen /etc/default/grubund verwenden, sudo grub-set-defaultwenn ich zu Windows booten möchte.

Ich denke, diese Änderungen beginnen mit dem Hinzufügen von /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=false

Jedes Mal /etc/default/grub, wenn Änderungen vorgenommen werden, weiß ich, dass ich dann ausführen muss
sudo update-grubund was dazu führt, dass:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.13.0-43-generic
Found initrd image: /boot/initrd.img-3.13.0-43-generic
Found linux image: /boot/vmlinuz-3.13.0-32-generic
Found initrd image: /boot/initrd.img-3.13.0-32-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

Da Windows die 7. Option in dieser Liste ist, glaube ich, würde ich es ausführen sudo grub-set-default 6(0-basierte Zählung) - ist dies korrekt und gibt es eine andere Methode, um eine nummerierte Liste der Startoptionen zu erhalten, nachdem das System bereits gestartet wurde?

Reichen die Zeilen auch /etc/default/grubaus, um dieses Verhalten zu erreichen, oder muss ich zusätzliche Konfiguration hinzufügen?

cwd
quelle

Antworten:

19

Sie müssen sicherstellen, dass Sie GRUB_DEFAULT=savedin Ihrer Grub-Konfiguration (die automatisch generiert wird, Sie ändern diesen Teil davon durch Bearbeiten von / etc / default / grub) haben. sudo update-grubum die Änderungen zu aktivieren und dann zu verwenden sudo grub-reboot $1.

grep -i "menuentry '" /boot/grub/grub.cfg

Gibt Ihnen die Menüeinträge, die Sie für $ 1 ausschneiden und einfügen können. Oder, wie Sie bemerken, sind die Optionen mit einem Index von Null versehen, sodass der n-te Menüeintrag durch Übergabe von (n-1) an grub-reboot erstellt werden kann.

Siehe z

Nicht von mir getestet, da ich kein 'Windows 7' installiere.

pbhj
quelle
danke ich denke das ist was ich brauche (mit zusätzlichen Details, die ich unter help.ubuntu.com/community/Grub2 gefunden habe )
cwd
Wenn Sie dies versucht haben, ohne die Zeile in zu ändern GRUB_DEFAULT=saved, müssen Sie dies später manuell tun, wie hier im zweiten Absatz für Grub2 und danngrub-set-default 0; grub-reboot 0
rubo77
1
ein befehl zum grep -i "menuentry '" /boot/grub/grub.cfg|sed -r "s|--class .*$||g"|nl -v 0
anzeigen
1
Wie pro askubuntu.com/questions/838704/grub-reboot-to-specific-kernel , menuentrys unter einem submenuin /boot/grub/grub.cfgmuss übergeben werden , grub-rebootwie SUBMENU>MENUENTRY. Zum Beispiel wollte ich mit Bash-Fu, ähnlich wie bei @ rubo77, menuentry7 booten , aber dieser Eintrag befand sich unter einem, submenuder der zweite Eintrag im Menü der obersten Ebene war, und musste '1>6'stattdessen übergeben werden (einfache Anführungszeichen, um dies zu vermeiden) die Shell interpretiert>).
Trent Nelson
1
WARNUNG: Dies funktioniert nicht, wenn Sie von einer BTRFS-Partition booten. Grub muss in der Lage sein, in grubenv zu schreiben, da es Windows bootet. Es kann nicht in BTRFS schreiben. Die Datei wird normalerweise in / boot / grub gespeichert und kann mit grub-editenv angezeigt werden. Ich habe mein System repariert, indem ich BTRFS in /, eine EXT4-Partition in / boot und dann die EFI-Partition in / boot / efi gemountet habe.
Nathan
-2

Versuchen Sie, grub-customizer (Installationsanleitung unten) auf Ihrem Ubuntu-System zu installieren. Dieses GUI-Tool bietet Ihnen eine Reihe von Optionen, mit denen Sie Ihre GRUB-Einstellungen konfigurieren können, einschließlich Namen und Reihenfolge der Startoptionen, Standardsystem, Bildschirmauflösung, Schriftarten, Hintergrund usw.
Ich bin mir nicht sicher, ob es die hat Fähigkeit, direkt einzustellen, was Sie wollen, aber es kann Ihnen zumindest die OS-Nummern anzeigen. Ich denke, sie können auch mit ihrem Namen bezeichnet werden.

So installieren Sie grub-customizer:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

(Quelle: Launchpad - Daniel Richter )

Byte Commander
quelle
Ich habe dieses Tool gesehen, benutze aber einen Ubuntu 14.04-Server (keine GUI), daher hätte ich gerne eine Befehlszeilenlösung.
KWD
Oh, das wusste ich nicht. Ich verwende 14.10 Standard (Unity) und persönlich bevorzuge ich GUIs für solche Jobs. Kennen Sie diese Seite? Es beschreibt, was Sie in Ihrer Frage geschrieben haben, aber wenn es von Ihrer ersten Quelle abweicht, finden Sie dort vielleicht genau das, was Sie brauchen.
Byte Commander
-1 - Ich habe Ihre Antwort abgelehnt, weil ich mich frage, ob Sie die Frage überhaupt gelesen haben. Ich kann verstehen, dass Sie vielleicht den "Ubuntu-Server" dort verpasst haben, aber Sie haben gerade den gleichen Link gepostet, den ich in meiner Frage in Ihrem letzten Kommentar angegeben habe ...
cwd
Hoppla. Aber meinst du, jedes Mal, wenn ich einen neuen Kommentar oder eine neue Antwort schreibe, lese ich die ganze Frage und die früheren Postings erneut und überprüfe jeden Link !? Außerdem können Sie DEs auch auf Serververteilern installieren! Ich gebe zu, dass ich (noch) kein Experte bin, aber ich versuche zumindest, anderen zu helfen, wo ich kann, auch wenn die Antworten nicht immer zu 100% richtig oder nützlich sind. Sie sollten froh sein, dass jemand versucht, Ihnen bei der Lösung dieses Problems zu helfen, aber wenn Sie mich verärgern möchten, haben Sie es geschafft. Eine letzte Sache: Sie haben darüber gesprochen GRUB_SAVEDEFAULT=false, aber ich kann dies auf unserem Link nicht finden. Und Sie haben andere dort erwähnte Zeilen vergessen!
Byte Commander