svn commit: r300523 - head/usr.sbin/bsdinstall/scripts

Allan Jude allanjude at FreeBSD.org
Mon May 23 17:04:15 UTC 2016


Author: allanjude
Date: Mon May 23 17:04:13 2016
New Revision: 300523
URL: https://svnweb.freebsd.org/changeset/base/300523

Log:
  Only export and re-import the root pool if installing on MBR
  
  This step is required in order to dd the boot2 bits into the ZFS partition
  
  Sponsored by:	ScaleEngine Inc.

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

Modified: head/usr.sbin/bsdinstall/scripts/zfsboot
==============================================================================
--- head/usr.sbin/bsdinstall/scripts/zfsboot	Mon May 23 16:59:05 2016	(r300522)
+++ head/usr.sbin/bsdinstall/scripts/zfsboot	Mon May 23 17:04:13 2016	(r300523)
@@ -1310,10 +1310,6 @@ zfs_create_boot()
 		"mountpoint=/$zroot_name" "$zroot_name" ||
 		return $FAILURE
 
-	f_dprintf "$funcname: Set canmount=noauto for the root of the pool..."
-	f_eval_catch $funcname zfs "$ZFS_SET" "canmount=noauto" \
-		"$zroot_name/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BOOTFS_NAME"
-
 	# Touch up permissions on the tmp directories
 	f_dprintf "$funcname: Modifying directory permissions..."
 	local dir
@@ -1338,17 +1334,17 @@ zfs_create_boot()
 		"bootfs=\"$zroot_name/$zroot_bootfs\"" "$zroot_name" ||
 		return $FAILURE
 
-	# Export the pool(s)
-	f_dprintf "$funcname: Temporarily exporting ZFS pool(s)..."
-	f_eval_catch $funcname zpool "$ZPOOL_EXPORT" "$zroot_name" ||
-	             return $FAILURE
-	if [ "$ZFSBOOT_BOOT_POOL" ]; then
-		f_eval_catch $funcname zpool "$ZPOOL_EXPORT" \
-		             "$bootpool_name" || return $FAILURE
-	fi
-
 	# MBR boot loader touch-up
 	if [ "$ZFSBOOT_PARTITION_SCHEME" = "MBR" ]; then
+		# Export the pool(s)
+		f_dprintf "$funcname: Temporarily exporting ZFS pool(s)..."
+		f_eval_catch $funcname zpool "$ZPOOL_EXPORT" "$zroot_name" ||
+			     return $FAILURE
+		if [ "$ZFSBOOT_BOOT_POOL" ]; then
+			f_eval_catch $funcname zpool "$ZPOOL_EXPORT" \
+				     "$bootpool_name" || return $FAILURE
+		fi
+
 		f_dprintf "$funcname: Updating MBR boot loader on disks..."
 		# Stick the ZFS boot loader in the "convenient hole" after
 		# the ZFS internal metadata
@@ -1357,17 +1353,17 @@ zfs_create_boot()
 			             /boot/zfsboot /dev/$disk$bootpart \
 			             "skip=1 seek=1024" || return $FAILURE
 		done
-	fi
 
-	# Re-import the ZFS pool(s)
-	f_dprintf "$funcname: Re-importing ZFS pool(s)..."
-	f_eval_catch $funcname zpool "$ZPOOL_IMPORT_WITH_OPTIONS" \
-	             "-o altroot=\"$BSDINSTALL_CHROOT\"" "$zroot_name" ||
-	             return $FAILURE
-	if [ "$ZFSBOOT_BOOT_POOL" ]; then
+		# Re-import the ZFS pool(s)
+		f_dprintf "$funcname: Re-importing ZFS pool(s)..."
 		f_eval_catch $funcname zpool "$ZPOOL_IMPORT_WITH_OPTIONS" \
-		             "-o altroot=\"$BSDINSTALL_CHROOT\"" \
-		             "$bootpool_name" || return $FAILURE
+			     "-o altroot=\"$BSDINSTALL_CHROOT\"" "$zroot_name" ||
+			     return $FAILURE
+		if [ "$ZFSBOOT_BOOT_POOL" ]; then
+			f_eval_catch $funcname zpool "$ZPOOL_IMPORT_WITH_OPTIONS" \
+				     "-o altroot=\"$BSDINSTALL_CHROOT\"" \
+				     "$bootpool_name" || return $FAILURE
+		fi
 	fi
 
 	# While this is apparently not needed, it seems to help MBR
@@ -1378,6 +1374,14 @@ zfs_create_boot()
 	             "cachefile=\"$BSDINSTALL_CHROOT/boot/zfs/zpool.cache\"" \
 	             "$zroot_name" || return $FAILURE
 
+	#
+	# Set canmount=noauto so that the default Boot Environment (BE) does not
+	# get mounted if a different BE is selected from the beastie menu
+	#
+	f_dprintf "$funcname: Set canmount=noauto for the root of the pool..."
+	f_eval_catch $funcname zfs "$ZFS_SET" "canmount=noauto" \
+		"$zroot_name/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BOOTFS_NAME"
+
 	# Last, but not least... required lines for rc.conf(5)/loader.conf(5)
 	# NOTE: We later concatenate these into their destination
 	f_dprintf "%s: Configuring rc.conf(5)/loader.conf(5) additions..." \


More information about the svn-src-all mailing list