Thank you for the suggestion.  I've updated the patch and attached it.
*** /tmp/10_linux.orig	2017-02-02 08:02:36.926542777 -0700
--- /etc/grub.d/10_linux	2017-02-02 15:26:02.138285042 -0700
***************
*** 77,85 ****
  	    GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
  	fi;;
      xzfs)
! 	rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
! 	bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`"
! 	LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs}"
  	;;
  esac
  
--- 77,96 ----
  	    GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
  	fi;;
      xzfs)
! 	zfsbootfs=`zpool get bootfs | sed '2,100!d' |  grep -v '\s-' | awk {'print $3'} 2>/dev/null || true`
! 	if [ "${zfsbootfs}" = "" ]
! 	then
! 		echo "zpool bootfs parameter not set.  System will fail to boot!" 1>&2 
! 	elif [ "$(echo ${zfsbootfs} | wc -w)" -gt "1" ]
! 	then
! 		echo "Multiple zpool bootfs parameters detected:" 1>&2
! 		echo ${zfsbootfs} 1>&2
!                 echo 1>&2
! 		zfsbootfs=`echo ${zfsbootfs} | awk {'print $1'}`
! 		echo "Using the first bootfs listed: ${zfsbootfs}" 1>&2
! 		echo "Final LINUX_ROOT_DEVICE=ZFS=${zfsbootfs}" 1>&2
! 	fi
! 	LINUX_ROOT_DEVICE="ZFS=${zfsbootfs}"
  	;;
  esac
  

Reply via email to