Я установил 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 с отключенной безопасной загрузкой.
Вы имеете
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
Похоже, проблема возникла, когда Grub перешел в режим восстановления после того, как система или программа завершили работу неправильно.
Чтобы в таких случаях Grub не отображался, добавьте эту строку в /etc/default/grub
GRUB_RECORDFAIL_TIMEOUT="3"
Установите любое значение времени ожидания. Я установил его на 3, чтобы по-прежнему иметь возможность доступа к группе в случае сбоя системы. Если установить значение 0, Grub вообще не будет отображаться.
После внесения изменений запустите эту команду, чтобы применить их: sudo update-grub