После перезагрузки сервера загружается запрос grub

Сервер Ubuntu 10.04.4 LTS Не установлены другие операционные системы Аппаратный RAID (3Ware 9650SE) Единый раздел (/ dev / sda2) плюс своп (/ dev / sda3) Версия Grub: GNU GRUB 1.98-1ubuntu13

После применения последнего обновления ядра сервер всегда загружается в приглашение grub после перезагрузки. Нет загрузочного меню или сообщения об ошибке - просто приглашение grub >. Я могу загрузить систему следующим образом:

set root=(hd0,2)
linux /vmlinuz root=/dev/sda2 ro
initrd /initrd.img
boot

Как только все закончится, я попытался сделать update-grub, но проблема не исчезнет. Я также пытался grub-install --recheck /dev/sda, но это также не помогает.

По какой-то причине он всегда загружается в приглашение grub.

My /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,2)'
search --no-floppy --fs-uuid --set 1044722d-a8c7-4983-b6a4-f9faa3d4e79f
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,2)'
search --no-floppy --fs-uuid --set 1044722d-a8c7-4983-b6a4-f9faa3d4e79f
set locale_dir=($root)/boot/grub/locale
set lang=en
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, with Linux 2.6.32-40-server' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 1044722d-a8c7-4983-b6a4-f9faa3d4e79f
    linux   /boot/vmlinuz-2.6.32-40-server root=UUID=1044722d-a8c7-4983-b6a4-f9faa3d4e79f ro   quiet
    initrd  /boot/initrd.img-2.6.32-40-server
}
menuentry 'Ubuntu, with Linux 2.6.32-40-server (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 1044722d-a8c7-4983-b6a4-f9faa3d4e79f
    echo    'Loading Linux 2.6.32-40-server ...'
    linux   /boot/vmlinuz-2.6.32-40-server root=UUID=1044722d-a8c7-4983-b6a4-f9faa3d4e79f ro single 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-2.6.32-40-server
}
menuentry 'Ubuntu, with Linux 2.6.32-33-server' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 1044722d-a8c7-4983-b6a4-f9faa3d4e79f
    linux   /boot/vmlinuz-2.6.32-33-server root=UUID=1044722d-a8c7-4983-b6a4-f9faa3d4e79f ro   quiet
    initrd  /boot/initrd.img-2.6.32-33-server
}
menuentry 'Ubuntu, with Linux 2.6.32-33-server (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 1044722d-a8c7-4983-b6a4-f9faa3d4e79f
    echo    'Loading Linux 2.6.32-33-server ...'
    linux   /boot/vmlinuz-2.6.32-33-server root=UUID=1044722d-a8c7-4983-b6a4-f9faa3d4e79f ro single 
    echo    'Loading initial ramdisk ...'
    initrd  /boot/initrd.img-2.6.32-33-server
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod ext2
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 1044722d-a8c7-4983-b6a4-f9faa3d4e79f
    linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod ext2
    set root='(hd0,2)'
    search --no-floppy --fs-uuid --set 1044722d-a8c7-4983-b6a4-f9faa3d4e79f
    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 keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep --interruptible 3 ; then
      set timeout=0
    fi
  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 ###

Я не умею редактировал файлы в файле /etc/grub.d или /etc/default/grub.

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

Кроме того, я хотел бы, чтобы это не произошло, если возможно, обновление ядра ядра.

Наконец; сервер живет в удаленном центре обработки данных - у меня есть удаленный доступ к KVM, но получить его для загрузки с живого компакт-диска будет сложно, поэтому любые решения, которые не включают в себя, являются предпочтительными. : -)

4
задан 11 April 2012 в 18:26

3 ответа

Я понял это сейчас.

Решение здесь сделало это для меня: https://serverfault.com/questions/243343/headless-ubuntu-server-machine-sometimes-stuck -at-grub-menu

Я изменил свой /etc/grub.d/00_header и отредактировал секцию записи:

if [ \${recordfail} = 1 ]; then set timeout=${GRUB_TIMEOUT} else set timeout=${GRUB_TIMEOUT} fi EOF

Ran sudo update-grub, перезагрузился и загрузился прямо в Ubuntu. Yipee!

5
ответ дан 25 May 2018 в 12:47

Из https://serverfault.com/a/482020/158759:

Для Ubuntu 12.04 LTS существует конкретная опция, которая может быть установлена ​​в /etc/default/grub.

Например, если вы хотите иметь 2-секундный тайм-аут (чтобы избежать зависаний при автоматической перезагрузке), просто добавьте следующую строку в /etc/default/grub:

GRUB_RECORDFAIL_TIMEOUT=2

Не забудьте запустить update-grub после этого ...

1
ответ дан 25 May 2018 в 12:47

Я только что обновил сервер от Ubuntu 10.04 до 12.04, и решение (а также несколько других, посыпанных интернетом) не работало для меня вообще. Я всегда возвращался в меню grub> при перезагрузке.

Наконец, однако, у меня все получилось. Мне пришлось сделать две вещи:

sudo apt-get install grub2 
sudo grub-install /dev/sda

Я установил grub2, потому что dpkg -l | grep grub ничего не показывал, кроме grub2-common - ему не хватало компонентов grub2, которые были возвращены apt-cache search grub. Возможно, это было необязательно, но на основе отчетов об ошибках и обходных решений, которые я видел, я отправил установленный пакет grub2 из обновленных системных репозиториев 12.04.

Для grub-install я выбрал диск Я загружался (это можно найти, например, с помощью fdisk -l или df). Номер раздела не нужен (т. Е. Я выбрал диск sda вместо диска + раздела sda1).

Я не запускал grub-update; это немедленно сработало при перезагрузке.

Чтобы запустить команды, мне пришлось загрузиться в мою систему с небольшими отклонениями от примера OP:

Предполагая / dev / sda1 как цель:

grub>
root (hd0,1)  # "1" matches the partition number
linux /vmlinuz root=/dev/sda1 ro  #again, modify for the drive/partition 
initrd /initrd.img
boot

Автозаполнение меню grub было полезно для этих опций. Я не думаю, что это позволит вам указать несуществующий раздел с директивой root, например.

0
ответ дан 25 May 2018 в 12:47
  • 1
    Это может быть полезно - любые другие проблемы с обновлением до 12.04? – Darren Greaves 27 April 2012 в 13:56
  • 2
    @DarrenGreaves Нет других проблем. После получения набора grub все остальное - мой пользовательский LDAP, PAM и т. Д. - работает без изменений. – belacqua 28 April 2012 в 03:25
  • 3
    Разве это не должно быть set root=(hd0,1) в grub2? – T. Verron 23 May 2012 в 12:00
  • 4
    @ T.Verron Основываясь на других документах, я понимаю, почему вы спрашиваете, но он работал как напечатанный в моем примере (12.04 / grub2). – belacqua 23 May 2012 в 19:54

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

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