Я хотел бы обратиться за помощью к получению 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. Это - машина сервера, и у меня нет доступа к консоли во время начальной загрузки, таким образом, я не могу посмотреть на меню :( личинки
Это кажется ядром, которое Вы хотите загрузить, находится в подменю личинки (просто смотрят на полное grub.cfg
). man grub-reboot
говорит:
Обратите внимание на то, что пункты меню в подменю или подподменю требуют определения компонентов подменю и затем компонента пункта меню. Заголовки должны быть разделены с помощью большего - чем символ (
>
) без дополнительных пространств. В зависимости от Вашей оболочки некоторым символам включая>
, возможно, понадобится выход. Больше информации об этом доступно в Руководстве GRUB в разделе о команде 'по умолчанию'.
, Возможно, что-то как grub-reboot '2>2'
будет работать на Вас.
Я был в аналогичной ситуации и хотел простой способ перезагрузить в другое ядро или установить значение по умолчанию. Меню, которые сгенерированы в 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"
Я создал сценарий grub-menu.sh
помочь найти число записи меню:
Если Вы хотели перезагрузить в Ядро 4.4.0-131
Вы использовали бы:
sudo grub-reboot "1>6"
grub-menu.sh
Можно найти сценарий удара в этом Вопросами и ответами: меню личинки Дисплея и опции без перезагрузки?