From: Harald Hoyer Date: Thu, 2 Jul 2009 09:40:05 +0000 (+0200) Subject: let iSCSI try to mount the complete LUN specified X-Git-Tag: 0.3~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4ce1991856e33d3aa6a3f8483ca790282dc86b48;p=platform%2Fupstream%2Fdracut.git let iSCSI try to mount the complete LUN specified --- diff --git a/dracut.8 b/dracut.8 index dadc312..bc0aaef 100644 --- a/dracut.8 +++ b/dracut.8 @@ -117,9 +117,6 @@ associated fields. http://tools.ietf.org/html/rfc4173 -If the root partition is not specified using \fBroot=\fR, one of the partitions found -with label \fBROOT\fR or \fB/\fR will be used to boot from. - .TP .B root=iscsi:[]:[]:[]:[]: e.g. root=iscsi:192.168.50.1::::iqn.2009-06.dracut:target0 diff --git a/modules.d/95iscsi/install b/modules.d/95iscsi/install index 613c752..7f8c2e2 100755 --- a/modules.d/95iscsi/install +++ b/modules.d/95iscsi/install @@ -1,8 +1,9 @@ #!/bin/bash - +dracut_install umount inst iscsistart inst hostname inst iscsi-iname inst_hook cmdline 90 "$moddir/parse-iscsiroot.sh" inst "$moddir/iscsiroot" "/sbin/iscsiroot" +inst "$moddir/mount-lun.sh" "/bin/mount-lun.sh" instmods iscsi_tcp crc32c diff --git a/modules.d/95iscsi/iscsiroot b/modules.d/95iscsi/iscsiroot index c66f9d2..8ee7cbc 100755 --- a/modules.d/95iscsi/iscsiroot +++ b/modules.d/95iscsi/iscsiroot @@ -114,17 +114,15 @@ if [ -z $iscsi_initiator ]; then iscsi_initiator=$(iscsi-iname) fi +if [ -z $iscsi_lun ]; then + iscsi_lun=0 +fi + echo "InitiatorName='$iscsi_initiator'" > /dev/.initiatorname.iscsi -# FIXME $iscsi_lun?? $iscsi_protocol?? +# FIXME $iscsi_protocol?? -# if root does not specify a block device -# we set a fallback to recognize any filesystems labeled -# LABEL=/ or LABEL=ROOT -if [ "${root#block:*}" = "$root" ]; then - ( root="block:/dev/disk/by-label/\x2f" . /pre-udev/30-block-genrules.sh ) - ( root="block:/dev/disk/by-label/ROOT" . /pre-udev/30-block-genrules.sh ) -fi +echo "iscsi_lun=$iscsi_lun . /bin/mount-lun.sh " > /mount/iscsi.sh iscsistart -i $iscsi_initiator -t $iscsi_target_name \ -g $iscsi_target_group -a $iscsi_target_ip \ diff --git a/modules.d/95iscsi/mount-lun.sh b/modules.d/95iscsi/mount-lun.sh new file mode 100755 index 0000000..ff8d4d0 --- /dev/null +++ b/modules.d/95iscsi/mount-lun.sh @@ -0,0 +1,14 @@ +if [ -z $iscsi_lun ]; then + iscsi_lun=0 +fi +NEWROOT=${NEWROOT:-"/sysroot"} + +for disk in /dev/disk/by-path/*-iscsi-*-$iscsi_lun; do + if mount -t ${fstype:-auto} -o "$rflags" $disk $NEWROOT; then + if [ ! -d /sysroot/proc ]; then + umount $disk + continue + fi + break + fi +done diff --git a/test/TEST-30-ISCSI/create-root.sh b/test/TEST-30-ISCSI/create-root.sh index 32c1828..c23d71f 100755 --- a/test/TEST-30-ISCSI/create-root.sh +++ b/test/TEST-30-ISCSI/create-root.sh @@ -4,27 +4,9 @@ for x in 63-luks.rules 64-lvm.rules 70-mdadm.rules 99-mount-rules; do > "/etc/udev/rules.d/$x" done udevadm control --reload-rules -# save a partition at the beginning for future flagging purposes -sfdisk -C 640 -H 2 -S 32 -L /dev/sda <keyfile -#cryptsetup -q luksFormat /dev/sda1 /keyfile -#echo "The passphrase is test" -#cryptsetup luksOpen /dev/sda1 dracut_crypt_test /dev/sdb