Wie ändere ich die GRUB-Startreihenfolge?

336

Ich habe Windows 7 und Ubuntu auf einem gemeinsam genutzten Computer installiert. Da viele Nicht-Entwickler Windows verwenden, möchte ich die Startreihenfolge ändern, um es ihnen zu erleichtern.

Derzeit sieht die Startreihenfolge folgendermaßen aus:

  • Ubuntu 11.10 Kernelgeneric * 86
  • Ubuntu 11.10 Kernelgeneric * 86 (sicherer Start)
  • Gedächtnistest
  • Gedächtnistest
  • Windows 7 auf /dev/sda6

Wie ändere ich die Standardreihenfolge, sodass Windows 7 ganz oben auf der Liste steht?

  • Windows 7 auf /dev/sda6
  • Ubuntu 11.10 Kernelgeneric * 86
  • Ubuntu 11.10 Kernelgeneric * 86 (sicherer Start)
  • Gedächtnistest
  • Gedächtnistest
chrisjlee
quelle
5
Ähnliche Fragen und Antworten
fossfreedom
Haben Sie nach dem Ändern der Grub-Datei ein 'sudo update-grub' durchgeführt?
Tinellus
Ja, ich glaube, ich habe das vielleicht vergessen, danke! Ich werde versuchen, mit den Ergebnissen zu aktualisieren.
jeffery_the_wind
kubuntu 14.04 sudo apt-get install kde-config-grub2dann in der systemkonfiguration
gehe zu

Antworten:

295

Sie können eine einfach zu bedienende GUI-Anwendung namens Grub Customizer verwenden , um Ihr Leben ein bisschen einfacher zu gestalten. Wie der Name schon sagt, können Sie damit viel mehr als nur GRUB-Menüeinträge neu anordnen.

Sie können es installieren, indem Sie:

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

(Siehe Ubuntu-Frage stellen. Ist es sicher, PPA zu meinem System hinzuzufügen, und worauf sollten Sie achten ? )

Es gibt ein How-To Geek Artikel darüber, Wie die GRUB 2 Boot - Menü der einfache Weg Linux konfigurieren . Schau es dir an, wenn du interessiert bist. Es gibt auch einen gelösten Thread in den Ubuntu-Foren, Ändern der Startreihenfolge in GRUB 2 , in dem dieses Tool erwähnt wird.

Hier sind einige Screenshots:

screen_1

screen_2

screen_3


Einige Fehlerbehebung:

Die Einstellungen von Grub Customizer funktionieren möglicherweise nur in der neuesten Linux / Ubuntu-Installation, in der Grub installiert wurde.

Wenn zum Beispiel jemand zwei Betriebssysteme installiert hat (Windows und Ubuntu) und dann ein drittes Betriebssystem installiert (Manjaro usw.) und dann versucht, der obigen Antwort zu folgen, funktionieren die Grub Customizer-Änderungen nicht, wenn sie auf dem zweiten Betriebssystem vorgenommen werden ( Ubuntu, im Beispiel). Das Programm muss unter dem Betriebssystem thirs installiert sein, da Grub Customizer anscheinend nur die Grub-Dateien bearbeiten kann, die bei der Installation des Systems erstellt wurden, auf dem es installiert ist.

Die Dateien, die das Grub-Startmenü bestimmen, werden in den meisten Fällen mit dem neuesten auf einem Computer installierten System geliefert. Daher muss Grub Customizer von diesem Linux-System installiert und verwendet werden.

Nitin Venkatesh
quelle
4
Herzlich Willkommen :) Die Screenshots stammen aus dem Blogpost, der oben verlinkt ist: P
Nitin Venkatesh
2
Dies funktioniert nicht mit dem neuesten Ubuntu. Können wir hier einen aktualisierten Beitrag bekommen?
AT
7
Ich denke deine Antwort ist gut und hilfreich, also versteh mich bitte nicht falsch. Während GUI-Tools einfach und übersichtlich sind, verbergen sie die Fakten. In der folgenden Antwort von Marve werden die verwendeten Dateien und ihre manuelle Aktualisierung erläutert. Außerdem erhalten Sie einen Einblick in die Funktionsweise von Grub. Wenn die GUI ausfällt, werfen Sie zumindest einen Blick auf die Hintergründe - sie sind schließlich nicht so schwierig, und die manuelle Manipulation wird auf lange Sicht wahrscheinlich einfacher sein.
Barrypicker
1
Ich hatte auch Probleme mit diesem Tool. Es sieht so aus, als würde die Datei / etc / default / grub korrekt aktualisiert, aber dann heißt es core dump und abgebrochen.
Mauricio Gracia Gutierrez
1
Dies erfordert ein Update in Bezug auf die beiden Ebenen des aktuellen Grub-Menüs.
Hannu
245

Sie können den Standardstarteintrag für grub auch über die Befehlszeile ändern, ohne ein zusätzliches Tool installieren zu müssen. Die Reihenfolge in der Liste wird dadurch nicht geändert, es wird jedoch standardmäßig ermöglicht, dass ein anderes Betriebssystem gestartet wird, was sich nach Ihren Wünschen anhört.

Erstellen Sie zunächst eine Sicherungskopie von /etc/default/grub. Falls etwas schief geht, können Sie einfach auf die als funktionierend bekannte Kopie zurückgreifen:

sudo cp /etc/default/grub /etc/default/grub.bak

Bearbeiten Sie dann die Datei mit vimoder dem Texteditor Ihrer Wahl:

sudo vim /etc/default/grub

Suchen Sie die Zeile, die enthält

GRUB_DEFAULT=0

und setze es auf

GRUB_DEFAULT=x

Wo xist der Index des Grub-Menüelements, zu dem Sie standardmäßig booten möchten? Beachten Sie, dass die Menüelemente mit einem Index von Null versehen sind. Dies bedeutet, dass der erste Eintrag in der Liste 0und der sechste Eintrag tatsächlich vorhanden ist 5. Um zum sechsten Eintrag in der Liste zu gelangen, würde die Zeile lauten:

GRUB_DEFAULT=5

Wenn Sie die Reihenfolge der Artikel vergessen haben, werfen Sie einen Blick auf /boot/grub/grub.cfg. Jeder Menüeintrag wird durch eine Zeile vom Typ angegeben:

menuentry 'Ubuntu' [options] {

Sie können die Standardeinstellung auch anhand des Namens anstelle des Index auswählen, z. B .:

GRUB_DEFAULT='Ubuntu'

wenn es eine menuentry 'Ubuntu'Leitung gab /boot/grub/grub.cfg. Dies ist möglicherweise eine bessere Methode, da dies nicht von der Reihenfolge der Einträge abhängt, die sich ändern können.

So verwenden Sie einen Kernel im Untermenü "Frühere Linux-Versionen":

GRUB_DEFAULT="Previous Linux Versions>x"

(Stellen Sie sicher, dass Sie die Anführungszeichen einschließen), wobei xder Index des alten Kernels im Untermenü oder der Name des Kernels, wie er in angezeigt wird, angegeben ist /boot/grub/grub.cfg. Zum Beispiel,

GRUB_DEFAULT="Previous Linux Versions>4.13.0-43-generic"

Dann baue das aktualisierte Grub-Menü:

sudo update-grub
dcharles
quelle
5
Zuletzt habe ich mir angesehen, dass grub2 so viele Einträge im laufenden Betrieb generiert, dass es wirklich schwierig ist, herauszufinden, welche Nummer für einen Eintrag verwendet werden soll.
Joe
52
Die Verwendung eines Index kann ziemlich chaotisch sein - die Liste der Betriebssysteme kann sich nach einem Update ändern. Sie können jedoch in /boot/grub/grub.cfg nach dem Namen des gewünschten Standardbetriebssystems suchen . Verwenden Sie dann den angegebenen Namen anstelle eines Index. Beispiel: GRUB_DEFAULT="Microsoft Windows XP Professional (on /dev/sda1)"stattGRUB_DEFAULT=7
geekQ
1
Dies erfordert ein Update in Bezug auf die beiden Ebenen des aktuellen Grub-Menüs.
Hannu
5
Wenn Sie mit der aktuellen Version von Ubuntu 16.04 einen bestimmten Kernel zum Booten auswählen möchten, müssen Sie das Advanced options for UbuntuUntermenü folgendermaßen erweitern:GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-34-generic'
Geoff Williams,
1
@BandaMuhammadAlHelal Damit wird versucht, das 7. Element auf Ihrer Liste zu starten - ist es das, was Sie wollen? Wenn Sie das 6. Element in Ihrer Liste haben möchten, verwenden Sie GRUB_DEFAULT=5.
Nick
39

Von der Tombuntu-Seite (Artikel von Tom ):

GRUB kann mithilfe der /etc/default/grubDatei konfiguriert werden . Bevor Sie Änderungen daran vornehmen, empfiehlt es sich möglicherweise, eine Sicherungskopie zu erstellen:

sudo cp /etc/default/grub /etc/default/grub.bak

Sie können das Kopieren der Sicherung über das Original wiederherstellen:

sudo cp /etc/default/grub.bak /etc/default/grub

Öffnen Sie die Datei mit dem Texteditor mit Root-Rechten:

gksu gedit /etc/default/grub

Die Zeile GRUB_DEFAULT=0bedeutet, dass GRUB den ersten zu startenden Menüpunkt auswählt. Ändern Sie dies zu GRUB_DEFAULT=saved. Diese Änderung erleichtert das spätere Ändern des Standardelements.

Speichern und schließen Sie die Datei. Führen Sie diesen Befehl aus, um Ihre Änderungen an der GRUB-Konfiguration zu übernehmen:

sudo update-grub

Durch die vorgenommene Konfigurationsänderung können die Befehle grub-set-default und grub-reboot jederzeit verwendet werden. Hiermit können Sie das Standard-Startelement dauerhaft oder nur für den nächsten Start ändern.

Führen Sie grub-set-defaultoder grub-reboot(mit sudo) mit der Nummer des zu startenden Menüelements aus (das erste Element ist 0). Dieser Befehl ändert die Standardeinstellung in das zweite Element:

sudo grub-set-default 1
silenTK
quelle
15
Diese Antwort stammt fast wörtlich aus tombuntu.com/index.php/2011/09/25/… . Bitte geben Sie Kredit an, wo Kredit fällig ist.
James McMahon
Diese Antwort scheint die Reihenfolge der Startelemente nicht zu ändern.
Sparhawk
Ich benutze Linux Mint Debian Edition. Ich hatte keine / etc / default / grub, fand aber, dass der zu ändernde GRUB_DEFAULT-Wert stattdessen in /etc/grub.d/00_header war. Nachdem ich GRUB_DEFAULT in 00_header mit meinem gewünschten Starteintragsnamen geändert hatte, führte ich einfach "sudo update-grub" und voila, success aus.
Fuzzy - Analyse
Ich habe die gleichen Befehle in tipsonubuntu.com/2016/07/20/grub2-boot-order-ubuntu-16-04 gesehen. Ich habe festgestellt, dass diese Befehle nur funktionieren, wenn sie vom System zuerst in der Startreihenfolge 0 ausgegeben wurden.
Sun Bear
-2

Ich habe Folgendes versucht und gute Ergebnisse erzielt.

Öffne ein Terminalfenster ( Ctrl+ Alt+ T),

Geben Sie sudo gksu nautilusund drücken Sie die Eingabetaste. Geben Sie Ihr Benutzerpasswort ein.

Navigieren Sie zu der Datei /boot/grub/grub.cfg. Kopieren Sie die Datei und fügen Sie sie in dasselbe Verzeichnis ein. Sie sollten zu Sicherungszwecken eine Kopie der Datei grub.cfg erstellen. Doppelklicken Sie dann auf grub.cfg, um die Datei in einem Texteditor zu öffnen.

In der Datei finden Sie die Zeile ( set default="0"). Ändern Sie die 0 in die Zeilennummer in Grub, die Sie laden möchten. Meins war die sechste Zeile, also habe ich 5 verwendet, da die erste Zeile als 0 gilt. Speichern Sie die Datei. Starten Sie den PC neu und wenn Sie die richtige Zeile gewählt haben, wird diese beim Laden von Grub hervorgehoben.

Viel Glück

Outkast
quelle
10
Wie Sie am Anfang der Datei sehen können, heißt es, dass Sie dies nicht tun sollten. stattdessen editieren /etc/default/grubund dann ausführen update-grub.
Sazary
7
und ich würde gksu nautilus auch nicht empfehlen. Es ist zu einfach, von dort aus eine Bombe in Ihr System zu werfen.
Sylvainulg
Check diesen Beitrag: psychocats.net/ubuntu/bootmenu
tqjustc
Aus irgendeinem Grund wird diese Antwort in Google als "automatische Antwort" angezeigt, wenn nach "grub change boot order" gesucht wird.
Lepe
@lepe, keine Sorge, für mich ist die Standardeinstellung linuxandubuntu.com/home/…
vladkras
-5

Öffnen Sie ein Terminalfenster ( Ctrl+ Alt+ T) oder drücken Sie Alt+ F2.

Tippen gksu nautilusund drücken Enter.

Dadurch wird der Dateibrowser Nautilus mit der Berechtigung zum Ändern von Dateien geöffnet, deren Eigentümer root ist.

Navigieren Sie zu der Datei /boot/grub/grub.cfgund doppelklicken Sie, um die Datei in einem Texteditor zu öffnen.

Schneiden Sie die Abschnitte in der Datei aus, verschieben Sie sie und fügen Sie sie ein, die zu verschiedenen Betriebssystemen gehören. Sie müssen dabei sehr vorsichtig sein , denn wenn Sie es falsch machen, können Sie nicht mehr booten. Windows-Start kann immer mit den Tools von einer Windows-Installations-CD ( FIXMBR) repariert werden , die GRUB-MBR mit einem typischen Windows-MBR überschreibt.

Ich habe es von Ubuntu 9.04 bis 12.04 getestet und es hat jedes Mal gut funktioniert.

Ich habe jedoch nur versucht, den Windows-Startabschnitt an den Anfang der Liste zu verschieben, damit er zum Standard wird.

Wenn ich mich recht erinnere, beginnt jeder Boot - Menü Abschnitt in der Datei mit einem begin... und endet mit einem ... end. Und erstreckt sich über mehrere Textzeilen.

Der Text in dieser Datei ist etwas komplizierter geworden und sieht in der letzten Ubuntu-Version nicht mehr so ​​aus wie in früheren Versionen. Verwenden Sie also Ihr Gehirn , um Fehler zu vermeiden.

Curt Jonsson
quelle
4
Musst du nicht sudo update-grubirgendwann rennen ?
Eliah Kagan
4
/boot/grub/grub.cfgwird bei jedem installierten / aktualisierten Paket überschrieben, wodurch ein Update von Grub ausgelöst und effektiv aufgerufen wird update-grub. Und das generiert ein neues grub.cfg. Daher erfolgt die Konfiguration von Grub in Dateien im /etcVerzeichnis, wie in den anderen Antworten erläutert, um sicherzustellen, dass es dauerhaft ist.
gertvdijk