X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=dracut%2F90zfs%2Fparse-zfs.sh.in;h=571d263ce102c59a09cc221ec445461a518a2ac3;hb=5853fe790d1df58c5dd85ea52c5e165b6d43013c;hp=25f2dfbacc5628dcd84dc1f315f3afe8ec942c82;hpb=f0102d6e75d51b8d92624ba054a3fa54c807fb7f;p=zfs.git diff --git a/dracut/90zfs/parse-zfs.sh.in b/dracut/90zfs/parse-zfs.sh.in index 25f2dfb..571d263 100755 --- a/dracut/90zfs/parse-zfs.sh.in +++ b/dracut/90zfs/parse-zfs.sh.in @@ -6,9 +6,13 @@ spl_hostid=`getarg spl_hostid=` if [ "${spl_hostid}" != "" ] ; then info "ZFS: Using hostid from command line: ${spl_hostid}" - echo "${spl_hostid}" > /etc/hostid + AA=`echo ${spl_hostid} | cut -b 1,2` + BB=`echo ${spl_hostid} | cut -b 3,4` + CC=`echo ${spl_hostid} | cut -b 5,6` + DD=`echo ${spl_hostid} | cut -b 7,8` + printf "\x$DD\x$CC\x$BB\x$AA" >/etc/hostid elif [ -f /etc/hostid ] ; then - info "ZFS: Using hostid from /etc/hostid: `cat /etc/hostid`" + info "ZFS: Using hostid from /etc/hostid: `hostid`" else warn "ZFS: No hostid found on kernel command line or /etc/hostid. " warn "ZFS: Pools may not import correctly." @@ -17,18 +21,19 @@ fi case "$root" in ""|zfs|zfs:) # We'll take root unset, root=zfs, or root=zfs: - # No root set, so we want to read the bootfs attribute. We can't do - # that until udev settles so we'll set dummy values and hope for the - # best later on. + # No root set, so we want to read the bootfs attribute. We + # can't do that until udev settles so we'll set dummy values + # and hope for the best later on. root="zfs:AUTO" rootok=1 + wait_for_zfs=1 info "ZFS: Enabling autodetection of bootfs after udev settles." ;; ZFS\=*|zfs:*|zfs:FILESYSTEM\=*|FILESYSTEM\=*) - # root is explicit ZFS root. Parse it now. - # We can handle a root=... param in any of the following formats: + # root is explicit ZFS root. Parse it now. We can handle + # a root=... param in any of the following formats: # root=ZFS=rpool/ROOT # root=zfs:rpool/ROOT # root=zfs:FILESYSTEM=rpool/ROOT @@ -39,6 +44,7 @@ case "$root" in root="${root#FILESYSTEM=}" root="zfs:${root#ZFS=}" rootok=1 + wait_for_zfs=1 info "ZFS: Set ${root} as bootfs." ;; @@ -46,5 +52,7 @@ esac # Make sure Dracut is happy that we have a root and will wait for ZFS # modules to settle before mounting. -ln -s /dev/null /dev/root 2>/dev/null -echo '[ -e /dev/zfs ]' > $hookdir/initqueue/finished/zfs.sh +if [ "${wait_for_zfs}" = "1" ]; then + ln -s /dev/null /dev/root 2>/dev/null + echo '[ -e /dev/zfs ]' > $hookdir/initqueue/finished/zfs.sh +fi