On Tuesday 04 September 2007, maximilian attems wrote: > second initramfs-tools does _not_ shipp kpartx. > third the hooks to add kpartx are in multipath-tools-initramfs > thus reassigning. > fourth you didn't paste the actual error message.
The issue is seen during boot in initrd and can't be captured at that stage. I'd have to do serial console redirection on my laptop to get the error and I'm a bit lazy to get the exact error messages. :-) Since, I've already worked on this issue (at work), I can instead explain it. Here's where the problem happens. maybe_break mount log_begin_msg "Mounting root file system..." . /scripts/${BOOT} parse_numeric ${ROOT} mountroot log_end_msg In initrd's init, when the flow reaches here, it tries to mount the root device to /root. This is where it fails because the root device is said to be busy. That's the error message you'll get even if you ask me to take a picture of it. There's no additional message apart from it. Root-causing it earlier, I tried to figure out if there was any process holding the root device busy. But that wasn't the case. Both, lsof and fuser showed no process holding the root device. In SLES, this is just a small part of how root device is handled in /init of the initrd. # check filesystem if possible if [ -z "$rootfstype" ]; then echo "invalid root filesystem -- exiting to /bin/sh" cd / PATH=$PATH PS1='$ ' /bin/sh -i elif [ -x /bin/fsck.${rootfstype} ]; then # fsck is unhappy without it echo "$rootdev / $rootfstype defaults 1 1" > /etc/fstab fsckopts="-V -a" # Check external journal for reiserfs [ "$rootfstype" = "reiserfs" -a -n "$journaldev" ] && fsckopts="-j $journaldev $fsckopts" fsck -t $rootfstype $fsckopts $rootdev # Return the fsck status ROOTFS_FSCK=$? export ROOTFS_FSCK ROOTFS_FSTYPE=$rootfstype export ROOTFS_FSTYPE if [ $ROOTFS_FSCK -gt 1 -a $ROOTFS_FSCK -lt 4 ]; then # reboot needed echo "fsck succeeded, but reboot is required." echo "Rebooting system." /sbin/reboot -d -f elif [ $ROOTFS_FSCK -gt 3 ] ; then echo "fsck failed. Mounting root device read-only." read_write= else if [ "$read_only" ]; then echo "fsck succeeded. Mounting root device read-only." read_write= else echo "fsck succeeded. Mounting root device read-write." read_write=1 fi fi fi opt="-o ro" [ -n "$read_write" ] && opt="-o rw" [ "$rootfstype" = "nfs" ] && opt="${opt},nolock" # tell kernel root is /dev/ram0, prevents remount after initrd echo 256 > /proc/sys/kernel/real-root-dev # mount the actual root device below /root echo "Mounting root $rootdev" # check external journal [ "$rootfstype" = "xfs" -a -n "$journaldev" ] && opt="${opt},logdev=$journaldev" [ "$rootfstype" = "reiserfs" -a -n "$journaldev" ] && opt="${opt},jdev=$journaldev" [ -n "$rootflags" ] && opt="${opt},$rootflags" [ -n "$rootfstype" ] && opt="${opt} -t $rootfstype" if [ -x /bin/nfsmount -a "$rootfstype" = "nfs" ]; then nfsmount $rootdev /root || die 1 else mount $opt $rootdev /root || die 1 But in Debian's /init maybe_break mount log_begin_msg "Mounting root file system..." . /scripts/${BOOT} parse_numeric ${ROOT} mountroot log_end_msg I looked into the scripts folder also but didn't find anything interesting. How is Debian handling multipathing ? For cases where "root on multipath" is required, I think Debian will just fail. Especially for cases like iSCSI + multipath + SAN Boot, I don't think the init script is designed yet. Ritesh -- Ritesh Raj Sarraf RESEARCHUT - http://www.researchut.com "Necessity is the mother of invention."
signature.asc
Description: This is a digitally signed message part.