Я использую GRUB 2.00 в системе Gentoo Linux.
Я компилировать свои собственные ядра вручную, а затем установить их в /boot
с make install
. На данный момент у меня есть следующие ядра /boot
:
# ls -1 /boot/vmlinuz*
/boot/vmlinuz-3.7.4-gentoo-5
/boot/vmlinuz-3.7.4-gentoo-first
/boot/vmlinuz-3.7.4-gentoo-fourth
/boot/vmlinuz-3.7.4-gentoo-third
Выполнение grub2-mkconfig
результатов в следующем выводе:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.7.4-gentoo-third
Found linux image: /boot/vmlinuz-3.7.4-gentoo-fourth
Found linux image: /boot/vmlinuz-3.7.4-gentoo-first
Found linux image: /boot/vmlinuz-3.7.4-gentoo-5
done
Если я сейчас читаю полученный /boot/grub2/grub.cfg
файл, я замечаю, что были созданы следующие записи:
- Основная запись по умолчанию, которая начинается
vmlinuz-3.7.4-gentoo-third
- Подменю со всеми другими записями (включая восстановительные), в том же порядке, что и
grub2-mkconfig
команда
Проблема в том, что во время загрузки я хотел бы загрузить по умолчанию пятую версию моего ядра ( vmlinuz-3.7.4-gentoo-5
), а не третью ( vmlinuz-3.7.4-gentoo-third
). Я также предпочитаю не получать доступ к подменю для выбора правильного ядра для загрузки.
Как я могу изменить это поведение? Как я могу сказать GRUB, что я хочу запустить пятую версию моего ядра по умолчанию, а не более старую третью версию? В общем, как я могу изменить строку ввода по умолчанию, чтобы она соответствовала желаемому ядру, а не случайной, выбранной GRUB?
Я также попытался вставить следующие строки /etc/default/grub
:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
Это не решает проблему так, как я хочу. Но, по крайней мере, GRUB, похоже, запоминает последнее ядро, с которого я загрузился, и автоматически выбирает его из подменю. Просто мне не нравится доступ к подменю.
-o /boot/grub2/grub.cfg
качестве выходного файла. Каталог/boot/grub/
все еще существует?Ответы:
Для выбора пункта меню в подменю «Дополнительные параметры» установите GRUB_DEFAULT = «1> 3». Теперь вы можете запустить grub2-mkconfig для создания файла конфигурации grub. При следующей перезагрузке должен загрузиться vmlinuz-3.7.4-gentoo-5.
Примечание . Это не изменит запись по умолчанию в меню grub, т. Е. Запись по умолчанию будет по-прежнему обозначать ту же запись, что и сейчас. Но изображение, которое будет загружено по умолчанию, будет 4-ым изображением в разделе «Дополнительные параметры». Чтобы сделать vmlinuz-3.7.4-gentoo-5 в качестве записи по умолчанию в меню grub, порядок изображений должен быть таким, чтобы vmlinuz-3.7.4-gentoo-5 был первым изображением при запуске grub2-mkconfig. ,
источник
Если в вашем grub.cfg есть подменю, вы должны использовать две цифры, например:
Первым является индекс меню, а второй является индекс подменю.
Например, чтобы загрузить последнюю запись из конфигурации следующим образом:
вы должны использовать:
и перезагрузите компьютер.
источник
Вы можете также использовать
GRUB_DEFAULT=saved
. В этом случае вы бы использовалиили если это только для следующей загрузки:
источник
Пытаться
Это переместит все ваши неиспользуемые ядра в каталог резервного копирования, теперь:
Это только добавляет выбор
r5
в ваше меню. После этого, прочитать эту ссылку , а затем reame всех ядер в архивной директории что - то другое , чем vmlinuz , если вы настаиваете на сохранение ихисточник
С centos7 (или RHEL7) и grub2:
grub для загрузки использует запись «save_entry» из grubenv по умолчанию, снипплет из /boot/grub2/grub.cfg:
чтобы проверить, что является «сохраненным_энтри» сейчас моя сборка:
изменить его, например, на мою отладочную сборку:
источник
То, что я сделал для достижения желаемого результата, было:
установить,
GRUB_DEFAULT=saved
как указано вgrub-set-default
справкеgrub-set-default Menu entry not specified. Usage: grub-set-default [OPTION] MENU_ENTRY Set the default boot menu entry for GRUB. This requires setting GRUB_DEFAULT=saved in /etc/default/grub. -h, --help print this message and exit -V, --version print the version information and exit --boot-directory=DIR expect GRUB images under the directory DIR/grub instead of the /boot/grub directory MENU_ENTRY is a number, a menu item title or a menu item identifier.
Установите значение по умолчанию
grub-set-default "1>2"
Он создает новый файл в / boot / grub под названием grubenv с необходимой информацией.
После этого я воссоздаю файл конфигурации
grub-mkconfig > /boot/grub/grub.cfg
И я видел, что конфигурация была изменена, чтобы использовать сохраненное состояние:
if [ "${next_entry}" ] ; then set default="${next_entry}" set next_entry= save_env next_entry set boot_once=true else set default="${saved_entry}" fi
источник
Вы можете установить выбор по умолчанию по числовому значению. Если вы установите
в По
/etc/default/grub
умолчанию вы установите запись gentoo-5.
GRUB_DEFAULT
смещение нуля, поэтому 3 выберет четвертую запись по вашему желанию.источник
GRUB_DEFAULT=3
как вы сказали, затем снова запуститьgrub2-mkconfig
. Но во время загрузки запись по умолчанию все ещеvmlinuz-3.7.4-gentoo-third
.GRUB_SAVEDEFAULT=true
Это не должно иметь значения, но это не нужно для числовых./etc/default/grub
файле.Я подозреваю, что
grub2-mkconfig
сортирует ядра в обратном порядке, предполагая, что они в основном содержат монотонно увеличивающиеся номера версий. Так что начните выбирать свои теги, чтобы соответствовать этому соглашению.источник
Переместите эти новые / неиспользуемые файлы версий в / boot в каталог резервного копирования, например / boot / back initrd.img-3.13.0-xx-generic
vmlinuz-3.13.0-xx-generic config-3.13.0-xx-generic System.map-3.13.0-хх-родовое
перезагрузите систему в режиме восстановления, затем выберите grub в диалоге восстановления, тогда все будет хорошо.
это наиболее подходящий метод, я думаю. Я использую Ubuntu 14.04.
источник
в убунту:
grub-pc позволит вам выбрать, какое меню.
см .: /ubuntu/384388/how-to-select-option-in-configuration-grub-pc-menu
источник