Grub не загружает опцию по умолчанию после обновления до 12.10


12

Я недавно обновил Ubuntu с 12.04 до 12.10, и с этого времени система не загружается автоматически. Он всегда открывает меню загрузки, и мне нужно нажать Enter, чтобы загрузить Ubuntu.

Кажется, он игнорирует значение тайм-аута и использует «бесконечный» тайм-аут.

Других систем (без двойной загрузки) нет, только параметры, изначально установленные по умолчанию при установке Ubuntu 12.04.

У меня /etc/default/grubесть только эти эффективные варианты:

GRUB_DEFAULT='Ubuntu'
GRUB_HIDDEN_TIMEOUT=1
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_TERMINAL=console

Я экспериментировал с GRUB_DEFAULTзначениями «0», «1», «Ubuntu», но ничего не помогало.

Да, я всегда бегаю update-grubпотом.

Как я могу сделать загрузку системы снова?


Ответы:


10

Добавьте следующее к /etc/default/grub

GRUB_RECORDFAIL_TIMEOUT=0

Сохранить и запустить

sudo update-grub

2

У меня есть следующий набор значений в моем /etc/default/grubфайле:

GRUB_DEFAULT=5
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10

У меня есть несколько других операционных систем на моем компьютере, и настройка GRUB_DEFAULT, кажется, устанавливает конкретный начальный выделенный элемент в списке, начиная с 0 и считая вверх. В течение 10 секунд я могу переключаться между другими записями в списке.

Я бы посоветовал вам попробовать следующие настройки, чтобы вы прокомментировали GRUB_HIDDEN_TIMEOUTпараметр:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10

Тогда работа в обратном направлении от того, постепенно делая GRUB_TIMEOUTили GRUB_HIDDEN_TIMEOUTпараметры 1 или 2 , чтобы сократить ожидание на системе по умолчанию выбран.

Помните, что вам может понадобиться Ctrl + Alt + T, чтобы получить доступ к терминалу для sudo gedit файла.


2

Если вы посмотрите на /etc/grub.d/00_header, вы увидите следующие строки:

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1}
else
  set timeout=${2}
fi
EOF
}

в основном, grub2 способен обнаруживать ошибки в процессе загрузки и переходить к ручной загрузке.

Изменение этих строк на что-то вроде

make_timeout ()
{
    cat << EOF
  set timeout=${2}
EOF
}

и восстановление конфигурации grub с помощью sudo update-grubдолжно решить проблему. Интересный вопрос, однако, почему grub продолжает думать, что загрузка не удалась после того, как вы вручную нажали Enter.


-1

Попробуй это. Мне не нужно было использовать живой диск, потому что я мог вручную загрузить ОС, выбрав опцию в grub и нажав Enter. Это исправило мою проблему. Удачи!

http://www.howtogeek.com/114884/how-to-repair-grub2-when-ubuntu-wont-boot/


Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить сюда основные части ответа и предоставить ссылку для справки.
fossfreedom
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.