Bug#583271: grub-pc: squeeze install gives broken device.map rendering grub-install useless

sean finney seanius at debian.org
Wed May 26 18:10:01 UTC 2010


Package: grub-pc
Version: 1.98-1
Severity: important

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

okay, while looking into #574863 i installed a fresh system in a kvm
instance, and while the installer happily delivers a system with
both / and /boot under an lvm partition, subsequently running grub-install
on the new system fails:

root at debian:~# grub-install '(hd0)'
/usr/sbin/grub-probe: error: no mapping exists for `vg0-root'.
Auto-detection of a filesystem module failed.
Please specify the module with the option `--modules' explicitly.
root at debian:~# grub-install /dev/sda
/usr/sbin/grub-probe: error: no mapping exists for `vg0-root'.
Auto-detection of a filesystem module failed.
Please specify the module with the option `--modules' explicitly.

root at debian:~# grub-install --modules="lvm ext2" '(hd0)'
/usr/sbin/grub-probe: error: no mapping exists for `vg0-root'.
/usr/sbin/grub-probe: error: no mapping exists for `vg0-root'.
/usr/sbin/grub-probe: error: no mapping exists for `vg0-root'.
You attempted a cross-disk install, but the filesystem containing /boot/grub does not support UUIDs.

the strange thing is that the when the bootloader was installed via the
installer no errors were detected.  from the installer syslog:

May 26 17:24:46 grub-installer: info: Installing grub on '(hd0)'
May 26 17:24:46 grub-installer: info: grub-install supports --no-floppy
May 26 17:24:46 grub-installer: info: Running chroot /target grub-install  --no-floppy --force "(hd0)"
May 26 17:24:47 grub-installer: Installation finished. No error reported.
May 26 17:24:47 grub-installer: info: grub-install ran successfully

but now on the system in question:

root at debian:~# grub-install  --no-floppy --force "(hd0)"
/usr/sbin/grub-probe: error: no mapping exists for `vg0-root'.
Auto-detection of a filesystem module failed.
Please specify the module with the option `--modules' explicitly.

it looks like the generated devices.map has an incorrect entry:

	(hd0)	/dev/sda

but on the freshly installed squeeze system is actually /dev/hda.  replacing
this seems to solve the problem, but then doing a dist-upgrade to sid
(which brings in 2.6.32-5) results in the device being renamed to sda,
requiring us to change the device.map back again (after rebooting, but
not before!).

otherwise grub-probe/grub-install will not work and doing a dist-upgrade
or otherwise installing a new kernel will likely result in an unbootable
system.  it may be worth noting that #554790 could possibly fix this if it
is ever applied, but the fact that a fresh system is delivered broken
warrants (imho anyway) a seperate bug.  i debated with myself the severity
this should receive... originally i was going to file with critical but
am now tending towards important, giving the maintainer (assuming *someone*
is still maintaining this... Colin maybe?) or release team the perogative
to upgrade it if they see it fit to do so.

as a side note i have a number of throw-away test systems that I can use to
test this, please let me know if i can be of service.


	sean


- -- Package-specific info:

*********************** BEGIN /proc/mounts
rootfs / rootfs rw 0 0
none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
none /proc proc rw,nosuid,nodev,noexec,relatime 0 0
none /dev devtmpfs rw,relatime,size=253188k,nr_inodes=63297,mode=755 0 0
none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
/dev/mapper/vg0-root / ext3 rw,relatime,errors=remount-ro,data=ordered 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid,relatime,mode=755 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
*********************** END /proc/mounts

*********************** BEGIN /boot/grub/device.map
(hd0)	/dev/sda
*********************** END /boot/grub/device.map

*********************** BEGIN /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
}
insmod lvm
insmod ext2
set root='(vg0-root)'
search --no-floppy --fs-uuid --set 6a312b63-9fb4-4ea1-a1dd-29a786db5cbe
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 lvm
insmod ext2
set root='(vg0-root)'
search --no-floppy --fs-uuid --set 6a312b63-9fb4-4ea1-a1dd-29a786db5cbe
set locale_dir=($root)/boot/grub/locale
set lang=C.UTF-8
insmod gettext
set timeout=5
### 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_linux ###
menuentry "Debian GNU/Linux, with Linux 2.6.32-3-486" --class debian --class gnu-linux --class gnu --class os {
	insmod lvm
	insmod ext2
	set root='(vg0-root)'
	search --no-floppy --fs-uuid --set 6a312b63-9fb4-4ea1-a1dd-29a786db5cbe
	echo	Loading Linux 2.6.32-3-486 ...
	linux	/boot/vmlinuz-2.6.32-3-486 root=/dev/mapper/vg0-root ro  quiet
	echo	Loading initial ramdisk ...
	initrd	/boot/initrd.img-2.6.32-3-486
}
menuentry "Debian GNU/Linux, with Linux 2.6.32-3-486 (recovery mode)" --class debian --class gnu-linux --class gnu --class os {
	insmod lvm
	insmod ext2
	set root='(vg0-root)'
	search --no-floppy --fs-uuid --set 6a312b63-9fb4-4ea1-a1dd-29a786db5cbe
	echo	Loading Linux 2.6.32-3-486 ...
	linux	/boot/vmlinuz-2.6.32-3-486 root=/dev/mapper/vg0-root ro single 
	echo	Loading initial ramdisk ...
	initrd	/boot/initrd.img-2.6.32-3-486
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/30_os-prober ###
### 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 ###
*********************** END /boot/grub/grub.cfg

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iD8DBQFL/WP0ynjLPm522B0RAl6fAJ4x+vWJ0CGIIg98piCSwJQZqeFx5gCfd8/5
tV/Ryhq7NUhb7v2zB80lDTM=
=g9uX
-----END PGP SIGNATURE-----





More information about the Pkg-grub-devel mailing list