Я запускаю Ubuntu 12.04.
Я не могу ни за что в жизни заставить меню личинки (с опциями) уходить.
Я хотел бы его к автоматическому старту в первую опцию. Я отредактировал/etc/default/grub так, чтобы он был похож на следующее:
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
После этого я выполнил sudo личинку обновления. Затем я понял, что у меня была личинка 2, таким образом, я выполнил обновление-grub2 sudo (оба заставляют его быть похожим, они создают grub.cfg файл успешно.
Я перезапускаю свой компьютер, и он возвращается к меню личинки и просто находится там, пока я не делаю выбор. Это не желательно, если питание выходит... :-)
Я также пытался переустановить личинку с помощью sudo установку личинки/dev/sda - также неудачный
Как указывают другие ответы, вы можете стать жертвой ситуации с ошибкой записи . Редактирование /boot/grub/grub.cfg
вручную должно быть исключено, поскольку оно генерируется автоматически. Еще одно предложение, которое можно увидеть вокруг, - это отредактировать /etc/grub.d/00_header
, но тогда оно может потребовать вмешательства пользователя в обновления.
Самое простое решение - определить недокументированную переменную GRUB_RECORDFAIL_TIMEOUT
в /etc/default/grub
. Например:
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
См. этот ответ для более подробной информации.
У меня была проблема с тем, что меню grub появлялось всегда после того, как я использовал AUFS (unionfs) для чтения корневой файловой системы только для чтения. Мне пришлось физически нажимать клавишу ввода на сервере после каждой загрузки. Я следовал инструкциям здесь: отключить меню grub 2 . С тех пор у меня вообще не было проблем.
Отредактируйте /boot/grub/grub.cfg и измените:
if [ ${recordfail} = 1 ]; then
set timeout=-1
else
set timeout=10
fi
на
if [ ${recordfail} = 1 ]; then
set timeout=1
else
set timeout=10
fi
Использование:
grub-editenv create
Это очистит файл среды grub и в следующий раз должно загрузиться.
Я мог бы решить эту проблему, добавив следующую строку в /etc/default/grub
GRUB_DISABLE_OS_PROBER=true
... и затем запустив sudo update-grub
.
Объяснение: Файл /boot/grub/grub.cfg
создается путем запуска update-grub
с использованием файлов в /etc/grub.d
и /etc/default/grub
. Поэтому вам не следует редактировать grub.cfg
, но может быть полезно выяснить, почему установлено время ожидания. Найдите строки, начинающиеся с set timeout=
, а затем найдите следующую строку, начиная с ### END /etc/grub.d/ ...
. Это может дать вам подсказки, какой скрипт устанавливает время ожидания. В моем случае сценарий os-prober отвечал за время ожидания. Оказывается, что в /etc/grup.d/30_os-prober
есть жестко заданное время ожидания 10 с, которое не установлено в GRUB_TIMEOUT
. Вы можете либо отключить os-prober с помощью GRUB_DISABLE_OS_PROBER=true
, либо отредактировать /etc/grup.d/30_os-prober
, либо использовать GRUB_OS_PROBER_SKIP_LIST
, чтобы пропустить некоторые разделы жесткого диска (30_os-prober используется, когда где-то находится другая ОС). Смотрите этот Q & amp; A для деталей . Как отмечали другие, другой причиной может быть ошибка записи , в данном случае набор GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
.
измените GRUB_TIMEOUT=10
на ноль
Это мой файл конфигурации:
GRUB_DEFAULT="Ubuntu, with Linux 3.2.0-30-generic-pae"
#GRUB_HIDDEN_TIMEOUT=10
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""
Сначала напишите имя ОС, для которой вы хотите загрузить напрямую. Мой Ubuntu. Таким образом, вы напишите это как в GRUB_DEFAULT="Ubuntu, with Linux x.x.x-xx-generic-pae"
, затем я использовал 1 секунду в GRUB_TIMEOUT=
, чтобы дать мне 1 секунду перед выбором ОС по умолчанию (если мне нужно загрузиться с другой ОС, например Xubuntu)
что касается GRUB_CMDLINE_LINUX_DEFAULT=""
, если вы удалите quite splash
, он покажет вам тексты вместо логотипа Ubuntu во время процесса загрузки (мне нравится это так: P)
Там другое решение:
Существует программа под названием boot-repair , которая помогает в настройке с графическим интерфейсом.
, как вы можете видеть из изображения. есть поле под названием Unhide boot menu
. Просто снимите флажок и нажмите аппи. Вы можете получить к нему доступ, нажав на стрелку дополнительных параметров.
установить загрузочный ремонт
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
и затем запустить boot-reapir
либо из терминала, либо из тире.
3-е решение:
Вы можете использовать простое в использовании приложение с графическим интерфейсом, называемое grub-customizer, чтобы сделать вашу жизнь немного проще. Как следует из названия, вы можете сделать гораздо больше, чем просто изменить порядок пунктов меню Grub.
Вы можете установить его:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
, как вы можете видеть из меню, есть опция show menu
. Снимите флажок и посмотрите, работает ли он
, GRUB_HIDDEN_TIMEOUT
и GRUB_HIDDEN_TIMEOUT_QUIET
устарели. Так что закомментируйте их.
Чтобы пропустить меню и показать его, только удерживая ESC
, добавьте:
GRUB_TIMEOUT_STYLE='countdown'
GRUB_TIMEOUT=1
Образец /etc/default/grub
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=1
GRUB_TIMEOUT_STYLE=countdown
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""
'GRUB_TIMEOUT_STYLE' : если для этой опции задано значение «обратный отсчет» или «скрытый», то за до отображения меню GRUB будет ожидать истечения времени ожидания, установленного параметром «GRUB_TIMEOUT». Если в течение этого времени нажать ESC , отобразится меню и будет ждать ввода.
Моя Ubuntu всегда имела тайм-аут 30 секунд, или я установлю значение или нет. Здесь после то, как я узнал, что recordfail был отсутствующим значением.
1. Проверьте фактический сценарий личинки /boot/grub/grub.cfg
По моему скромному мнению, лучший способ проверить, что сделает Личинка, состоит в том, чтобы открыться /boot/grub/grub.cfg
. Это - сценарий, автоматически сгенерированный grub-mkconfig
использование шаблонов от /etc/grub.d
и настройки от /etc/default/grub
.
Вокруг строки 109, Вы будете видеть, посмотрите что-то как:
108 if [ "${recordfail}" = 1 ] ; then
109 set timeout=30 # Note here this value
110 else
111 if [ x$feature_timeout_style = xy ] ; then
112 set timeout_style=hidden
113 set timeout=3
114 # Fallback hidden-timeout code in case the timeout_style feature is
115 # unavailable.
116 elif sleep --interruptible 3 ; then
117 set timeout=0
118 fi
119 fi
В моем случае с помощью того сгенерированного сценария я мог узнать что recordfail
переменная была сброшена.
2. Если recordfail
переменная сброшена, установите ее
Открытый /etc/default/grub
в Вашем любимом текстовом редакторе (например, энергия) и затем набор переменная GRUB_RECORDFAIL_TIMEOUT
к данному значению, например, 5 секунд.
Ваш файл конфигурации должен быть похожим:
GRUB_DEFAULT=0
GRUB_TIMEOUT=3
GRUB_TIMEOUT_STYLE=hidden
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_RECORDFAIL_TIMEOUT=5
3. Обновите конфигурацию для выполнения с update-grub
Последний шаг, обновите конфигурацию для выполнения с update-grub
. На данный момент на, GRUB2 будет использовать тайм-аут набора. Эта команда повторно создаст /boot/grub.cfg
файл.
4. Проверьте сгенерированный результат сценария
Снова, открытый /boot/grub.cfg
и проверьте результат вокруг строки 109:
108 if [ "${recordfail}" = 1 ] ; then
109 set timeout=5 # Note here this value
110 else
111 if [ x$feature_timeout_style = xy ] ; then
112 set timeout_style=hidden
113 set timeout=3
114 # Fallback hidden-timeout code in case the timeout_style feature is
115 # unavailable.
116 elif sleep --interruptible 3 ; then
117 set timeout=0
118 fi
119 fi
Обратите внимание, что значение в строке 109 теперь 5 вместо 30 как прежде.