Bug#585068: grub-pc: fails to boot kfreebsd with "no such partition" after upgrade from 1.98-1

Axel Beckert abe at debian.org
Tue Jun 8 20:10:42 UTC 2010


Package: grub-pc
Version: 1.98+20100602-2
Severity: grave

When I try to boot, grub doesn't seem to find its "normal" module
anymore by itself but needs a manual hint:

---snip---
GRUB loading.
Welcome to GRUB!

error: no such partition.
Entering rescue mode...
grub rescue> set prefix=(hd0,msdos1,bsd1)/boot/grub
grub rescue> insmod normal
grub rescue> normal
---snap---

Neither "grub-install /dev/ad0" nor "update-grub" nor
"grub-mkdevicemap" changed this situation.

I don't know exactly since which version this is happening, because
the box had an uptime of 77 days.

The last boot was at Tue Mar 23 12:27:43 2010 when both, testing and
unstable had version 1.98-1. So I downgraded all packages build from
the grub2 source package to 1.98-1 from testing and it worked again.

So this problem probably has been introduced after 1.98-1.

Following the diff between the grub.cfg generated by 1.98-1 ("<") and
1.98+20100602-2 (">"). One notable difference is that the newer grub
uses "(hd0,1,1)" instead of "(hd0,1,a)" to describe the root
partition. But at least "ls" on the grub 1.98+20100602-2 command line
did neither accept "(hd0,1,1)" as partition nor "(hd0,1,a)", just
"(hd0,msdos1,bsd1)" and "(hd0,1,bsd1)".

OTOH "set root='(hd0,1,1)'" from grub.cfg seems to work anyway.

---snip---
26a27,28
> insmod part_bsd
> insmod part_msdos
28c30
< set root='(hd0,1,a)'
---
> set root='(hd0,1,1)'
34,38d35
<   if terminal_output gfxterm ; then true ; else
<     # For backward compatibility with versions of terminal.mod that don't
<     # understand terminal_output
<     terminal gfxterm
<   fi
39a37,49
> if terminal_output gfxterm ; then true ; else
>   # For backward compatibility with versions of terminal.mod that don't
>   # understand terminal_output
>   terminal gfxterm
> fi
> insmod part_bsd
> insmod part_msdos
> insmod ufs2
> set root='(hd0,1,1)'
> search --no-floppy --fs-uuid --set 49c265649d15ddd7
> set locale_dir=($root)/boot/grub/locale
> set lang=en
> insmod gettext
43a54,55
> insmod part_bsd
> insmod part_msdos
45c57
< set root='(hd0,1,a)'
---
> set root='(hd0,1,1)'
58c70,72
< menuentry "Debian GNU/kFreeBSD, with kFreeBSD 8.0-1-686-smp" --class debian --class gnu-kfreebsd --class gnu --class os {
---
> menuentry 'Debian GNU/kFreeBSD, with kFreeBSD 8.0-1-686-smp' --class debian --class gnu-kfreebsd --class gnu --class os {
> 	insmod part_bsd
> 	insmod part_msdos
60c74
< 	set root='(hd0,1,a)'
---
> 	set root='(hd0,1,1)'
62c76
< 	echo			Loading kernel of FreeBSD 8.0-1-686-smp ...
---
> 	echo			'Loading kernel of FreeBSD 8.0-1-686-smp ...'
67c81,83
< menuentry "Debian GNU/kFreeBSD, with kFreeBSD 7.3-1-686-smp" --class debian --class gnu-kfreebsd --class gnu --class os {
---
> menuentry 'Debian GNU/kFreeBSD, with kFreeBSD 7.3-1-686-smp' --class debian --class gnu-kfreebsd --class gnu --class os {
> 	insmod part_bsd
> 	insmod part_msdos
69c85
< 	set root='(hd0,1,a)'
---
> 	set root='(hd0,1,1)'
71c87
< 	echo			Loading kernel of FreeBSD 7.3-1-686-smp ...
---
> 	echo			'Loading kernel of FreeBSD 7.3-1-686-smp ...'
77c93,95
< menuentry "Debian GNU/kFreeBSD, with kFreeBSD 7.2-1-686-smp" --class debian --class gnu-kfreebsd --class gnu --class os {
---
> menuentry 'Debian GNU/kFreeBSD, with kFreeBSD 7.2-1-686-smp' --class debian --class gnu-kfreebsd --class gnu --class os {
> 	insmod part_bsd
> 	insmod part_msdos
79c97
< 	set root='(hd0,1,a)'
---
> 	set root='(hd0,1,1)'
81c99
< 	echo			Loading kernel of FreeBSD 7.2-1-686-smp ...
---
> 	echo			'Loading kernel of FreeBSD 7.2-1-686-smp ...'
96a115,116
> 	insmod part_bsd
> 	insmod part_msdos
98c118
< 	set root='(hd0,1,a)'
---
> 	set root='(hd0,1,1)'
102a123,124
> 	insmod part_bsd
> 	insmod part_msdos
104c126
< 	set root='(hd0,1,a)'
---
> 	set root='(hd0,1,1)'
111a134,135
> 	insmod part_bsd
> 	insmod part_msdos
113c137
< 	set root='(hd0,1,a)'
---
> 	set root='(hd0,1,1)'
---snap---

-- Package-specific info:

*********************** BEGIN /proc/mounts
/dev/ad0s1a / ufs rw 0 0
*********************** END /proc/mounts

*********************** BEGIN /boot/grub/device.map
(hd0)	/dev/ad0
*********************** 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 part_bsd
insmod part_msdos
insmod ufs2
set root='(hd0,1,1)'
search --no-floppy --fs-uuid --set 49c265649d15ddd7
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
fi
if terminal_output gfxterm ; then true ; else
  # For backward compatibility with versions of terminal.mod that don't
  # understand terminal_output
  terminal gfxterm
fi
insmod part_bsd
insmod part_msdos
insmod ufs2
set root='(hd0,1,1)'
search --no-floppy --fs-uuid --set 49c265649d15ddd7
set locale_dir=($root)/boot/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_bsd
insmod part_msdos
insmod ufs2
set root='(hd0,1,1)'
search --no-floppy --fs-uuid --set 49c265649d15ddd7
insmod png
if background_image /boot/grub/moreblue-orbit-grub.png ; then
  set color_normal=black/black
  set color_highlight=magenta/black
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_kfreebsd ###
menuentry 'Debian GNU/kFreeBSD, with kFreeBSD 8.0-1-686-smp' --class debian --class gnu-kfreebsd --class gnu --class os {
	insmod part_bsd
	insmod part_msdos
	insmod ufs2
	set root='(hd0,1,1)'
	search --no-floppy --fs-uuid --set 49c265649d15ddd7
	echo			'Loading kernel of FreeBSD 8.0-1-686-smp ...'
	kfreebsd		/boot/kfreebsd-8.0-1-686-smp.gz
	set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ad0s1a
	set kFreeBSD.vfs.root.mountfrom.options=rw
}
menuentry 'Debian GNU/kFreeBSD, with kFreeBSD 7.3-1-686-smp' --class debian --class gnu-kfreebsd --class gnu --class os {
	insmod part_bsd
	insmod part_msdos
	insmod ufs2
	set root='(hd0,1,1)'
	search --no-floppy --fs-uuid --set 49c265649d15ddd7
	echo			'Loading kernel of FreeBSD 7.3-1-686-smp ...'
	kfreebsd		/boot/kfreebsd-7.3-1-686-smp.gz
	kfreebsd_module_elf	/lib/modules/7.3-1-686-smp/acpi.ko
	set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ad0s1a
	set kFreeBSD.vfs.root.mountfrom.options=rw
}
menuentry 'Debian GNU/kFreeBSD, with kFreeBSD 7.2-1-686-smp' --class debian --class gnu-kfreebsd --class gnu --class os {
	insmod part_bsd
	insmod part_msdos
	insmod ufs2
	set root='(hd0,1,1)'
	search --no-floppy --fs-uuid --set 49c265649d15ddd7
	echo			'Loading kernel of FreeBSD 7.2-1-686-smp ...'
	kfreebsd		/boot/kfreebsd-7.2-1-686-smp.gz
	kfreebsd_module_elf	/lib/modules/7.2-1-686-smp/acpi.ko
	set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ad0s1a
	set kFreeBSD.vfs.root.mountfrom.options=rw
}
### END /etc/grub.d/10_kfreebsd ###

### BEGIN /etc/grub.d/20_memtest86 ###
menuentry "Memory test (memtest86)" {
	linux16	/boot/memtest86.bin
}
### END /etc/grub.d/20_memtest86 ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod part_bsd
	insmod part_msdos
	insmod ufs2
	set root='(hd0,1,1)'
	search --no-floppy --fs-uuid --set 49c265649d15ddd7
	multiboot	/boot/memtest86+_multiboot.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod part_bsd
	insmod part_msdos
	insmod ufs2
	set root='(hd0,1,1)'
	search --no-floppy --fs-uuid --set 49c265649d15ddd7
	multiboot	/boot/memtest86+_multiboot.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/22_invaders ###
menuentry "GRUB Invaders" {
	insmod part_bsd
	insmod part_msdos
	insmod ufs2
	set root='(hd0,1,1)'
	search --no-floppy --fs-uuid --set 49c265649d15ddd7
	multiboot	/boot/invaders.exec
}
### END /etc/grub.d/22_invaders ###

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

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (600, 'testing'), (110, 'experimental')
Architecture: kfreebsd-i386 (i686)

Kernel: kFreeBSD 8.0-1-686-smp
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages grub-pc depends on:
ii  cdebconf [debconf-2.0]   0.149           Debian Configuration Management Sy
ii  debconf [debconf-2.0]    1.5.32          Debian configuration management sy
ii  grub-common              1.98+20100602-2 GRand Unified Bootloader, version 
ii  libc0.1                  2.11.1-2        Embedded GNU C Library: Shared lib
ii  ucf                      3.0025          Update Configuration File: preserv

grub-pc recommends no packages.

Versions of packages grub-pc suggests:
ii  desktop-base                  5.0.5      common files for the Debian Deskto

-- Configuration Files:
/etc/default/grub changed:
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""


-- debconf information:
  grub2/kfreebsd_cmdline:
  grub-pc/linux_cmdline: fillme
* grub2/linux_cmdline:
  grub-pc/chainload_from_menu.lst: true
  grub-pc/kopt_extracted: false
* grub-pc/install_devices: /dev/ad0
  grub-pc/postrm_purge_boot_grub: false
  grub2/kfreebsd_cmdline_default: quiet
* grub2/linux_cmdline_default: quiet





More information about the Pkg-grub-devel mailing list