]> git.proxmox.com Git - mirror_zfs-debian.git/commitdiff
Fix boot failure in Dracut scripts.
authorZachary Bedell <zac@thebedells.org>
Sun, 18 Sep 2011 03:42:43 +0000 (23:42 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 26 Sep 2011 16:29:51 +0000 (09:29 -0700)
mount-zfs.sh script incorrectly parsed results from zpool list.  Correct
bootfs attribute was only found on systems with a single pool or where
the bootable pool's name alphabetized to before all other pool names.
Boot failed when the bootable pool's name came after other pools
(IE 'rpool' and 'mypool' would fail to find bootfs on rpool.)

Patch correctly discards pools whose bootfs attribute is blank ('-').

Signed-off-by: Zachary Bedell <zac@thebedells.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #402

dracut/90zfs/mount-zfs.sh.in

index 49d68466c556b6e3db65ca5c91a85b88150dba08..2d2afd879f99741147cc7bd1a8bc47af8b6817d4 100755 (executable)
@@ -18,13 +18,13 @@ case "$root" in
 
                        # Might be imported by the kernel module, so try searching before
                        # we import anything.
-                       zfsbootfs=`zpool list -H -o bootfs | sed 'q'`
+                       zfsbootfs=`zpool list -H -o bootfs | sed -n '/-/ !p' | sed 'q'`
                        if [ "$?" != "0" ] || [ "$zfsbootfs" = "" ] || \
                                [ "$zfsbootfs" = "no pools available" ] ; then
                                # Not there, so we need to import everything.
                                info "ZFS: Attempting to import additional pools."
                                zpool import -N -a ${ZPOOL_FORCE}
-                               zfsbootfs=`zpool list -H -o bootfs | sed 'q'`
+                               zfsbootfs=`zpool list -H -o bootfs | sed -n '/-/ !p' | sed 'q'`
                                if [ "$?" != "0" ] || [ "$zfsbootfs" = "" ] || \
                                        [ "$zfsbootfs" = "no pools available" ] ; then
                                        rootok=0