GRUB случайно показывает при запуске

Я установил GRUB полностью скрытым. Тем не менее, иногда это случайно показывает, когда я загружаюсь. Что может быть причиной этого?

Содержимое файла etc / default / grub

GRUB_DEFAULT="0"
GRUB_TIMEOUT_STYLE="hidden"
GRUB_TIMEOUT="0"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0"
GRUB_CMDLINE_LINUX=""
GRUB_HIDDEN_TIMEOUT="0"
GRUB_DISABLE_OS_PROBER="true"

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

1
задан 21 September 2019 в 09:58

2 ответа

Вы имеете

GRUB_TIMEOUT_STYLE="hidden"

в /etc/default/grub но у Вас также есть строка

GRUB_HIDDEN_TIMEOUT="0"

в /etc/default/grub.

С первым Вы говорите Личинке скрывать меню, и с последним Вы говорите Личинке показывать меню после 0 секунд.

Необходимо удалить строку

 GRUB_HIDDEN_TIMEOUT="0"

от /etc/default/grub и затем выполненный sudo update-grub.

Здесь основная часть из Руководства GRUB:

‘GRUB_HIDDEN_TIMEOUT’

Ожидайте это много секунд прежде, чем отобразить меню. Если ESC нажимается в течение того времени, отобразите меню и ожидайте входа согласно ‘GRUB_TIMEOUT’. Если> горячая клавиша, связанная с записью меню, нажимается, загрузите связанную запись меню сразу. Если тайм-аут истекает, прежде чем любой из них происходит, отобразите меню для числа секунд, указанных в ‘GRUB_TIMEOUT’ прежде, чем загрузить запись по умолчанию.

При установке ‘GRUB_HIDDEN_TIMEOUT’ необходимо также установить ‘GRUB_TIMEOUT=0’ так, чтобы> меню не было отображено вообще, если ESC не нажимается.

Эта опция сброшена по умолчанию и удерживается от использования в пользу менее запутывающего ‘GRUB_TIMEOUT_STYLE=countdown’ или ‘GRUB_TIMEOUT_STYLE=hidden’.


Другой возможностью является встроенная Личинка recordfail- функция. Каждый раз, когда запись меню выбрана (вручную или автоматически), Личинка установит переменную recordfail=1 и сохраняет его в /boot/grub/grubenv.

Во время начальной загрузки переменная будет сброшена systemd, если начальная загрузка будет успешна, если начальная загрузка перестанет работать, то переменная останется неизменной в /boot/grub/grubenv.

Каждый раз время, которое Grub запускает, Grub, будет читать /boot/grub/grubenv и проверки, если recordfail установлен на 1. Таким образом, Личинка будет знать если последняя начальная загрузка, за которой следуют или нет. Если последняя начальная загрузка не была успешна, Личинка переопределит Ваши настройки от /etc/default/grub отобразить меню начальной загрузки в течение 30 секунд.

Можно проверить содержание /boot/grub/grubenv с

cat /boot/grub/grubenv
1
ответ дан 7 December 2019 в 14:58

Похоже, проблема возникла, когда Grub перешел в режим восстановления после того, как система или программа завершили работу неправильно.

Чтобы в таких случаях Grub не отображался, добавьте эту строку в /etc/default/grub

GRUB_RECORDFAIL_TIMEOUT="3"

Установите любое значение времени ожидания. Я установил его на 3, чтобы по-прежнему иметь возможность доступа к группе в случае сбоя системы. Если установить значение 0, Grub вообще не будет отображаться.

После внесения изменений запустите эту команду, чтобы применить их: sudo update-grub

0
ответ дан 16 December 2019 в 04:18

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

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