/boot/grub 下没有 menu.lst,12.04 服务器无法启动

/boot/grub 下没有 menu.lst,12.04 服务器无法启动

新安装的 12.04.3 服务器与之前有同样的问题。问题是服务器无法自行启动。有时它会进入空白状态,再也不出来。有时它会显示启动菜单并在 Attached SCSI drive 后挂起。在这种情况下,我们只需输入“exit”即可进入登录提示。问题类似于下面的帖子:

http://askubuntu.com/questions/109500/boot-issues-long-delay-then-gave-up-waiting-for-root-device

我们发现在 /boot/grub 下没有 menu.lst。在 /boot/grub 下没有 menu.lst 正常吗?如果这是问题,如何解决?谢谢。

===grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by 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
  set have_grubenv=true
  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
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root e17df6f9-8d08-4d85-be32-4049ad596c4e
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos1)'
  search --no-floppy --fs-uuid --set=root e17df6f9-8d08-4d85-be32-4049ad596c4e
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=2
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 ###
function gfxmode {
        set gfxpayload="${1}"
        if [ "${1}" = "keep" ]; then
                set vt_handoff=vt.handoff=7
        else
                set vt_handoff=
        fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.8.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        gfxmode $linux_gfx_mode
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root e17df6f9-8d08-4d85-be32-4049ad596c4e
        linux   /boot/vmlinuz-3.8.0-29-generic root=UUID=e17df6f9-8d08-4d85-be32-4049ad596c4e ro
        initrd  /boot/initrd.img-3.8.0-29-generic
}
menuentry 'Ubuntu, with Linux 3.8.0-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root e17df6f9-8d08-4d85-be32-4049ad596c4e
        echo    'Loading Linux 3.8.0-29-generic ...'
        linux   /boot/vmlinuz-3.8.0-29-generic root=UUID=e17df6f9-8d08-4d85-be32-4049ad596c4e ro recovery nomodeset
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-3.8.0-29-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root e17df6f9-8d08-4d85-be32-4049ad596c4e
        linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root e17df6f9-8d08-4d85-be32-4049ad596c4e
        linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### 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 ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

答案1

grub2 不再有 menu.lst。您已经找到了生成的配置文件 /boot/grub/grub.cfg,但不应编辑此文件。要更改菜单项,请编辑 /etc/grub.d/ 中的文件。update-grub 按字母顺序读取那里的文件以创建 grub.cfg。自定义条目应转到40_custom。请参阅目录中的 README 文件。

对于您的问题,我建议尝试不同的启动选项来禁用某些或所有 acpi/apic 功能。您可以将它们添加到 /etc/default/grub 中的 GRUB_CMDLINE_LINUX="..." 行。
您可以在此处找到常用的内核选项:引导选项/通用内核选项
之后别忘了跑步sudo update-grub

答案2

解决问题的方法是将“nomodeset”添加到 /etc/default/grub 中的 GRUB_CMDLINE_LINUX_DEFAULT:

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"

现在服务器启动了。

相关内容