1

Я очень потерян. Я сделал свежую установку Ubuntu 10.04 на ноутбуке. Первая перезагрузка прошла нормально. Я запустил все рекомендуемые обновления, и теперь каждый раз, когда я начинаю, я получаю только

grub>_

незамедлительный. Никакого сообщения об ошибке, только подсказка и маленький баннер вверху, говорящий о версии grub и сообщающий, что у меня минимальное редактирование стиля bash. Я пробовал:

1) Переустановка grub через

sudo grub-install sda

(Существует только один диск с двумя разделами, один основной и один для подкачки)

2) Изменено

GRUB_HIDDEN_TIMEOUT=10
GRUB_TIMEOUT=30
GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=90"
GRUB_CMDLINE_LINUX="rootdelay=90"

в /etc /default /grub. Неудачно. Я могу загрузиться со следующим:

grub> set root=(hd0,1)
grub> probe (hd0,1) -u
c00fadde-f7e8-45e7-a4da-0235605f756
grub> linux /boot/vmlinuz-2.6.32-21-generic root=UUID=c00fadde-f7e8-45e7-a4da-0235605f756 rootdelay=90
grub> initrd /boot/initrd.img-2.6.32-21-generic
grub> boot

И тогда, кажется, все в порядке оттуда. Из grub подскажу если попробую

configfile /boot/grub/grub.cfg 

Экран очищается, и я получаю другой запрос grub>.

Итак, серьезно, в чем может быть проблема?

редактировать:

Полный текст /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,1)'
search --no-floppy --fs-uuid --set c00fadde-f7e8-45e7-a4da-0235c605f756
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,1)'
search --no-floppy --fs-uuid --set c00fadde-f7e8-45e7-a4da-0235c605f756
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=30
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, with Linux 2.6.32-21-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set c00fadde-f7e8-45e7-a4da-0235c605f756
    linux   /boot/vmlinuz-2.6.32-21-generic root=UUID=c00fadde-f7e8-45e7-a4da-0235c605f756 ro rootdelay=90  rootdelay=90
    initrd  /boot/initrd.img-2.6.32-21-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-21-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set c00fadde-f7e8-45e7-a4da-0235c605f756
    echo    'Loading Linux 2.6.32-21-generic ...'
    linux   /boot/vmlinuz-2.6.32-21-generic root=UUID=c00fadde-f7e8-45e7-a4da-0235c605f756 ro single rootdelay=90
    echo    'Loading initial ramdisk ...'
    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,1)'
    search --no-floppy --fs-uuid --set c00fadde-f7e8-45e7-a4da-0235c605f756
    linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod ext2
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set c00fadde-f7e8-45e7-a4da-0235c605f756
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
if [ ${timeout} != -1 ]; then
  if sleep --verbose --interruptible 10 ; then
    set timeout=0
  fi
fi
### 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 ###

вывод update-grub

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-21-generic
Found initrd image: /boot/initrd.img-2.6.32-21-generic
Found memtest86+ image: /boot/memtest86+.bin
done

содержимое /boot

total 14280
-rw-r--r-- 1 root root  640617 2010-04-16 09:01 abi-2.6.32-21-generic
-rw-r--r-- 1 root root  115847 2010-04-16 09:01 config-2.6.32-21-generic
drwxr-xr-x 3 root root    4096 2010-09-08 02:42 grub
-rw-r--r-- 1 root root 7968754 2010-09-02 01:49 initrd.img-2.6.32-21-generic
-rw-r--r-- 1 root root  160280 2010-03-23 05:37 memtest86+.bin
-rw-r--r-- 1 root root 1687378 2010-04-16 09:01 System.map-2.6.32-21-generic
-rw-r--r-- 1 root root    1196 2010-04-16 09:03 vmcoreinfo-2.6.32-21-generic
-rw-r--r-- 1 root root 4029792 2010-04-16 09:01 vmlinuz-2.6.32-21-generic

2 ответа2

2

Так что у меня Ubuntu 9.04, возможно, это будет достаточно близко, чтобы сравнить.

Строки в /boot/grub/menu.lst

title           Ubuntu 9.04, kernel 2.6.28-16-server

uuid            a0ebaed5-072b-4591-9967-bcf4b5f9a507

kernel          /boot/vmlinuz-2.6.28-16-server root=UUID=a0ebaed5-072b-4591-9967-bcf4b5f9a507 ro quiet splash

initrd          /boot/initrd.img-2.6.28-16-server

У вас есть строки в этом файле, чтобы указать на изображение? Они указывают на правильное изображение?

1

Наиболее вероятный ответ с учетом исходных данных:

Ваш /boot/grub/grub.cfg поврежден. Он генерируется командой update-grub , поэтому сначала попробуйте выполнить эту команду. Обратите внимание, что вы должны перезапускать update-grub каждый раз, когда вы изменяете /etc/default/grub , как указано в комментарии вверху файла. Вы должны перезапускать update-grub каждый раз, когда вы устанавливаете, обновляете или удаляете также и ядро, но пакеты Ubuntu позаботятся об этом за вас.

Если запуск update-grub не решает проблему, отредактируйте ваш вопрос, добавив: содержимое /boot/grub/grub.cfg ; полный вывод update-grub на терминал; вывод команды ls -l /boot .

РЕДАКТИРОВАТЬ: я попробовал опубликованный grub.cfg на аналогичной конфигурации, и он работал. Так что это не проблема.


Очень дикий выстрел: может ли быть непечатный символ в grub.cfg (скопированный из /etc/default/grub скриптами)? Следующая команда не должна ничего выводить:

<cheshirekow.grub.cfg tr '\t' ' ' | LC_ALL=C grep '[^ -~]' | cat -A

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .