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

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

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

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

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

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  set saved_entry=${prev_saved_entry}
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z ${boot_once} ]; then
    saved_entry=${chosen}
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
insmod ext2
set root='(hd0,5)'
search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
set locale_dir=($root)/boot/grub/locale
set lang=de
insmod gettext
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### 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
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux   /boot/vmlinuz-2.6.32-24-generic root=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)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,5)'
    search --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-generic root=UUID=c1550ae8-66af-414c-874d-15cb43176ba5 ro single 
    echo    'Initiale Ramdisk wird 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
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux   /boot/vmlinuz-2.6.32-21-generic root=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
    set root='(hd0,5)'
    search --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-generic root=UUID=c1550ae8-66af-414c-874d-15cb43176ba5 ro single 
    echo    'Initiale Ramdisk wird geladen …'
    initrd  /boot/initrd.img-2.6.32-21-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set c1550ae8-66af-414c-874d-15cb43176ba5
    linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod ext2
    set root='(hd0,5)'
    search --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 ###
menuentry "Microsoft Windows XP Professional (on /dev/sda1)" {
    insmod ntfs
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set 883cb1b73cb1a09c
    drivemap -s (hd0) ${root}
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
2
задан 5 September 2010 в 16:08

3 ответа

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

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

0
ответ дан 5 September 2010 в 16:08

Я имел, это происходит на новой 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 (все еще работающий над созданием этой ускоренной работы). Это может быть присутствие двух различных графических устройств, делает начальную загрузку недетерминированной.

2
ответ дан 5 September 2010 в 16:08

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

Для этого могут быть следующие причины:

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

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

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

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

0
ответ дан 5 September 2010 в 16:08

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

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