diff options
Diffstat (limited to 'dracut')
-rwxr-xr-x | dracut/90zfs/parse-zfs.sh.in | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/dracut/90zfs/parse-zfs.sh.in b/dracut/90zfs/parse-zfs.sh.in index 25f2dfbac..eaa452412 100755 --- a/dracut/90zfs/parse-zfs.sh.in +++ b/dracut/90zfs/parse-zfs.sh.in @@ -17,18 +17,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 +40,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 +48,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 |