Просто установил еще один жесткий диск и заметил, что grub автоматически добавил необходимые пункты меню для загрузки с него. Я хотел откорректировать эти новые записи, отредактировав / etc / default / grub, но, похоже, некоторые параметры игнорируются или переопределяются сценариями update-grub и grub-mkconfig. В частности, эти строки:
GRUB_TIMEOUT=2 GRUB_OS_PROBER_SKIP_LIST="469841589841479F"
Я удалил строку GRUB_HIDDEN_TIMEOUT = 0, так как в документации сказано, что она устарела, и заменил ее на:
GRUB_TIMEOUT_STYLE = "hidden"
После запуска любого сценария полученный файл grub.cfg содержит:
if [ "${recordfail}" = 1 ] ; then set timeout=-1 else if [ x$feature_timeout_style = xy ] ; then set timeout_style=hidden set timeout=2 # Fallback hidden-timeout code in case the timeout_style feature is # unavailable. elif sleep --interruptible 2 ; then set timeout=0 fi fi ### END /etc/grub.d/00_header ###
Таким образом, здесь используется опция тайм-аута. Проблема, кажется, позже с разделом /etc/grub.d/30_os-prober. До того, как у меня появился второй жесткий диск, явно не было записей об этом. Теперь, когда есть, это добавляется в grub.cfg:
### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Windows 7 (loader) (on /dev/sdb1)' --class windows --class os $menuentry_id_option 'osprober-chain-CA0E41BE0E41A3F3' { [snip] } menuentry 'Windows Recovery Environment (loader) (on /dev/sdb2)' --class windows --class os $menuentry_id_option 'osprober-chain-469841589841479F' { [snip] } set timeout_style=menu if [ "${timeout}" = 0 ]; then set timeout=10 fi ### END /etc/grub.d/30_os-prober ###
Таким образом, он не только не игнорирует раздел, который я ему сказал, но и часть скрипта os-prober не позволит мне установить тайм-аут 0 и вызвать меню (я привык просто удерживать левую клавишу Shift при включении, если я когда-либо захочу изменить параметры загрузки).
Вторая или две задержки тайм-аута только слегка раздражают, но наличие меню, вызванного, когда я явно не хочу его, и это меню, включающее раздел, который никогда не должен быть в списке, гораздо больше.
Если не считать редактирования grub.cfg каждый раз или настройки /etc/grub.d/30_os-prober (который может быть перезаписан во время обновления?), Есть ли исправление для этого?
Спасибо!
Проверки личинки GRUB_OS_PROBER_SKIP_LIST
против EXPUUID
не UUID
, таким образом, соответствующий формат для GRUB_OS_PROBER_SKIP_LIST
UUID@/dev/????
, например:
GRUB_OS_PROBER_SKIP_LIST="A3F5-6DF3@/dev/sda1"
Как я очистил grub.cfg
0-, когда новое [Linux], распределение установлено личинка-mkconfig, будет использовать/etc/grub.d/10_linux для реализации ядра Linux и восстановления menuentries. Тестер ОС будет [/etc/grub.d/30_os-prober] использовать 30_os-тестер для нахождения другой ОС [Операционные системы]
часто, меню запуска может иметь нежелательные, лишние или даже мертвые записи. (мертвая запись в моем меню начальной загрузки запустила меня на этих поисках.) Я посмотрел на/boot/grub/grub.config для ознакомления меня с menuentries.
для удаления нежелательной записи я сделал следующее как корень:
1-мертвая запись была найдена 30_os-тестером. Я скопировал записи [сделанный 30_os-тестером в/boot/grub/grub.cfg], я хотел к 40_custom.
2-я поместил GRUB_DISABLE_OS_PROBER = "верный" в/etc/default/grub
3-, я протестировал новую конфигурацию в резервном каталоге начальной загрузки. sudo копают-mkconfig-o меню-test.cfg [имя файла произвольно]
4-, когда тестовый файл смотрел способ, которым я хотел его: sudo обновляют личинку
в следующий раз, когда я загрузился, нежелательная запись закончилась, но те, которых я хотел, были в конце.
Если os-prober
возвраты проверка ошибок разделы (например, zfs
) видят эта фиксация
Лучший способ найти UUID:
sudo grub -probe --target=fs_uuid --device /dev/sda6
Поиск UUID с blkid
не будет работать для разделов Mac OS X.