It’s an old bug I reported (or mentioned in another bug report about os-prober) and fixed a while ago in the os-prober version available in my repo. At this time, nobody cared because you guys weren’t using Grub2, But now it’s going to hit (linux) multi booters.
If you wonder why your Fedora boot entry (for example) looks like this in openSUSE 12.2 Grub menu:
menuentry 'Fedora release 16 (Verne)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-01a7cb76-434b-4eeb-9fac-c8b5c8229835' {
insmod part_msdos
insmod ext2
set root='hd0,msdos21'
if x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos21 --hint-efi=hd0,msdos21 --hint-baremetal=ahci0,msdos21 --hint='hd0,msdos21' 01a7cb76-434b-4eeb-9fac-c8b5c8229835
else
search --no-floppy --fs-uuid --set=root 01a7cb76-434b-4eeb-9fac-c8b5c8229835
fi
linux /boot/vmlinuz-3.4.9-1.fc16.x86_64 root=/dev/sda13
initrd /boot/initramfs-3.4.9-1.fc16.x86_64.img
}
Here’s the answer:
# zypper info os-prober
Loading repository data...
Reading installed packages...
Information for package os-prober:
Repository: openSUSE-12.2-Oss
Name: os-prober
Version: 1.49-2.1.2
Arch: x86_64
Vendor: openSUSE
Fedora is on sda13. So let us check sda13 with linux-boot-prober:
# **linux-boot-prober /dev/sda13**
/dev/sda13:/dev/sda13::/boot/vmlinuz-3.4.9-1.fc16.x86_64:/boot/initramfs-3.4.9-1.fc16.x86_64.img:root=/dev/sda13
/dev/sda13:/dev/sda13::/boot/vmlinuz-3.4.9-2.fc16.x86_64:/boot/initramfs-3.4.9-2.fc16.x86_64.img:root=/dev/sda13
Now let’s try the same with os-prober 1.53 from my repo.
# zypper update os-prober
Loading repository data...
Reading installed packages...
There is an update candidate for 'os-prober', but it is from different vendor. Use '**zypper install os-prober-1.53-78.1.x86_64'** to install this candidate.
Resolving package dependencies...
Nothing to do.
# **zypper install os-prober-1.53-78.1.x86_64**
#** linux-boot-prober /dev/sda13**
/dev/sda13:/dev/sda13:Fedora 16 (Verne) - kernel 3.4.9-2:/boot/vmlinuz-3.4.9-2.fc16.x86_64:/boot/initramfs-3.4.9-2.fc16.x86_64.img:root=UUID=01a7cb76-434b-4eeb-9fac-c8b5c8229835 ro rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 LANG=en_US.UTF-8 nouveau.nomodeset=0 rd.driver.blacklist=nouveau
/dev/sda13:/dev/sda13:Fedora 16 (Verne) - kernel 3.4.9-2 (recovery mode):/boot/vmlinuz-3.4.9-2.fc16.x86_64:/boot/initramfs-3.4.9-2.fc16.x86_64.img:root=UUID=01a7cb76-434b-4eeb-9fac-c8b5c8229835 ro single rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 LANG=en_US.UTF-8 nouveau.nomodeset=0 rd.driver.blacklist=nouveau
/dev/sda13:/dev/sda13:Fedora 16 (Verne) - kernel 3.4.9-1:/boot/vmlinuz-3.4.9-1.fc16.x86_64:/boot/initramfs-3.4.9-1.fc16.x86_64.img:root=UUID=01a7cb76-434b-4eeb-9fac-c8b5c8229835 ro rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 LANG=en_US.UTF-8 nouveau.nomodeset=0 rd.driver.blacklist=nouveau
/dev/sda13:/dev/sda13:Fedora 16 (Verne) - kernel 3.4.9-1 (recovery mode):/boot/vmlinuz-3.4.9-1.fc16.x86_64:/boot/initramfs-3.4.9-1.fc16.x86_64.img:root=UUID=01a7cb76-434b-4eeb-9fac-c8b5c8229835 ro single rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 LANG=en_US.UTF-8 nouveau.nomodeset=0 rd.driver.blacklist=nouveau
Now let’s rewrite the Grub menu.
# grub2-mkconfig -o /boot/grub2/grub.cfg
And the boot entry for Fedora kernel is now complete (it matters if some options are necessary to boot) :
menuentry 'Fedora release 16 (Verne)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-01a7cb76-434b-4eeb-9fac-c8b5c8229835' {
insmod part_msdos
insmod ext2
set root='hd0,msdos21'
if x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos21 --hint-efi=hd0,msdos21 --hint-baremetal=ahci0,msdos21 --hint='hd0,msdos21' 01a7cb76-434b-4eeb-9fac-c8b5c8229835
else
search --no-floppy --fs-uuid --set=root 01a7cb76-434b-4eeb-9fac-c8b5c8229835
fi
linux /boot/vmlinuz-3.4.9-2.fc16.x86_64 root=UUID=01a7cb76-434b-4eeb-9fac-c8b5c8229835 ro rd.md=0 rd.lvm=0 rd.dm=0 KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 LANG=en_US.UTF-8 nouveau.nomodeset=0 rd.driver.blacklist=nouveau
initrd /boot/initramfs-3.4.9-2.fc16.x86_64.img
}
Quod erat demonstrandum.
- I don’t say you should use my os-prober version (and you won’t anyway). But at least, you’ll know why you might not be able to boot some foreign Linux kernels directly (chainloading their Grub is of course possible).