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