Wie kann ich auswählen, welcher Kernel GRUB2 standardmäßig geladen werden soll? Ich habe kürzlich einen Linux-Echtzeit-Kernel installiert und jetzt wird er standardmäßig geladen. Ich möchte standardmäßig die reguläre Version laden.
Bisher konnte ich nur das Standard-Betriebssystem auswählen. Aus irgendeinem Grund wird /boot/grub.cfg
bereits davon ausgegangen, dass ich den RT-Kernel laden und in den allgemeinen Linux-Menüeintrag einfügen möchte (in meinem Fall Arch Linux).
grub.cfg
entsprechen nur den Betriebssystemen und nicht den Kerneln.Antworten:
Ich denke, die meisten Distributionen haben zu diesem Zeitpunkt zusätzliche Kernel in das Untermenü für erweiterte Optionen verschoben, wie TomTom bei seinem Arch herausgefunden hat.
Ich wollte meine Menüstruktur auf oberster Ebene nicht ändern, um einen vorherigen Kernel als Standard auszuwählen. Ich habe die Antwort hier gefunden:
http://www.humans-enabled.com/2014/08/how-to-set-default-grub-kernel-boot.html
Zusammenfassen:
1) Finden Sie die
$menuentry_id
_Option für das Untermenü:2) Suchen Sie
$menuentry_id_option
nach dem Menüeintrag für den Kernel, den Sie verwenden möchten:3) Kommentieren Sie Ihr aktuelles Standard-Grub-In aus
/etc/default/grub
und ersetzen Sie es durch das Untermenü$menuentry_id_option
aus Schritt eins und das ausgewählte Kernel$menuentry_id_option
aus Schritt zwei, getrennt durch>
.In meinem Fall ist der modifizierte
GRUB_DEFAULT
:4) Aktualisiere grub, um die Änderungen vorzunehmen. Für Debian ist das so:
Getan. Wenn Sie jetzt booten, sollte das erweiterte Menü einen Stern haben und Sie sollten den ausgewählten Kernel booten. Sie können dies mit uname bestätigen.
Das Ändern auf den neuesten Kernel ist so einfach wie das
#GRUB_DEFAULT=0
Auskommentieren der neuen Zeile und das Entfernen des Kommentars und das erneute Ausführenupdate-grub
.quelle
Nachdem ich 2 Stunden gekämpft habe, habe ich einen viel einfacheren Weg gefunden, dies zu erreichen. Ich habe gerade RTFM. ;)
Fügen Sie zwei Zeilen zu / etc / default / grub hinzu
Führen Sie den
sudo update-grub
Neustart durch, wechseln Sie in Ihr Grub-Menü und wählen Sie das gewünschte Menü oder Untermenü aus. Die Auswahl wird gespeichert und beim nächsten Start Ihres Computers automatisch gestartet.quelle
Wie in den Kommentaren erwähnt, können Sie den Standard-Kernel zum Booten mit dem
grub-set-default X
Befehl festlegen , wobei X die Nummer des Kernels ist, in den Sie booten möchten. In einigen Distributionen können Sie diese Nummer auch festlegen, indem Sie die/etc/default/grub
Datei und die Einstellung bearbeitenGRUB_DEFAULT=X
und dann ausführenupdate-grub
.Die Zahl ist der Index für ein Array von Kernel- / Kernel-Einstellungen, die während des Startvorgangs im GRUB-Menü angezeigt werden, wobei 0 der erste (oberste) Eintrag ist. Normalerweise finden Sie die richtige Nummer, indem Sie nach
menuentry
Zeilen in der folgenden Reihenfolge suchen/boot/grub/grub.cfg
:Sie sehen jeden Kernel mit dem Namen, der im GRUB-Startmenü angezeigt wird. Der erste ist 0, der zweite ist 1 und so weiter.
quelle
/boot/grub2/grub.cfg
.grub-set-default 9
und danngrub-update
und startete neu. Ich habe grub mit dem Standard-Kernel booten lassen und es bootet immer noch mit 4.4.0-64-generic . Ich habe auch versucht zu bearbeiten/etc/default/grub
und zu setzenGRUB_DEFAULT=9
und liefgrub-update
. Beim Neustart ändert sich nichts, das System startet weiterhin mit 4.4.0-64-generic . Vielleicht habe ich etwas verpasst, kann mir jemand helfen?Durch einfaches Ausführen werden
grep 'menuentry' /boot/grub/grub.cfg
zusätzliche Einträge aufgelistet, die sich nicht auf die aktuellen Kernel- oder Betriebssystemversionen beziehen. Es listet zum Beispiel aufIch möchte eine kleine Verbesserung der Suchmethode für diese Datei vorschlagen: use
awk
Mit dem folgenden Befehl und seiner Ausgabe können Sie sehen, ob der
awk
Code mit der aktuellen Betriebssystemversion übereinstimmt, und die Nummer angeben, die Sie dann in der/etc/default/grub
Datei verwenden können.Zusätzlich zum Bearbeiten der
/etc/default/grub
Datei von Hand empfehle ich die Verwendung vonsed
. Ersetzen Sie im folgenden Befehl X durch die entsprechende Nummer, die Sie mit dem obigen Befehl awk erhalten haben:sudo sed -i 's/GRUB_DEFAULT=0/GRUB_DEFAULT=X/g' /etc/default/grub; sudo update-grub
quelle
jkt123 wird für die meisten Distributionen funktionieren, denke ich. Für Arch Linux hat es jedoch nicht funktioniert, zumindest nicht mit den Paketen, die ich zur Verfügung habe.
Die Indizes, die Sie einstellen können,
grub-set-default
entsprechen nur den Hauptmenüeinträgen. Die Kerneloptionen befinden sich jedoch in einem Untermenü. Entweder verschieben Sie den Kernel-Eintrag aus dem Untermenü in das Hauptmenü oder Sie setzen den Eintrag oben auf die Untermenü-Liste und wählen das Untermenü aus.Mein Grub-Menü
Um Kernel 2 booten zu können, müssen Sie es entweder mit Kernel 1 austauschen oder es außerhalb des Untermenüs auf die gleiche Ebene wie Arch Linux oder Windows stellen. Stellen Sie dann die Standardnummer auf einen der Hauptmenüindizes ein. Zum Beispiel im Menü über "0" bootet "Arch Linux" und "1" bootet Kernel 1.
Um die Hierarchie zu ändern und zu tauschen, öffnen
/boot/grub/grub.cfg
und verschieben Sie den Eintrag, den Sie verschieben möchten. Ein Eintrag könnte so aussehenDann müssen Sie Ihre Änderungen übernehmen. In meinem Fall mit
grub-mkconfig
. Dies kann jedoch von System zu System unterschiedlich sein.quelle
Noch in CentOS-6.6 sah die grub.conf so aus, dass sie manuell bearbeitet werden kann, um die Standardauswahl zu ändern:
quelle
Debian-Stretch:
Anstatt mit Konfigurationsdateien herumzuspielen, erstellen Sie einen Ordner in
/noot
(nennen Sie ihn wie gewünscht), lassen Sie den gewünschten Kernel zusammen mit den entsprechenden Konfigurations- und Systemdateien in/boot
und verschieben Sie den Rest in diesen neuen Ordner.Rennen
update-grub
.Überprüfen Sie den
/boot
Ordner, in dem sich noch Ihre Kernel-Version und die zugehörigen Konfigurations- und Systemdateien befinden (falls Sie etwas kopiert haben, das Sie nicht haben sollten), und starten Sie ihn neu.quelle