Ich habe dieses Setup aufgrund eines Kernel-Upgrade-Fehlers durchgeführt:
GRUB_DEFAULT = 4
In/etc/default/grub
Als ich ausgeführt habe
sudo setup-grub
Es hat jedoch nicht geklappt. Meine gewünschte Version ist 4.2.0-16-generic, da 4.2.0-18 und 4.2.0-17 (die eigentlich nicht aufgeführt ist) nicht funktionieren. In der Liste ist 4.2.0-16 die 4.
Als es nicht funktionierte, habe ich Folgendes versucht:
GRUB_DEFAULT = "Advanced options for Ubuntu>Ubuntu, with Linux 4.2.0-16-generic"
Und
sudo setup-grub
es funktionierte jedoch immer noch nicht und öffnete eine nicht funktionierende Version des Kernels. Derzeit kann ich nur manuell über die erweiterten Optionen für Ubuntu auf 4.2.0-16 zugreifen, aber ich möchte, dass es automatisch geladen wird. Welche Lösung würden Sie mir empfehlen?
Die dpkg --list | grep linux-image
Ausgaben:
ii linux-image-extra-4.2.0-16-generic 4.2.0-16.19 amd64 Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii linux-image-extra-4.2.0-17-generic 4.2.0-17.21 amd64 Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii linux-image-extra-4.2.0-18-generic 4.2.0-18.22 amd64 Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii linux-image-generic 4.2.0.18.20 amd64 Generic Linux kernel image
als letzte 4 Ausgaben (nur welche für Ubuntu 15.10, das Kernel 4.2.0 enthält).
Antwort1
Sie müssen die IDs der entsprechenden submenu
und menuentry
Zeilen verwenden.
Notiz "Erweiterte Optionen für Ubuntu" ist ein submenu
, Sie müssen seine ID verwenden.
Laufengrep -E "^\\s*(menuentry|submenu) " /boot/grub/grub.cfg
Wenn die Ausgabe beispielsweise folgendermaßen lautet:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-140-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-140-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-init-upstart-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-140-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-140-generic-recovery-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-101-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-101-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-init-upstart-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Ubuntu, with Linux 4.4.0-101-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-101-generic-recovery-7da0d9d5-45bc-40e4-b17e-18cff7a59b76' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {
Die richtige Einstellung wäre:
GRUB_DEFAULT="gnulinux-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76>gnulinux-4.4.0-101-generic-advanced-7da0d9d5-45bc-40e4-b17e-18cff7a59b76"
Beachten Sie, dass Sie auch eine 0-basierte Nummerierung verwenden können. Berücksichtigen Sie dabei jedoch die Untermenüeinträge:
GRUB_DEFAULT="1>3"
Vergiss nicht, update-grub
am Ende zu laufen.
Antwort2
Erstellen Sie eine Sicherungskopie Ihrer aktuellen Grub-Version.
sudo cp /etc/default/grub /etc/default/grub.bak
Öffnen Sie jetzt die Datei.
sudo gedit /etc/default/grub
Öffnen Sie ein weiteres Terminal und geben Sie ein:
cat /boot/grub/grub.cfg | grep 4.2.0-16
Sie werden eine Zeile wie diese sehen:
Menüeintrag „Ubuntu, mit Linux 4.2.0-16-generic“ – Klasse Ubuntu – Klasse Gnu-Linux – Klasse Gnu – Klasse OS $Menüeintrag_ID_Option „gnulinux-4.2.0-18-generic-advanced-esx5367c-b4ug-19sd-v6j8-ty2hj01ui3kj“ {..........
Kopieren Sie diese Zeile und fügen Sie sie ein:
BEARBEITET VON:
GRUB_DEFAULT = "gnulinux-4.2.0-16-generic-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98"
BEARBEITET AUF:
GRUB_DEFAULT ="gnulinux-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98>gnulinux-4.2.0-16-generic-advanced-2e2221b2-b6c7-4553-815f-67afdc924a98"
Speicher die Datei.
Geben Sie nun den folgenden Befehl ein:
sudo update-grub
Antwort3
OK! Ich habe die Lösung gefunden. Ich musste ein PPA mit Grub-Customizer verknüpfen.
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
Dann habe ich:
sudo apt-get update
Der nächste Schritt ist
sudo apt-get install grub-customizer
Danach öffne ich den Grub-Customizer über Unity Dash, wähle dort den gewünschten Kernel aus und tada!:)
Antwort4
Kleine Bash-Funktion zum Auflisten aller Ubuntu-Kernel, die zum Einfügen in geeignet
GRUB_DEFAULT
sind/etc/default/grub
MENUID=$( grep -E "^\\s*(submenu) " /boot/grub/grub.cfg | grep -oP "gnuli.*(?=')" )
grep '(?<=menuentry_id_option ).gnuli\S+' /boot/grub/grub.cfg -Po | \
sed "s@'@@g" |grep -vE 'recovery|simple|gnulinux-advanced' | sed "s@^@GRUB_DEFAULT=\"${MENUID}>@; s@\$@\"@"
Ausgabe:
GRUB_DEFAULT="gnulinux-advanced-20dfee37-ad84-49b2-8c69-a54699da855d>gnulinux-6.6.10-usb2-advanced-20dfee37-ad84-49b2-8c69-a54699da855d"
GRUB_DEFAULT="gnulinux-advanced-20dfee37-ad84-49b2-8c69-a54699da855d>gnulinux-5.15.0-35-generic-advanced-20dfee37-ad84-49b2-8c69-a54699da855d"
Wählen Sie dann einfach eines aus, fügen Sie es ein /etc/default/grub
und führen Sie es aus update-grub
und starten Sie neu.