it-swarm.com.de

Grub: Neustart auf einen bestimmten Kernel

Ich möchte um Hilfe bitten, damit grub-reboot funktioniert.

Die Theorie: Laut diesem Blog-Beitrag (und anderen Quellen) sollte ich in der Lage sein, den Kernel für den nächsten Neustart mit grub-reboot auszuwählen. Dies funktioniert jedoch bei mir nicht. grub bootet immer mit dem Standardkernel.

Folgendes habe ich versucht:

$ grep GRUB_DEFAULT /etc/default/grub
GRUB_DEFAULT=saved
$ grep "menuentry " /boot/grub/grub.cfg 
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-f3a807d1-3fd6-4970-b741-5382e9801060' {
    menuentry 'Ubuntu, with Linux 4.4.0-43-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-43-generic-advanced-f3a807d1-3fd6-4970-b741-5382e9801060' {
    menuentry 'Ubuntu, with Linux 4.4.0-43-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-43-generic-recovery-f3a807d1-3fd6-4970-b741-5382e9801060' {
    menuentry 'Ubuntu, with Linux 4.4.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-36-generic-advanced-f3a807d1-3fd6-4970-b741-5382e9801060' {
    menuentry 'Ubuntu, with Linux 4.4.0-36-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-36-generic-recovery-f3a807d1-3fd6-4970-b741-5382e9801060' {

# Version 1, using the name
$ Sudo grub-reboot "Ubuntu, with Linux 4.4.0-36-generic"

# Version 2, using the id
$ Sudo grub-reboot gnulinux-4.4.0-36-generic-advanced-f3a807d1-3fd6-4970-b741-5382e9801060

# Version 3, counting
$ Sudo grub-reboot 3

Keiner dieser Befehle scheint eine Wirkung zu haben; Nach dem Neustart habe ich immer den Kernel 4.4.0-43.

Hinweis: Dies ist auf Ubuntu 16.04 Xenial. Es ist ein Server-Rechner und ich habe während des Bootens keinen Zugriff auf die Konsole, daher kann ich das Grub-Menü nicht anzeigen :(

2
Sjlver

Der Kernel, den Sie booten möchten, befindet sich anscheinend in einem Untermenü von grub (sehen Sie sich einfach den vollständigen _grub.cfg_ an). man grub-reboot sagt:

Bitte beachten Sie, dass für Menüelemente in Untermenüs oder Unteruntermenüs die Untermenükomponenten und anschließend die Menüelementkomponente angegeben werden müssen. Die Titel sollten mit dem Größer-als-Zeichen (_>_) ohne zusätzliche Leerzeichen getrennt werden. Abhängig von Ihrer Shell müssen einige Zeichen, einschließlich _>_, möglicherweise maskiert werden. Weitere Informationen hierzu finden Sie im Handbuch GRUB im Abschnitt zum Befehl 'default'.

Vielleicht funktioniert etwas wie _grub-reboot '2>2'_ für Sie.

2
ridgy

Anzeigen von Grub-Menüeinträgen über die Befehlszeile

Ich habe ein Skript grub-menu.sh erstellt, um das Auffinden der Menüeintragsnummer zu vereinfachen:

grub menu.png


Booten mit Grub-Menüeintragsnummer

Wenn Sie den Kernel 4.4.0-131 neu starten möchten, verwenden Sie:

Sudo grub-reboot "1>6"

Das Bash-Skript abrufen grub-menu.sh

Sie finden das Bash-Skript in diesem Q & A: Grub-Menü und -Optionen ohne Neustart anzeigen?

1

Ich war in einer ähnlichen Situation und wollte auf einfache Weise einen anderen Kernel neu starten oder die Standardeinstellung festlegen. Die Menüs, die in Ubuntu generiert werden, machen dies weniger als trivial.

Ich habe ein Skript namens Boot-Kernel zusammengestellt, das dies einfacher macht. Es ist nicht perfekt, funktioniert aber gut für zumindest offizielle Ubuntu-Kernel.

$ Sudo ./boot-kernel --setup-only
changing GRUB_DEFAULT from 0 to "saved" in /etc/default/grub
apply change to /etc/default/grub
   --- /etc/default/grub    2018-01-12 19:40:38.681080878 +0000
   +++ /tmp/boot-kernel.GXbsRC  2018-01-12 19:40:50.525044373 +0000
   @@ -3,7 +3,7 @@
    # For full documentation of the options in this file, see:
    #   info -f grub -n 'Simple configuration'

   -GRUB_DEFAULT=0
   +GRUB_DEFAULT=saved
    GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=0
execute: update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-109-generic
Found initrd image: /boot/initrd.img-4.4.0-109-generic
Found linux image: /boot/vmlinuz-4.4.0-108-generic
Found initrd image: /boot/initrd.img-4.4.0-108-generic
done

$ Sudo ./boot-kernel /boot/vmlinuz-4.4.0-108-generic
GRUB_DEFAULT already set to 'saved'. no change necessary.
selected /boot/vmlinuz-4.4.0-108-generic. entry: Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-108-generic
execute: grub-reboot "Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-108-generic"
1
Scott Moser