Grub больше не загружается после обновления ядра (второй раз)

Несколько недель назад я настроил ноутбук с двойной загрузкой для запуска Xubuntu 10.4 на третьем разделе моего диска (то есть мне пришлось вручную установить место установки). Все было хорошо, пока я не установил кучу автоматических обновлений (включая новое ядро), которые были обнаружены после того, как Wifi наконец заработал. После перезагрузки Grub больше не загружался в Xubuntu (что он делал несколько раз раньше), а просто отображал подсказку. Мне удалось починить систему с помощью живого CD и хорошего часа чтения в Интернете.

Несколько недель все было хорошо, включая автоматические обновления. Вчера получил новое ядро ​​через автоматические обновления. И угадай что? Ноутбук отказался загружаться потом.

Мне кажется, каждое обновление ядра делает мою систему не загружаемой. Как я могу предотвратить это, кроме очевидного "Не устанавливать обновления"? Что-нибудь еще, что я должен осмотреть или контролировать в этой системе? Или мои выводы об обновлении ядра совершенно неверны, и я должен искать что-то еще, вызывающее эти симптомы?

РЕДАКТИРОВАТЬ: некоторые подробности, как спрашивалось в комментариях: я не запускал Windows между обновлением и сбоем, поэтому для меня это, похоже, связано только с Xubuntu. Grub - это Grub2 (версия 1.98 что-то). /boot/grub/grub.cfg выглядит так:

#
# НЕ РЕДАКТИРОВАТЬ ЭТОТ ФАЙЛ
#
# Он автоматически генерируется /usr/sbin/grub-mkconfig с использованием шаблонов
# из /etc/grub.d и настройки из / etc / default / grub
#

### BEGIN /etc/grub.d/00_header ###
if [-s $ prefix / grubenv]; затем
  load_env
фи
установить по умолчанию ="0"
if [ ${prev_saved_entry} ]; затем
  set save_entry=${prev_saved_entry}
  save_env save_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  установить boot_once=true
фи

функция savedefault {
  if [ -z ${boot_once} ]; затем
    saved_entry=${} выбрано
    save_env save_entry
  фи
}

function recordfail {
  установить recordfail=1
  if [ -n ${have_grubenv} ]; тогда if [-z $ {boot_once}]; затем save_env recordfail; Fi; фи
}
insmod ext2
установить root='(hd0,5)'
поиск --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
if loadfont /usr/share/grub/unicode.pf2; затем
  установить gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm; тогда правда; еще
    # Для обратной совместимости с версиями терминала.
    # понимать терминал_ выход
    терминал gfxterm
  фи
фи
insmod ext2
установить root='(hd0,5)'
поиск --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
set locale_dir=($root)/boot/grub/locale
установить lang=de
insmod gettext
if [ ${recordfail} = 1 ]; затем
  установить время ожидания =-1
еще
  установить время ожидания =10
фи
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal = white / black
set menu_color_highlight = черный / светло-серый
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, mit Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    установить root='(hd0,5)'
    поиск --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux   /boot/vmlinuz-2.6.32-24- родовой корень =UUID=c1550ae8-66af-414c-874d-15cb43176ba5 ro   quiet splash
    initrd  /boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-24-generic (Wiederherstellungsmodus)' --класс ubuntu --класс gnu-linux --класс gnu --class os {
    recordfail
    insmod ext2
    установить root='(hd0,5)'
    поиск --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    echo    'Linux 2.6.32-24-generic wird geladen …'
    linux   /boot/vmlinuz-2.6.32-24- родовой корень =UUID=c1550ae8-66af-414c-874d-15cb43176ba5 ro single 
    эхо "Посвященный Рамдиск странный geladen..."
    initrd  /boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    установить root='(hd0,5)'
    поиск --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux   /boot/vmlinuz-2.6.32-21- общий корень =UUID=c1550ae8-66af-414c-874d-15cb43176ba5 ro   quiet splash
    initrd  /boot/initrd.img-2.6.32-21-generic
}
menuentry 'Ubuntu, mit Linux 2.6.32-21-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    установить root='(hd0,5)'
    поиск --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    echo    'Linux 2.6.32-21-generic wird geladen …'
    linux   /boot/vmlinuz-2.6.32-21- общий корень =UUID=c1550ae8-66af-414c-874d-15cb43176ba5 ro single 
    эхо "Посвященный Рамдиск странный geladen..."
    initrd /boot/initrd.img-2.6.32-21-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Тест памяти (memtest86+)" {
    insmod ext2
    установить root='(hd0,5)'
    поиск --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux16 /boot/memtest86+.bin
}
menuentry "Тест памяти (memtest86+, последовательная консоль 115200)" {
    insmod ext2
    установить root='(hd0,5)'
    поиск --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux16 /boot/memtest86+.bin console = ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
пункт меню "Microsoft Windows XP Professional (on /dev/sda1)" {
    insmod ntfs
    set root='(hd0,1)'
    поиск --no-floppy --fs-uuid --set 883cb1b73cb1a09c
    drivemap -s (hd0) ${root}
    загрузчик цепей +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# Этот файл предоставляет простой способ добавления пользовательских пунктов меню. Просто введите
# пунктов меню, которые вы хотите добавить после этого комментария. Будьте осторожны, чтобы не изменить
# строка 'exec tail' выше.
### END /etc/grub.d/40_custom ###

3 ответа

Решение

Каждый раз, когда новое ядро ​​добавляется как часть обновления программного обеспечения, конфигурация grub обновляется. Поэтому информация, которую запрашивал Хавьер Ривера, очень важна. Соответствующий файл конфигурации /boot/grub/grub.cfg - если вы не нашли его, тогда ищите /boot/grub/menu.lst

Также вы можете запустить update-grub и проверьте, если вы получаете какие-либо ошибки - пожалуйста, опубликуйте результат этого также. Однако, если update-grub успешен, то обходным решением будет запускать его вручную каждый раз, когда ваши обновления включают новое ядро.

У меня было такое на новой установке Ubuntu 12.10 (на рабочем столе) на ноутбуке. Система загрузилась нормально после первоначальной установки, а затем после получения обновления ядра (из начального набора обновлений) она прошла бы через меню GRUB, загрузила ядро, а затем черный экран без запроса парольной фразы.

Кажется, проблема связана с видео. То, что я обнаружил, последовательно исправляет это, но менее привлекательно, это отредактировать /etc/default/grub и удалить quiet а также splash варианты из GRUB_CMDLINE_LINUX_DEFAULTи работает update-grub, Если вы уже не можете загрузиться, то при появлении меню GRUB нажмите E, чтобы отредактировать командную строку GRUB и удалить эти параметры, затем нажмите Ctrl-X для загрузки.

Эта ошибка предлагает попробовать plymouth:force-drm как вариант загрузки GRUB, который не позволяет использовать драйвер кадрового буфера ядра. Это также, похоже, работало, за исключением того, что оно все еще не использовало заставку и загружалось в текстовом режиме.

Что бы это ни стоило, мой ноутбук имеет два графических чипсета: Intel (с драйвером ядра i915) и Nvidia GTX680M (все еще работаю над ускорением этой работы). Возможно, наличие двух разных графических устройств делает загрузку недетерминированной.

Он не загружается, это означает, что либо его конфигурация повреждена, либо ее код был перезаписан.

Есть возможные причины для этого:

  • определенное программное обеспечение Windows перезаписывает скрытое (случайное) пространство на вашем жестком диске. Они делают это по причинам DRM. Тем не менее, я предполагаю, что проблема возникает сразу после обновления ядра, а затем перезапуска, так что, скорее всего, это не так.

  • у вас нет свободного места на вашем разделе ubuntu (или, по крайней мере, на том, что содержит grub). Убедитесь, что вы делаете. Я сейчас вкладываю свои деньги в этот.

  • grub auto переконфигурирует себя каждый раз, когда вы устанавливаете новое ядро. Попробуйте перенастроить его вручную и посмотрите, нет ли ошибок. Запустите sudo update-grub в терминале, чтобы сделать это. Вы должны будете ввести свой пароль, и он должен вывести некоторые вещи.

  • вы говорите, что это третий раздел вашего диска; это съемный диск? Как внешний жесткий диск или внутренний жесткий диск? Потому что в этом случае нумерация устройств может отличаться от времени установки.

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