Bug#478254: grub-pc: grub-probe and grub don't agree on (hd#) numbering
yzhh
yezonghui at gmail.com
Mon Apr 28 11:35:52 UTC 2008
Package: grub-pc
Version: 1.96+20080413-1
Severity: critical
Justification: breaks the whole system
As shown in the /proc/mounts bellow, my machine has 2 hard disks: one
SATA disk /dev/sda and one IDE disk /dev/hda.
While update-grub generates (hd1) for /dev/sda and (hd0) for /dev/hda
grub.cfg, grub will only work when I manually exchange (hd1) and (hd0)
in that file. And the names (hd#) is actually given by the output of
grub-probe.
So I have the conclusion that grub-probe and grub use different criteria
to assign numbers to hard disks, which results in conflict ordering of
(hd#) numbering for my machine.
My hardware: Intel E2140 on Gigabyte 945G (I don't remember very clear
whether it is 945G or 945). In the BIOS I have to firstly set boot
ordering of harddisk/cdrom/floppy then set ordering of the 2 disks, and
grub respects this setting (sees the first one listed here as hd0). At
the time of reporting the SATA disk (/dev/sda) is set as the first
one.
PS, the grub.cfg included here is one that I have made the exchange of
(hd0) and (hd1). Exchange them back and you get the generated version.
-- Package-specific info:
*********************** BEGIN /proc/mounts
/dev/sda5 / ext3 rw,data=ordered 0 0
/dev/sda5 /dev/.static/dev ext3 rw,data=ordered 0 0
/dev/hda6 /mnt/winE vfat rw,fmask=0000,dmask=0000,codepage=cp437,iocharset=cp936 0 0
/dev/hda7 /mnt/oldroot ext3 rw,data=ordered 0 0
/dev/sda1 /mnt/sda1 vfat rw,fmask=0000,dmask=0000,codepage=cp437,iocharset=cp936 0 0
/dev/sda6 /home ext3 rw,data=ordered 0 0
/dev/sda7 /mnt/sda7 vfat rw,fmask=0000,dmask=0000,codepage=cp437,iocharset=cp936 0 0
*********************** END /proc/mounts
*********************** BEGIN /boot/grub/device.map
(hd0) /dev/hda
(hd1) /dev/sda
*********************** END /boot/grub/device.map
*********************** BEGIN /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/update-grub using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set default=0
set timeout=5
set root=(hd0,5)
if font (hd0,5)/usr/share/grub/unicode.pff ; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
terminal gfxterm
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_hurd ###
### END /etc/grub.d/10_hurd ###
### BEGIN /etc/grub.d/10_linux ###
menuentry "Debian GNU/Linux, linux 2.6.24-1-686" {
linux (hd0,5)/boot/vmlinuz-2.6.24-1-686 root=/dev/sda5 ro
initrd (hd0,5)/boot/initrd.img-2.6.24-1-686
}
menuentry "Debian GNU/Linux, linux 2.6.24-1-686 (single-user mode)" {
linux (hd0,5)/boot/vmlinuz-2.6.24-1-686 root=/dev/sda5 ro single
initrd (hd0,5)/boot/initrd.img-2.6.24-1-686
}
menuentry "Debian GNU/Linux, linux 2.6.22-3-686" {
linux (hd0,5)/boot/vmlinuz-2.6.22-3-686 root=/dev/sda5 ro
initrd (hd0,5)/boot/initrd.img-2.6.22-3-686
}
menuentry "Debian GNU/Linux, linux 2.6.22-3-686 (single-user mode)" {
linux (hd0,5)/boot/vmlinuz-2.6.22-3-686 root=/dev/sda5 ro single
initrd (hd0,5)/boot/initrd.img-2.6.22-3-686
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional (on /dev/hda1)" {
set root=(hd1,1)
chainloader +1
}
menuentry "Debian GNU/Linux, kernel 2.6.22-2-686 (on /dev/hda7)" {
set root=(hd1,7)
linux /boot/vmlinuz-2.6.22-2-686 root=/dev/hda7 ro
initrd /boot/initrd.img-2.6.22-2-686
}
menuentry "Debian GNU/Linux, kernel 2.6.22-2-686 (recovery mode) (on /dev/hda7)" {
set root=(hd1,7)
linux /boot/vmlinuz-2.6.22-2-686 root=/dev/hda7 ro single
initrd /boot/initrd.img-2.6.22-2-686
}
menuentry "Debian GNU/Linux, kernel 2.6.21-2-686 (on /dev/hda7)" {
set root=(hd1,7)
linux /boot/vmlinuz-2.6.21-2-686 root=/dev/hda7 ro
initrd /boot/initrd.img-2.6.21-2-686
}
menuentry "Debian GNU/Linux, kernel 2.6.21-2-686 (recovery mode) (on /dev/hda7)" {
set root=(hd1,7)
linux /boot/vmlinuz-2.6.21-2-686 root=/dev/hda7 ro single
initrd /boot/initrd.img-2.6.21-2-686
}
menuentry "Debian GNU/Linux, kernel 2.6.21-2-686 (resume from disk) (on /dev/hda7)" {
set root=(hd1,7)
linux /boot/vmlinuz-2.6.21-2-686 root=/dev/hda7 ro resume=/dev/hda8
initrd /boot/initrd.img-2.6.21-2-686
}
### END /etc/grub.d/30_os-prober ###
*********************** END /boot/grub/grub.cfg
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (1100, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.24-1-686 (SMP w/2 CPU cores)
Locale: LANG=zh_CN, LC_CTYPE=zh_CN (charmap=GB2312)
Shell: /bin/sh linked to /bin/bash
Versions of packages grub-pc depends on:
ii debconf [debconf-2.0] 1.5.20 Debian configuration management sy
ii grub-common 1.96+20080413-1 GRand Unified Bootloader, version
ii libc6 2.7-10 GNU C Library: Shared libraries
ii liblzo1 1.08-3 data compression library (old vers
ii libncurses5 5.6+20080308-1 Shared libraries for terminal hand
Versions of packages grub-pc recommends:
ii os-prober 1.24 utility to detect other OSes on a
-- debconf information:
* grub-pc/linux_cmdline:
* grub-pc/chainload_from_menu.lst: true
More information about the Pkg-grub-devel
mailing list