diff options
author | Jeremy Gill <[email protected]> | 2011-08-26 13:55:26 -0400 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2011-09-06 13:54:39 -0700 |
commit | 185853d9f202b306d9c316b66b774c498ed6577c (patch) | |
tree | 9a9822ad4ce9dad9368d653cc5668cf28b424a3e /dracut | |
parent | 7cdac8b8533c662155248eb2ea672a1e803ab634 (diff) |
Ensure FC15 boots when zfs isn't used for boot partition
It seems that dracut version 009 through 013 won't boot correctly when
the zfs-dracut rpm package has been installed, but 'root=zfs' isn't
used on the boot commandline, for example when the package has been
installed on a system that _doesn't_ boot from a zfs filesystem.
Signed-off-by: Jeremy Gill <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #377
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 |