如何确保 grub 确实使用 menu.lst?

如何确保 grub 确实使用 menu.lst?

在我的 Ubuntu 9.04(“Karmic”)笔记本电脑上,我怀疑 grub 没有使用 /boot/grub/menu.lst 文件。

启动时,我看到一个空白屏幕,什么也没有发生。当我按 ESC 键时,我看到的启动列表与 menu.lst 文件中的内容不同。菜单行不同,当我选择第一个条目时,它不使用 menu.lst 中第一个条目中的内核选项。

grub 使用的条目来自哪里?我如何才能知道发生了什么,有日志吗?我在 /var/log/syslog 或 /var/log/dmesg 中找不到有关 grub 使用 menu.lst 的任何信息。

我该如何设置它才能像预期的那样工作?一些文件:

$ sudo ls -la /boot/grub/*lst
-rw-r--r-- 1 root root 1558 2009-12-12 15:25 /boot/grub/command.lst
-rw-r--r-- 1 root root  121 2009-12-12 15:25 /boot/grub/fs.lst
-rw-r--r-- 1 root root  272 2009-12-12 15:25 /boot/grub/handler.lst
-rw-r--r-- 1 root root 4576 2010-03-19 11:26 /boot/grub/menu.lst
-rw-r--r-- 1 root root 1657 2009-12-12 15:25 /boot/grub/moddep.lst
-rw-r--r-- 1 root root   62 2009-12-12 15:25 /boot/grub/partmap.lst
-rw-r--r-- 1 root root   22 2009-12-12 15:25 /boot/grub/parttool.lst

$ sudo ls -la /vm*
lrwxrwxrwx 1 root root 30 2009-12-12 16:15 /vmlinuz -> boot/vmlinuz-2.6.31-16-generic
lrwxrwxrwx 1 root root 30 2009-12-12 14:07 /vmlinuz.old -> boot/vmlinuz-2.6.31-14-generic

$ sudo ls -la /init*
lrwxrwxrwx 1 root root 33 2009-12-12 16:15 /initrd.img -> boot/initrd.img-2.6.31-16-generic
lrwxrwxrwx 1 root root 33 2009-12-12 14:07 /initrd.img.old -> boot/initrd.img-2.6.31-14-generic

我发现的唯一的 menu.lst:

$ sudo find / -name "menu.lst"
/boot/grub/menu.lst
$ sudo cat  /boot/grub/menu.lst

# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not use 'savedefault' or your
# array will desync and will not let you boot your system.
default  0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout  3

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

# Pretty colours
color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret


# examples
#
# title  Windows 95/98/NT/2000
# root  (hd0,0)
# makeactive
# chainloader +1
#
# title  Linux
# root  (hd0,1)
# kernel /vmlinuz root=/dev/hda2 ro



# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below
## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=9b454298-18e1-43f7-a5bc-f56e7ed5f9c6 ro noresume

## default grub root device
## e.g. groot=(hd0,0)
# groot=70fcd2b0-0ee0-4fe6-9acb-322ef74c1cdf

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
## defoptions=quiet splash
# defoptions=apm=on acpi=off

## should update-grub lock old automagic boot options
## e.g. lockold=false
##      lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(recovery) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## specify if running in Xen domU or have grub detect automatically
## update-grub will ignore non-xen kernels when running in domU and vice versa
## e.g. indomU=detect
##      indomU=true
##      indomU=false
# indomU=detect

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

title  Ubuntu 9.10, kernel 2.6.31-14-generic noresume
uuid  70fcd2b0-0ee0-4fe6-9acb-322ef74c1cdf
kernel  /vmlinuz-2.6.31-14-generic root=UUID=9b454298-18e1-43f7-a5bc-f56e7ed5f9c6 ro quiet
 splash apm=on acpi=off noresume 
initrd  /initrd.img-2.6.31-14-generic

title  Ubuntu 9.10, kernel 2.6.31-14-generic (recovery mode)
uuid  70fcd2b0-0ee0-4fe6-9acb-322ef74c1cdf
kernel  /vmlinuz-2.6.31-14-generic root=UUID=9b454298-18e1-43f7-a5bc-f56e7ed5f9c6 ro  sing
le
initrd  /initrd.img-2.6.31-14-generic

title  Ubuntu 9.10, memtest86+
uuid  70fcd2b0-0ee0-4fe6-9acb-322ef74c1cdf
kernel  /memtest86+.bin

### END DEBIAN AUTOMAGIC KERNELS LIST

这些是我按下 ESC 键后 grub 显示的选项:

Ubuntu, Linux 2-6-31-16-generic
Ubuntu, Linux 2-6-31-16-generic (recovery mode)
Ubuntu, Linux 2-6-31-14-generic
Ubuntu, Linux 2-6-31-14-generic (recovery mode)
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)

答案1

Ubuntu 9.10 “Karmic” 默认使用 Grub2,它才不是使用/boot/grub/菜单.lst. 相反,Karmic 的 Grub2 使用/boot/grub/grub.cfg,它是从位于的脚本生成的/etc/grub.d并设置变量/etc/默认/grub

在我看来,您的系统是从较早的 Ubuntu(9.04/Jaunty 或更早版本)升级而来的,该版本使用 Grub1。您的/boot/grub/菜单.lst文件是升级过程的残留。

相关内容