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 в терминале, чтобы сделать это. Вы должны будете ввести свой пароль, и он должен вывести некоторые вещи.
вы говорите, что это третий раздел вашего диска; это съемный диск? Как внешний жесткий диск или внутренний жесткий диск? Потому что в этом случае нумерация устройств может отличаться от времени установки.