Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Jun 2016 14:31:59 +0000 (UTC)
From:      Allan Jude <allanjude@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r301787 - head/usr.sbin/bsdinstall/scripts
Message-ID:  <201606101431.u5AEVxUJ040515@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: allanjude
Date: Fri Jun 10 14:31:59 2016
New Revision: 301787
URL: https://svnweb.freebsd.org/changeset/base/301787

Log:
  Fix bsdinstall for root-on-zfs with MBR partitioning
  
  Fix an error where vfs.root.mountfrom was not always set as required
  when creating a bootpool. After the recent geliboot changes, it was only
  set if the main pool was encrypted.
  
  Also resolve an error where the bootpool was unmounted twice causing
  bsdinstall to stop with an error message about the failed command.
  
  Approved by:	re (gjb)
  Sponsored by:	BSDCan Hacker Lounge

Modified:
  head/usr.sbin/bsdinstall/scripts/zfsboot

Modified: head/usr.sbin/bsdinstall/scripts/zfsboot
==============================================================================
--- head/usr.sbin/bsdinstall/scripts/zfsboot	Fri Jun 10 14:31:03 2016	(r301786)
+++ head/usr.sbin/bsdinstall/scripts/zfsboot	Fri Jun 10 14:31:59 2016	(r301787)
@@ -1194,11 +1194,6 @@ zfs_create_boot()
 			f_eval_catch $funcname chmod "$CHMOD_MODE" \
 			             go-wrx "$bootpool/$zroot_key" ||
 			             return $FAILURE
-		else
-			# Clean up
-			f_eval_catch $funcname zfs "$ZFS_UNMOUNT" \
-			             "$bootpool_name" || return $FAILURE
-			f_eval_catch -d $funcname umount "$UMOUNT" /mnt # tmpfs
 		fi
 
 	fi
@@ -1409,6 +1404,11 @@ zfs_create_boot()
 	             "cachefile=\"$BSDINSTALL_CHROOT/boot/zfs/zpool.cache\"" \
 	             "$zroot_name" || return $FAILURE
 
+	if [ "$ZFSBOOT_BOOT_POOL" ]; then
+		f_eval_catch $funcname printf "$PRINTF_CONF" \
+			vfs.root.mountfrom "\"zfs:$zroot_name/$zroot_bootfs\"" \
+			$BSDINSTALL_TMPBOOT/loader.conf.root || return $FAILURE
+	fi
 	#
 	# Set canmount=noauto so that the default Boot Environment (BE) does not
 	# get mounted if a different BE is selected from the beastie menu
@@ -1486,10 +1486,6 @@ zfs_create_boot()
 		             $BSDINSTALL_TMPBOOT/loader.conf.zfs ||
 		             return $FAILURE
 	done
-	f_eval_catch $funcname printf "$PRINTF_CONF" vfs.root.mountfrom \
-		"\"zfs:$zroot_name/$zroot_bootfs\"" \
-		$BSDINSTALL_TMPBOOT/loader.conf.root || return $FAILURE
-
 	return $SUCCESS
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201606101431.u5AEVxUJ040515>