Не может получить меню личинки к тайм-ауту (или уйти),

Я запускаю 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 - также неудачный

18
задан 18 October 2012 в 04:32

7 ответов

Как указывают другие ответы, вы можете стать жертвой ситуации с ошибкой записи . Редактирование /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

Редактировать

См. этот ответ для более подробной информации.

0
ответ дан 18 October 2012 в 04:32

У меня была проблема с тем, что меню 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
0
ответ дан 18 October 2012 в 04:32

Использование:

grub-editenv create

Это очистит файл среды grub и в следующий раз должно загрузиться.

0
ответ дан 18 October 2012 в 04:32

Я мог бы решить эту проблему, добавив следующую строку в /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.

0
ответ дан 18 October 2012 в 04:32

измените 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 , которая помогает в настройке с графическим интерфейсом.

enter image description here

enter image description here

, как вы можете видеть из изображения. есть поле под названием 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

enter image description here

, как вы можете видеть из меню, есть опция show menu. Снимите флажок и посмотрите, работает ли он

0
ответ дан 18 October 2012 в 04:32
Опции

, 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 , отобразится меню и будет ждать ввода.

0
ответ дан 18 October 2012 в 04:32

Моя 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 как прежде.

0
ответ дан 18 October 2012 в 04:32

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

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