Bugzilla – Bug 156800
perl-Bootloader errors out on getting device
Last modified: 2008-10-08 08:49:12 UTC
[[[ # rpm -Uhv kernel-default-2.6.16_rc5_git9-20060309130028.x86_64.rpm Preparing... ########################################### [100%] 1:kernel-default ########################################### [100%] Setting up /lib/modules/2.6.16-rc5-git9-20060309130028-default Root device: /dev/md0 (mounted on / as ext3) Module list: sis5513 sata_sis processor thermal fan jbd ext3 raid1 Kernel image: /boot/vmlinuz-2.6.16-rc5-git9-20060309130028-default Initrd image: /boot/initrd-2.6.16-rc5-git9-20060309130028-default Shared libs: lib64/ld-2.3.90.so lib64/libacl.so.1.1.0 lib64/libattr.so.1.1.0 lib64/libblkid.so.1.0 lib64/libc-2.3.90.so lib64/libcom_err.so.2.1 lib64/libdl-2.3.90.so lib64/libext2fs.so.2.4 lib64 /libhistory.so.5.1 lib64/libncurses.so.5.5 lib64/libpthread-2.3.90.so lib64/libreadline.so.5.1 lib64/librt-2.3.90.so lib64/libuuid.so.1.2 Driver modules: ide-core ide-disk scsi_mod sd_mod sis5513 libata sata_sis processor thermal fan raid1 Filesystem modules: jbd ext3 Including: initramfs fsck.ext3 mdadm 13266 blocks ERROR: Core::SplitDevPath: Cannot get device for (hd0,1)/boot/grub/stage2 ERROR: Core::SplitDevPath: Cannot get device for (hd0,1)/boot/grub/stage1 ERROR: Core::SplitDevPath: Cannot get device for (hd0,1)/boot/grub/stage2 ERROR: Core::SplitDevPath: Cannot get device for (hd0,1)/boot/grub/stage2 ERROR: Core::SplitDevPath: Cannot get device for (hd0,1)/boot/grub/stage1 ERROR: Core::SplitDevPath: Cannot get device for (hd0,1)/boot/grub/stage2 ]]] [[[ # cat /etc/grub.conf root (hd0,1) install --stage2=/boot/grub/stage2 /boot/grub/stage1 d (hd0,0) /boot/grub/stage2 0x8000 (hd0,1)/boot/grub/menu.lst install --stage2=/boot/grub/stage2 /boot/grub/stage1 d (hd1,1) /boot/grub/stage2 0x8000 (hd0,1)/boot/grub/menu.lst install --stage2=/boot/grub/stage2 /boot/grub/stage1 d (hd0,1) /boot/grub/stage2 0x8000 (hd0,1)/boot/grub/menu.lst quit ]]] first 2 entries from the /boot/grub/menu.lst [[[ ###Don't change this comment - YaST2 identifier: Original name: linux### title SUSE LINUX 10.0.42 (/dev/sda1) root (hd0,0) kernel /boot/vmlinuz root=/dev/sda1 vga=normal selinux=0 panic=5 selinux=0 acpi=on noapic load_ramdisk=1 resume=/dev/sdb1 splash=silent showopts initrd /boot/initrd ###Don't change this comment - YaST2 identifier: Original name: linux### title SUSE LINUX 10.0.42 (/dev/md0) root (hd0,1) kernel /boot/vmlinuz root=/dev/md0 vga=normal selinux=0 panic=5 selinux=0 acpi=on noapic load_ramdisk=1 resume=/dev/sdb1 splash=silent showopts # crashkernel=64M@16M initrd /boot/initrd ]]] [[[ # for c in a b ; do fdisk -l /dev/sd$c ; done Disk /dev/sda: 122.9 GB, 122942324736 bytes 255 heads, 63 sectors/track, 14946 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 131 1052226 83 Linux /dev/sda2 132 14946 119001487+ fd Linux raid autodetect Disk /dev/sdb: 122.9 GB, 122942324736 bytes 255 heads, 63 sectors/track, 14946 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 131 1052226 82 Linux swap / Solaris /dev/sdb2 132 14946 119001487+ fd Linux raid autodetect ]]] [[[ mount /dev/md0 on / type ext3 (rw,acl,user_xattr) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) udev on /dev type tmpfs (rw) devpts on /dev/pts type devpts (rw,mode=0620,gid=5) /dev/sda1 on /mnt/rescue type ext3 (rw) securityfs on /sys/kernel/security type securityfs (rw) ]]]
Mmh, could you give me more details about what´s going _wrong_? What would you expect? The error looks fine to me, perl-Bootloader reports that there is no regular filesystem on sda2 but that it´s part of an md device.
i expect not to see: "ERROR: Core::SplitDevPath: Cannot get device for (hd0,1)/boot/grub/stage2" it doesnt give you the feeling the code handles this case properly. sda2 can be mounted as normal ext2/3 aswell iirc. thats the way how grub accesses the kernel for booting. if the kernel is loaded the initrd reassembles the raid1. afaik grub1 doesnt support assembling raids on its own.
In comment #1 it is claimed that sda2 is no regular filesystem because it is part of an md device. In comment #2 you claim that you *think* it can be mounted as normal ext2/ext3. Can you please verify? If not then I agree with comment #1 and would close this as INVALID. We could argue about a message that is a bit more self-explaining though...
as this part of the code is somehow under review (looks like it only works for raid1 but silently fails for raid0/5) this will be polished _later_
ok that means i dont need to verify that anymore?
.
Using raid0 I can see this bug when updating the kernel package: Output from kernel-default-2.6.16.21-0.13@i586: Setting up /lib/modules/2.6.16.21-0.13-default Root device: /dev/md0 (mounted on / as reiserfs) Module list: piix siimage processor thermal fan reiserfs raid1 (xennet xenblk) Kernel image: /boot/vmlinuz-2.6.16.21-0.13-default Initrd image: /boot/initrd-2.6.16.21-0.13-default Shared libs: lib/ld-2.4.so lib/libacl.so.1.1.0 lib/libattr.so.1.1.0 lib/libc-2.4.so lib/libdl-2.4.so lib/libhistory.so.5.1 lib/libncurses.so.5.5 lib/libpthread-2.4.so lib/libreadline.so.5.1 lib/librt-2.4.so lib/libuuid.so.1.2 Driver modules: ide-core ide-disk piix siimage processor thermal fan raid1 Filesystem modules: reiserfs Including: initramfs fsck.reiserfs mdadm Bootsplash: SuSE (800x600) 10792 blocks ERROR: Core::SplitDevPath: Cannot get device for (hd0,0)/boot/grub/stage2 This bug is blocking any kernel update of the machines that have a raid0 system.
sorry to say that but root on soft-raid0 _never_ worked out of the box. You have to have now a separate /boot partition. Will have to check how root on raid0 now work on 10.2beta2plusplus
Aahm ... raid1 I meant
hmm. if you would like to enforce a boot partition in my case, yast should definitely warn about it. the whole config was created with yast.
assign to perl-bootloader maintainer
fixed in yast2-bootloader 2.17.26