Личинка: перезагрузка к определенному ядру

Я хотел бы обратиться за помощью к получению grub-reboot работать.

Теория: Согласно этому сообщению в блоге (и другие источники) я должен смочь выбрать ядро для следующей перезагрузки, с помощью grub-reboot. Однако это не работает на меня; копайтесь всегда загружается к ядру по умолчанию.

Вот то, что я попробовал:

$ 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

Ни одна из этих команд, кажется, не имеет эффекта; после перезагрузки я всегда заканчиваю с 4.4.0-43 ядрами.

Примечание: Это находится на Гостеприимной Ubuntu 16.04. Это - машина сервера, и у меня нет доступа к консоли во время начальной загрузки, таким образом, я не могу посмотреть на меню :( личинки

3
задан 18 October 2016 в 13:44

3 ответа

Это кажется ядром, которое Вы хотите загрузить, находится в подменю личинки (просто смотрят на полное grub.cfg). man grub-reboot говорит:

Обратите внимание на то, что пункты меню в подменю или подподменю требуют определения компонентов подменю и затем компонента пункта меню. Заголовки должны быть разделены с помощью большего - чем символ (>) без дополнительных пространств. В зависимости от Вашей оболочки некоторым символам включая >, возможно, понадобится выход. Больше информации об этом доступно в Руководстве GRUB в разделе о команде 'по умолчанию'.

, Возможно, что-то как grub-reboot '2>2' будет работать на Вас.

3
ответ дан 2 December 2019 в 01:56

Я был в аналогичной ситуации и хотел простой способ перезагрузить в другое ядро или установить значение по умолчанию. Меню, которые сгенерированы в Ubuntu, действительно делают это менее, чем тривиальным.

Я соединил сценарий, названный ядром начальной загрузки, которое делает это легче. Не прекрасный, но работает хорошо, по крайней мере, на официальные ядра человечности.

$ 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
ответ дан 2 December 2019 в 01:56

Записи меню личинки дисплея из командной строки

Я создал сценарий grub-menu.sh помочь найти число записи меню:

grub menu.png


Начальная загрузка с числом записи меню личинки

Если Вы хотели перезагрузить в Ядро 4.4.0-131 Вы использовали бы:

sudo grub-reboot "1>6"

Получение сценария удара grub-menu.sh

Можно найти сценарий удара в этом Вопросами и ответами: меню личинки Дисплея и опции без перезагрузки?

1
ответ дан 2 December 2019 в 01:56

Другие вопросы по тегам:

Похожие вопросы: