Я использую Ubuntu 12.04.
Я не могу на всю жизнь заставить меню grub (с опциями) уйти.
Я хотел бы, чтобы он автоматически загружался в первом варианте. Я отредактировал / 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 update-grub . Затем я понял, что у меня есть grub 2, поэтому я запустил sudo update-grub2 (оба создают впечатление, что они успешно создают файл grub.cfg .
Я перезагружаю свой компьютер, и он возвращается в меню grub и просто сидит там, пока я не сделаю выбор. Это не желательно, если питание отключается ... :-)
Я также попытался переустановить grub с помощью sudo grub-install / dev / sda - тоже безуспешно
sudo update-grub
иsudo update-grub2
запускает ту же команду. Так что не беспокойтесь об этой части.cat /boot/grub/grub.cfg
через pastebin и делитесь ссылкой здесь. Это чтобы увидеть фактическийgrub.cfg
сгенерированный.Ответы:
Как указывают другие ответы, вы можете стать жертвой ситуации с ошибкой записи . Редактирование
/boot/grub/grub.cfg
вручную должно быть исключено, поскольку оно генерируется автоматически. Другим предложенным вариантом является редактирование,/etc/grub.d/00_header
но затем оно может запросить вмешательство пользователя в обновления.Самое простое решение - определить недокументированную
GRUB_RECORDFAIL_TIMEOUT
переменную в/etc/default/grub
. Например:редактировать
Смотрите этот ответ для более подробной информации.
источник
update-grub
для создания обновленного/boot/grub/grub.cfg
файлаrecordfail
! Вы хотите увеличить время ожидания, если произошла ошибка загрузки. Чтобы вручную очистить, все , что вам нужно , это @ sniffski отвечают:grub-editenv create
. Тем не менее, может быть какая-то другая причинаrecordfail
, чтобы установить ...Использование:
Это очистит файл среды grub и в следующий раз должно загрузиться.
источник
grub-editenv - unset recordfail
работает также и не влияет на другие envs, которые могут быть установленыизменить на
GRUB_TIMEOUT=10
нольЭто мой файл конфигурации:
Сначала напишите название ОС, с которой вы хотите напрямую загружаться. Мой 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
. Просто снимите флажок и нажмите аппи. Вы можете получить к нему доступ, нажав на стрелку дополнительных параметров.установить загрузочный ремонт
а затем запустить
boot-reapir
либо из терминала или из тире.3-е решение:
Вы можете использовать простое в использовании приложение с графическим интерфейсом, называемое grub-customizer, чтобы сделать вашу жизнь немного проще. Как следует из названия, вы можете сделать гораздо больше, чем просто изменить порядок пунктов меню Grub.
Вы можете установить его:
как видно из меню есть
show menu
опция. Отключите и посмотрите, работает ли онисточник
grub-update
после изменения значений?GRUB_HIDDEN_TIMEOUT
иGRUB_HIDDEN_TIMEOUT_QUIET
варианты устарели. Так что закомментируйте это.Чтобы пропустить меню и показать его, только удерживая
ESC
, добавьте:Образец
/etc/default/grub
«GRUB_TIMEOUT_STYLE» : если для этого параметра установлено значение «обратный отсчет» или «скрытый», то перед отображением меню GRUB будет ожидать истечения времени ожидания, установленного параметром «GRUB_TIMEOUT». Если в течение этого времени нажать ESC , появится меню и будет ждать ввода.
источник
Я мог бы решить эту проблему, добавив следующую строку в
/etc/default/grub
... а потом работает
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 отвечал за время ожидания. Оказывается, есть жестко закодированный тайм-аут 10 с,/etc/grup.d/30_os-prober
который не установленGRUB_TIMEOUT
. Вы можете либо отключить os-prober,GRUB_DISABLE_OS_PROBER=true
либо отредактировать,/etc/grup.d/30_os-prober
либо использовать,GRUB_OS_PROBER_SKIP_LIST
чтобы пропустить некоторые разделы жесткого диска (30_os-prober используется, когда где-то находится другая ОС). Смотрите этот Q & A для деталей, Как отмечали другие, другой причиной может быть ошибка записи , в данном случае установленнаяGRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
.источник
У меня была проблема с тем, что меню grub появлялось всегда после того, как я использовал AUFS (unionfs) для установки корневой файловой системы только для чтения. Мне пришлось физически нажимать клавишу ввода на сервере после каждой загрузки. Я следовал инструкциям здесь: отключить меню grub 2 . С тех пор у меня вообще не было проблем.
Отредактируйте /boot/grub/grub.cfg и измените:
к
источник
set timeout=-1
это не то же самое, чтоset timeout=1
. Первый - «ждать вечно», а второй - «ждать одну секунду».У моего Ubuntu всегда был тайм-аут 30 секунд, я бы установил значение или нет. Вот после того, как я узнал, что recordfail был отсутствующим значением .
1. Проверьте фактический скрипт grub
/boot/grub/grub.cfg
ИМХО, лучший способ проверить, что сделает Grub, это открыть
/boot/grub/grub.cfg
. Это скрипт, автоматически генерируемый сgrub-mkconfig
помощью шаблонов/etc/grub.d
и настроек из/etc/default/grub
.Вокруг линии 109 вы увидите что-то вроде:
В моем случае с помощью этого сгенерированного скрипта я смог узнать, что
recordfail
переменная не установлена.2. Если
recordfail
переменная не установлена, установите ееОткройте
/etc/default/grub
в вашем любимом текстовом редакторе (например, vim), а затем установите переменнуюGRUB_RECORDFAIL_TIMEOUT
на заданное значение, например, 5 секунд.Ваш конфигурационный файл должен выглядеть так:
3. Обновите конфигурацию для запуска с
update-grub
Последний шаг, обновите конфигурацию для запуска
update-grub
. На данный момент GRUB2 будет использовать установленное время ожидания. Эта команда восстановит/boot/grub.cfg
файл.4. Проверьте сгенерированный результат скрипта
Снова откройте
/boot/grub.cfg
и проверьте результат в строке 109:Обратите внимание, что значение в строке 109 теперь равно 5, а не 30, как раньше.
источник