Author: jpaetzel
Date: Thu Sep 6 14:59:53 2012
New Revision: 240165
URL: http://svn.freebsd.org/changeset/base/240165
Log:
Add TRIM support, enabled by default.
Fix a bug installing components from a localPath.
Allow autosizing of any partition, not just the last partition.
Adjust how ZFS is laid out to work with Boot Environments.
Submitted by: kmoore
Obtained from:PC-BSD
MFC after:3 days
Modified:
head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh
head/usr.sbin/pc-sysinstall/backend/functions-cleanup.sh
head/usr.sbin/pc-sysinstall/backend/functions-disk.sh
head/usr.sbin/pc-sysinstall/backend/functions-installcomponents.sh
head/usr.sbin/pc-sysinstall/backend/functions-mountdisk.sh
head/usr.sbin/pc-sysinstall/backend/functions-newfs.sh
Modified: head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh
==
--- head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh Thu Sep 6
13:54:01 2012(r240164)
+++ head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh Thu Sep 6
14:59:53 2012(r240165)
@@ -164,6 +164,38 @@ gen_glabel_name()
export VAL=${NAME}${NUM}
};
+# Function to determine the size we can safely use when 0 is specified
+get_autosize()
+{
+ # Disk tag to look for
+ dTag=$1
+
+ # Total MB Avail
+ get_disk_mediasize_mb $2
+ local _aSize=$VAL
+
+ while read line
+ do
+# Check for data on this slice
+echo $line | grep -q ^${_dTag}-part= 2/dev/null
+if [ $? -ne 0 ] ; then continue ; fi
+
+get_value_from_string ${line}
+STRING=$VAL
+
+# Get the size of this partition
+SIZE=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 2`
+if [ $SIZE -eq 0 ] ; then continue ; fi
+_aSize=`expr $_aSize - $SIZE`
+ done ${CFGF}
+
+ # Pad the size a bit
+ _aSize=`expr $_aSize - 2`
+
+ VAL=$_aSize
+ export VAL
+};
+
# Function to setup partitions using gpart
setup_gpart_partitions()
{
@@ -173,6 +205,7 @@ setup_gpart_partitions()
local _sNum=$4
local _pType=$5
FOUNDPARTS=1
+ USEDAUTOSIZE=0
# Lets read in the config file now and setup our partitions
if [ ${_pType} = gpt ] ; then
@@ -245,7 +278,15 @@ setup_gpart_partitions()
if [ $SIZE = 0 ]
then
-SOUT=
+ if [ $USEDAUTOSIZE -eq 1 ] ; then
+ exit_err ERROR: You can not have two partitions with a size of 0
specified!
+ fi
+case ${_pType} in
+ gpt|apm) get_autosize ${_dTag} $_pDisk ;;
+ *) get_autosize ${_dTag} $_wSlice ;;
+esac
+SOUT=-s ${VAL}M
+ USEDAUTOSIZE=1
else
SOUT=-s ${SIZE}M
fi
Modified: head/usr.sbin/pc-sysinstall/backend/functions-cleanup.sh
==
--- head/usr.sbin/pc-sysinstall/backend/functions-cleanup.shThu Sep 6
13:54:01 2012(r240164)
+++ head/usr.sbin/pc-sysinstall/backend/functions-cleanup.shThu Sep 6
14:59:53 2012(r240165)
@@ -49,7 +49,7 @@ zfs_cleanup_unmount()
# Creating a dedicated /boot partition
cat ${FSMNT}/boot/loader.conf 2/dev/null | grep -q
vfs.root.mountfrom= 2/dev/null
if [ $? -ne 0 ] ; then
-echo vfs.root.mountfrom=\zfs:${ZPOOLNAME}\
${FSMNT}/boot/loader.conf
+echo vfs.root.mountfrom=\zfs:${ZPOOLNAME}/ROOT/default\
${FSMNT}/boot/loader.conf
fi
export FOUNDZFSROOT=${ZPOOLNAME}
fi
@@ -195,8 +195,8 @@ setup_fstab()
if [ $? -eq 0 ] ; then
if [ ${PARTFS} = ZFS ] ; then
ROOTFSTYPE=zfs
-XPOOLNAME=$(get_zpool_name ${PARTDEV})
-ROOTFS=${ZPOOLNAME}
+ZPOOLNAME=$(get_zpool_name ${PARTDEV})
+ROOTFS=${ZPOOLNAME}/ROOT/default
else
ROOTFS=${DEVICE}
ROOTFSTYPE=ufs
Modified: head/usr.sbin/pc-sysinstall/backend/functions-disk.sh
==
--- head/usr.sbin/pc-sysinstall/backend/functions-disk.sh Thu Sep 6
13:54:01 2012(r240164)
+++ head/usr.sbin/pc-sysinstall/backend/functions-disk.sh Thu Sep 6
14:59:53 2012(r240165)
@@ -224,6 +224,15 @@ get_disk_mediasize()
export VAL=${mediasize}
};
+# Function which returns a target disks mediasize in megabytes
+get_disk_mediasize_mb()
+{
+ mediasize=`diskinfo -v ${1} | grep # mediasize in bytes | tr -s ' ' | cut
-f 2`
+ mediasize=`expr $mediasize / 1024`
+ mediasize=`expr $mediasize / 1024`
+ export VAL=${mediasize}
+};
+
# Function to delete all gparts before starting an install
delete_all_gpart()
{
Modified: head/usr.sbin/pc-sysinstall/backend/functions-installcomponents.sh
==
--- head/usr.sbin/pc-sysinstall/backend/functions-installcomponents.sh Thu Sep
6 13:54:01 2012(r240164)
+++