Bug#555394: os-prober: fails both sides of a Linux/kFreeBSD dual-boot
Package: os-prober
Version: 1.35
Severity: normal
My Squeeze testbed system dual-boots Debian GNU/Linux and Debian
GNU/kFreeBSD (installed from an October debian-installer netinst
daily image). On both OSes, os-prober is pulled in by grub2, but
fails to live up to its documentation (by which of course I mean the
package description).
The partition layout is just:
/dev/hda1 AKA ad0s1 (ext3) = i386 system
/dev/hda2 AKA ad0s2 (ufs2) = kfreebsd-i386 system
/dev/hda3 AKA ad0s3 (vfat) = unused "data partition"
/dev/hda4 AKA ad0s4 (swap) = swap partition
On the Linux side (running either 2.6.30-2-486 or a kernel-packaged
2.6.31.custom), "sudo os-prober" outputs nothing - unless I first
mount the partition that has the GNU/kFreeBSD system on it, in which
case it misidentifies it:
/dev/hda2:Debian GNU/Linux (squeeze/sid):Debian:linux
As a result, /etc/grub.d/30_os-prober either silently fails to
detect anything, or outputs:
Found Debian GNU/Linux (squeeze/sid) on /dev/hda2
Either way it does nothing to the generated grub.cfg. I might guess
that this is because "linux-boot-prober /dev/hda2" finds nothing,
but then again nor does "linux-boot-prober /dev/hda1".
No, wait, my mistake: update-grub also outputs copious "debug"
output to syslog. That looks like a recently-added grub2 bug, but
here's a copy of the output anyway:
Nov 9 12:00:07 xan 10freedos: debug: /dev/hda3 is a FAT32 partition
Nov 9 12:00:07 xan 10qnx: debug: /dev/hda3 is not a QNX4 partition: exiting
Nov 9 12:00:07 xan 20microsoft: debug: /dev/hda3 is a FAT32 partition
Nov 9 12:00:07 xan kernel:
Nov 9 12:00:07 xan kernel: >>>WARNING<<< Wrong ufstype may corrupt your filesystem, default is ufstype=old
Nov 9 12:00:07 xan kernel: You didn't specify the type of your ufs filesystem
Nov 9 12:00:07 xan kernel: mount -t ufs -o ufstype=sun|sunx86|44bsd|ufs2|5xbsd|old|hp|nextstep|nextstep-cd|openstep ...
Nov 9 12:00:07 xan kernel: ufs_read_super: bad magic number
Nov 9 12:00:07 xan macosx-prober: debug: /dev/hda3 is not an HFS+ partition: exiting
Nov 9 12:00:07 xan os-prober: debug: running /usr/lib/os-probes/50mounted-tests on /dev/hda1
Nov 9 12:00:07 xan os-prober: debug: running /usr/lib/os-probes/50mounted-tests on /dev/hda2
Nov 9 12:00:07 xan os-prober: debug: running /usr/lib/os-probes/mounted/10freedos on mounted /dev/hda3
Nov 9 12:00:07 xan os-prober: debug: running /usr/lib/os-probes/mounted/10qnx on mounted /dev/hda3
Nov 9 12:00:07 xan os-prober: debug: running /usr/lib/os-probes/mounted/20macosx on mounted /dev/hda3
Nov 9 12:00:07 xan os-prober: debug: running /usr/lib/os-probes/mounted/20microsoft on mounted /dev/hda3
Nov 9 12:00:07 xan os-prober: debug: running /usr/lib/os-probes/mounted/30utility on mounted /dev/hda3
Nov 9 12:00:08 xan 30utility: debug: /dev/hda3 is a FAT32 partition
Nov 9 12:00:08 xan 50mounted-tests: debug: /dev/hda4 is a swap partition; skipping
Nov 9 12:00:08 xan os-prober: debug: os detected by /usr/lib/os-probes/50mounted-tests
Nov 9 12:00:08 xan os-prober: debug: running /usr/lib/os-probes/50mounted-tests on /dev/hda4
Nov 9 12:00:08 xan os-prober: debug: running /usr/lib/os-probes/mounted/40lsb on mounted /dev/hda3
Nov 9 12:00:08 xan os-prober: debug: running /usr/lib/os-probes/mounted/70hurd on mounted /dev/hda3
Nov 9 12:00:08 xan os-prober: debug: running /usr/lib/os-probes/mounted/80minix on mounted /dev/hda3
Nov 9 12:00:08 xan os-prober: debug: running /usr/lib/os-probes/mounted/90linux-distro on mounted /dev/hda3
Nov 9 12:00:08 xan os-prober: debug: running /usr/lib/os-probes/mounted/90solaris on mounted /dev/hda3
It obviously isn't guessing the UFS-type that d-i gave me.
On the kFreeBSD side, "sudo os-prober" outputs only:
Cannot find list of partitions!
...with no debug output to syslog.
The same problem with identifying kFreeBSD partitions affects
grub-install, which isn't a disaster because I don't really want it
to lay claim to the boot sector. update-grub does at least generate
a grub.cfg with a kFreeBSD boot stanza, and I can use a script on
the Linux side to copy that from /mnt/boot/grub/grub.cfg into
/boot/grub/grub.cfg... so everything boots happily.
Nonetheless, it seems to me that os-prober should be able to identify
Debian installs, and it isn't managing to do that here.
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (500, 'testing'), (50, 'unstable')
Architecture: {i386,kfreebsd-i386} (i686)
Kernel: {Linux 2.6.31.custom,kFreeBSD 7.2-1-686}
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 os-prober depends on:
ii libc{6,0.1} 2.10.1-5 GNU C Library: Shared libraries
os-prober recommends no packages.
os-prober suggests no packages.
-- no debconf information
--
JBR
Ankh kak! (Ancient Egyptian blessing)
Reply to: