summaryrefslogtreecommitdiffstats
path: root/PCBSD/pc-sysinstall/backend
diff options
context:
space:
mode:
Diffstat (limited to 'PCBSD/pc-sysinstall/backend')
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/entries640
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/lock0
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/prop-base/parseconfig.sh.svn-base5
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/prop-base/startautoinstall.sh.svn-base5
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-bsdlabel.sh.svn-base592
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-cleanup.sh.svn-base386
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-disk.sh.svn-base646
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-extractimage.sh.svn-base289
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-installcomponents.sh.svn-base140
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-localize.sh.svn-base449
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-mountdisk.sh.svn-base164
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-mountoptical.sh.svn-base126
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-networking.sh.svn-base330
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-newfs.sh.svn-base142
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-parse.sh.svn-base205
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-runcommands.sh.svn-base76
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-unmount.sh.svn-base175
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-upgrade.sh.svn-base259
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions-users.sh.svn-base149
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/functions.sh.svn-base249
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/parseconfig.sh.svn-base138
-rw-r--r--PCBSD/pc-sysinstall/backend/.svn/text-base/startautoinstall.sh.svn-base111
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-bsdlabel.sh592
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-cleanup.sh384
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-disk.sh646
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-extractimage.sh312
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-installcomponents.sh140
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-localize.sh449
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-mountdisk.sh164
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-mountoptical.sh126
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-networking.sh330
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-newfs.sh142
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-parse.sh205
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-runcommands.sh76
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-unmount.sh175
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-upgrade.sh259
-rw-r--r--PCBSD/pc-sysinstall/backend/functions-users.sh149
-rw-r--r--PCBSD/pc-sysinstall/backend/functions.sh249
-rwxr-xr-xPCBSD/pc-sysinstall/backend/parseconfig.sh138
-rwxr-xr-xPCBSD/pc-sysinstall/backend/startautoinstall.sh111
40 files changed, 0 insertions, 9923 deletions
diff --git a/PCBSD/pc-sysinstall/backend/.svn/entries b/PCBSD/pc-sysinstall/backend/.svn/entries
deleted file mode 100644
index 4402e3a..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/entries
+++ /dev/null
@@ -1,640 +0,0 @@
-10
-
-dir
-6759
-svn://svn.pcbsd.org/pcbsd/current/pc-sysinstall/backend
-svn://svn.pcbsd.org
-
-
-
-2010-05-22T19:59:31.576442Z
-6759
-ayerenkow
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-212fe199-4beb-da11-a70e-00e08102fd27
-
-functions-users.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-b491892fd2657913a1b8d533290f235e
-2009-11-13T19:38:48.836985Z
-5020
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3641
-
-functions.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-9f599a0beb00995ba08f1766119fdba5
-2010-05-16T18:52:47.285311Z
-6724
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4617
-
-functions-localize.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-0731744b38de88f94d13548662852031
-2010-05-22T19:59:31.576442Z
-6759
-ayerenkow
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-10707
-
-functions-unmount.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-fda52422b07c35b56df627125912e0d9
-2010-05-19T15:53:43.658786Z
-6745
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4903
-
-startautoinstall.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-4c9dd792a22d634d594b0605216e8ec2
-2010-05-11T17:59:10.123893Z
-6693
-kris
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3331
-
-functions-bsdlabel.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-9ed6f132c916bd27175af9a36b6e8772
-2010-05-20T12:37:14.779822Z
-6746
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-16780
-
-functions-parse.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-b77eb406b67335f4d4198a041619965f
-2010-03-11T07:55:56.999915Z
-6386
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4734
-
-functions-installcomponents.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-8624a8eda565ebd3ef14269e329ac8c4
-2010-01-06T19:15:24.597719Z
-5795
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3573
-
-functions-mountdisk.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-b331e04625ce6372111a19267625f069
-2010-05-16T18:52:47.285311Z
-6724
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4757
-
-functions-extractimage.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-64de3ea9deb361c817267bcadabdadcf
-2010-05-09T01:44:47.258849Z
-6682
-johnh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7362
-
-functions-mountoptical.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-fac8df44ce04d39c0ec3c494cccc5578
-2009-12-29T19:30:31.237756Z
-5711
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-2882
-
-functions-newfs.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-204d8c20ba158460418ea91a0b521e79
-2010-05-16T18:52:47.285311Z
-6724
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4592
-
-functions-runcommands.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-0da82dc876435b06828c90afdfb8deec
-2009-10-29T14:29:55.972326Z
-4809
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-1535
-
-functions-networking.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-0bc6f149d9fbb76d7d0ef3882b8401b5
-2010-05-11T17:59:10.123893Z
-6693
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7717
-
-functions-cleanup.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-744bae2df1b9be9134c261b6ca59d862
-2010-05-16T18:52:47.285311Z
-6724
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-10169
-
-functions-upgrade.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-c3e6b574af945d598161d638f980194c
-2010-04-07T16:05:18.981194Z
-6521
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-7629
-
-functions-disk.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-3db491d9ddbdbbe16c81003a1fe1dfd7
-2010-05-20T12:37:14.779822Z
-6746
-kris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-16748
-
-parseconfig.sh
-file
-
-
-
-
-2010-05-23T00:20:49.000000Z
-a72e0c373850c6798eae69a79aa970d2
-2010-05-09T01:44:47.258849Z
-6682
-johnh
-has-props
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-3508
-
diff --git a/PCBSD/pc-sysinstall/backend/.svn/lock b/PCBSD/pc-sysinstall/backend/.svn/lock
deleted file mode 100644
index e69de29..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/lock
+++ /dev/null
diff --git a/PCBSD/pc-sysinstall/backend/.svn/prop-base/parseconfig.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/prop-base/parseconfig.sh.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/prop-base/parseconfig.sh.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/PCBSD/pc-sysinstall/backend/.svn/prop-base/startautoinstall.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/prop-base/startautoinstall.sh.svn-base
deleted file mode 100644
index 869ac71..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/prop-base/startautoinstall.sh.svn-base
+++ /dev/null
@@ -1,5 +0,0 @@
-K 14
-svn:executable
-V 1
-*
-END
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-bsdlabel.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-bsdlabel.sh.svn-base
deleted file mode 100644
index af7813e..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-bsdlabel.sh.svn-base
+++ /dev/null
@@ -1,592 +0,0 @@
-#!/bin/sh
-# Functions related to disk operations using bsdlabel
-
-# Check if we are are provided a geli password on the nextline of the config
-check_for_enc_pass()
-{
- CURLINE="${1}"
-
- get_next_cfg_line "${CFGF}" "${CURLINE}"
- echo ${VAL} | grep "^encpass=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- # Found a password, return it
- get_value_from_string "${VAL}"
- return
- fi
-
- VAL="" ; export VAL
- return -1
-};
-
-# On check on the disk-label line if we have any extra vars for this device
-# Only enabled for ZFS devices now, may add other xtra options in future for other FS's
-get_fs_line_xvars()
-{
- ACTIVEDEV="${1}"
- LINE="${2}"
-
- echo $LINE | grep ' (' >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
-
- # See if we are looking for ZFS specific options
- echo $LINE | grep '^ZFS' >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- ZTYPE="NONE"
- ZFSVARS="`echo $LINE | cut -d '(' -f 2- | cut -d ')' -f 1`"
-
- # Check if we are doing raidz setup
- echo $ZFSVARS | grep "^raidz:" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- ZTYPE="raidz"
- ZFSVARS="`echo $ZFSVARS | sed 's|raidz: ||g' | sed 's|raidz:||g'`"
- fi
-
- echo $ZFSVARS | grep "^mirror:" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- ZTYPE="mirror"
- ZFSVARS="`echo $ZFSVARS | sed 's|mirror: ||g' | sed 's|mirror:||g'`"
- _nZFS=""
-
- # Using mirroring, setup boot partitions on each disk
- for i in $ZFSVARS
- do
- is_disk "$i"
- if [ "$?" = "0" ] ; then
- init_gpt_full_disk "$i"
- rc_halt "gpart add -t freebsd-zfs ${i}"
- rc_halt "gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ${i}"
- _nZFS="$_nZFS ${i}p2"
- else
- _nZFS="$_nZFS ${i}"
- fi
- done
- ZFSVARS=`echo "$_nZFS" | tr -s ' '`
- fi
-
- # Return the ZFS options
- if [ "${ZTYPE}" = "NONE" ] ; then
- VAR="${ACTIVEDEV} ${ZFSVARS}"
- else
- VAR="${ZTYPE} ${ACTIVEDEV} ${ZFSVARS}"
- fi
- export VAR
- return
- fi # End of ZFS block
-
-
- fi # End of xtra-options block
-
- # If we got here, set VAR to empty and export
- VAR=""
- export VAR
- return
-};
-
-# Function which creates a unique label name for the specified mount
-gen_glabel_name()
-{
- MOUNT="$1"
- TYPE="$2"
- NUM="0"
- MAXNUM="20"
-
- # Check if we are doing /, and rename it
- if [ "$MOUNT" = "/" ]
- then
- NAME="rootfs"
- else
- # If doing a swap partition, also rename it
- if [ "${TYPE}" = "SWAP" ]
- then
- NAME="swap"
- else
- NAME="`echo $MOUNT | sed 's|/||g' | sed 's| ||g'`"
- fi
- fi
-
- # Loop through and break when we find our first available label
- while
- Z=1
- do
- glabel status | grep "${NAME}${NUM}" >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- break
- else
- NUM="`expr ${NUM} + 1`"
- fi
-
- if [ $NUM -gt $MAXNUM ]
- then
- exit_err "Cannot allocate additional glabel name for $NAME"
- break
- fi
- done
-
-
- VAL="${NAME}${NUM}"
- export VAL
-};
-
-# Function to setup / stamp a legacy MBR bsdlabel
-setup_mbr_partitions()
-{
-
- DISKTAG="$1"
- WRKSLICE="$2"
- FOUNDPARTS="1"
-
-
- # Lets setup the BSDLABEL
- BSDLABEL="${TMPDIR}/bsdLabel-${WRKSLICE}"
- export BSDLABEL
- rm $BSDLABEL >/dev/null 2>/dev/null
- echo "# /dev/${WRKSLICE}" >>$BSDLABEL
- echo "8 partitions:" >>$BSDLABEL
- echo "# size offset fstype bsize bps/cpg" >>$BSDLABEL
-
- PARTLETTER="a"
-
- # Lets read in the config file now and populate this
- while read line
- do
- # Check for data on this slice
- echo $line | grep "^${DISKTAG}-part=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found a slice- entry, lets get the slice info
- get_value_from_string "${line}"
- STRING="$VAL"
- FOUNDPARTS="0"
-
- # We need to split up the string now, and pick out the variables
- FS=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 1`
- SIZE=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 2`
- MNT=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 3`
-
- # Check if we have a .eli extension on this FS
- echo ${FS} | grep ".eli" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- FS="`echo ${FS} | cut -d '.' -f 1`"
- ENC="ON"
- check_for_enc_pass "${line}"
- if [ "${VAL}" != "" ] ; then
- # We have a user supplied password, save it for later
- ENCPASS="${VAL}"
- fi
- else
- ENC="OFF"
- fi
-
- # Check if the user tried to setup / as an encrypted partition
- check_for_mount "${MNT}" "/"
- if [ "${?}" = "0" -a "${ENC}" = "ON" ]
- then
- USINGENCROOT="0" ; export USINGENCROOT
- fi
-
- # Now check that these values are sane
- case $FS in
- UFS|UFS+S|UFS+J|ZFS|SWAP) ;;
- *) exit_err "ERROR: Invalid file system specified on $line" ;;
- esac
-
- # Check that we have a valid size number
- expr $SIZE + 1 >/dev/null 2>/dev/null
- if [ "$?" != "0" ]; then
- exit_err "ERROR: The size specified on $line is invalid"
- fi
-
- # Check that the mount-point starts with /
- echo "$MNT" | grep -e "^/" -e "^none" >/dev/null 2>/dev/null
- if [ "$?" != "0" ]; then
- exit_err "ERROR: The mount-point specified on $line is invalid"
- fi
-
- if [ "$SIZE" = "0" ]
- then
- SOUT="*"
- else
- SOUT="${SIZE}M"
- fi
-
- # OK, we passed all tests, now lets put these values into a config
- # If the part
- if [ "${PARTLETTER}" = "a" ]
- then
- if [ "$FS" = "SWAP" ]
- then
- echo "a: ${SOUT} * swap 0 0" >>${BSDLABEL}
- else
- echo "a: ${SOUT} 0 4.2BSD 0 0" >>${BSDLABEL}
- fi
-
- # Check if we found a valid root partition
- check_for_mount "${MNT}" "/"
- if [ "$?" = "0" ] ; then
- FOUNDROOT="0" ; export FOUNDROOT
- fi
-
- # Check if we have a "/boot" instead
- check_for_mount "${MNT}" "/boot"
- if [ "${?}" = "0" ] ; then
- USINGBOOTPART="0" ; export USINGBOOTPART
- if [ "${FS}" != "UFS" -a "${FS}" != "UFS+S" -a "${FS}" != "UFS+J" ]
- then
- exit_err "/boot partition must be formatted with UFS"
- fi
- fi
-
- else
- # Done with the a: partitions
-
- # Check if we found a valid root partition not on a:
- check_for_mount "${MNT}" "/"
- if [ "${?}" = "0" ] ; then
- FOUNDROOT="1" ; export FOUNDROOT
- fi
-
- # Check if we have a /boot partition, and fail since its not first
- check_for_mount "${MNT}" "/boot"
- if [ "${?}" = "0" ] ; then
- exit_err "/boot partition must be first partition"
- fi
-
-
- if [ "$FS" = "SWAP" ]
- then
- echo "${PARTLETTER}: ${SOUT} * swap" >>${BSDLABEL}
- else
- echo "${PARTLETTER}: ${SOUT} * 4.2BSD" >>${BSDLABEL}
- fi
- fi
-
- # Generate a unique label name for this mount
- gen_glabel_name "${MNT}" "${FS}"
- PLABEL="${VAL}"
-
- # Get any extra options for this fs / line
- get_fs_line_xvars "${WRKSLICE}${PARTLETTER}" "${STRING}"
- XTRAOPTS="${VAR}"
-
- # Save this data to our partition config dir
- echo "${FS}:${MNT}:${ENC}:${PLABEL}:MBR:${XTRAOPTS}" >${PARTDIR}/${WRKSLICE}${PARTLETTER}
-
- # If we have a enc password, save it as well
- if [ ! -z "${ENCPASS}" ] ; then
- echo "${ENCPASS}" >${PARTDIR}-enc/${WRKSLICE}${PARTLETTER}-encpass
- fi
-
- # This partition letter is used, get the next one
- case ${PARTLETTER} in
- a) PARTLETTER="b" ;;
- b) # When we hit b, add the special c: setup for bsdlabel
- echo "c: * * unused" >>${BSDLABEL}
- PARTLETTER="d" ;;
- d) PARTLETTER="e" ;;
- e) PARTLETTER="f" ;;
- f) PARTLETTER="g" ;;
- g) PARTLETTER="h" ;;
- h) PARTLETTER="ERR" ;;
- *) exit_err "ERROR: bsdlabel only supports up to letter h for partitions." ;;
- esac
-
- fi # End of subsection locating a slice in config
-
- echo $line | grep "^commitDiskLabel" >/dev/null 2>/dev/null
- if [ "$?" = "0" -a "${FOUNDPARTS}" = "0" ]
- then
- # Found our flag to commit this label setup, check that we found at least 1 partition and do it
- if [ "${PARTLETTER}" != "a" ]
- then
- # Check if we only had 1 partition, and make sure we add "c:" section to label
- if [ "${PARTLETTER}" = "b" ]
- then
- echo "c: * * unused" >>${BSDLABEL}
- fi
-
- echo "bsdlabel -R -B /dev/${WRKSLICE} ${BSDLABEL}"
- bsdlabel -R -B ${WRKSLICE} ${BSDLABEL}
-
- break
- else
- exit_err "ERROR: commitDiskLabel was called without any partition entries for it!"
- fi
- fi
- done <${CFGF}
-};
-
-# Function to setup partitions using gpt
-setup_gpt_partitions()
-{
- DISKTAG="$1"
- DISK="$2"
- FOUNDPARTS="1"
-
- # Lets read in the config file now and setup our GPT partitions
- CURPART="2"
- while read line
- do
- # Check for data on this slice
- echo $line | grep "^${DISKTAG}-part=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- FOUNDPARTS="0"
- # Found a slice- entry, lets get the slice info
- get_value_from_string "${line}"
- STRING="$VAL"
-
- # We need to split up the string now, and pick out the variables
- FS=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 1`
- SIZE=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 2`
- MNT=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 3`
-
- # Check if we have a .eli extension on this FS
- echo ${FS} | grep ".eli" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- FS="`echo ${FS} | cut -d '.' -f 1`"
- ENC="ON"
- check_for_enc_pass "${line}"
- if [ "${VAL}" != "" ] ; then
- # We have a user supplied password, save it for later
- ENCPASS="${VAL}"
- fi
- else
- ENC="OFF"
- fi
-
- # Check if the user tried to setup / as an encrypted partition
- check_for_mount "${MNT}" "/"
- if [ "${?}" = "0" -a "${ENC}" = "ON" ]
- then
- USINGENCROOT="0" ; export USINGENCROOT
- fi
-
- # Now check that these values are sane
- case $FS in
- UFS|UFS+S|UFS+J|ZFS|SWAP) ;;
- *) exit_err "ERROR: Invalid file system specified on $line" ;;
- esac
-
- # Check that we have a valid size number
- expr $SIZE + 1 >/dev/null 2>/dev/null
- if [ "$?" != "0" ]; then
- exit_err "ERROR: The size specified on $line is invalid"
- fi
-
- # Check that the mount-point starts with /
- echo "$MNT" | grep -e "^/" -e "^none" >/dev/null 2>/dev/null
- if [ "$?" != "0" ]; then
- exit_err "ERROR: The mount-point specified on $line is invalid"
- fi
-
- if [ "$SIZE" = "0" ]
- then
- SOUT=""
- else
- SOUT="-s ${SIZE}M"
- fi
-
- # Check if we found a valid root partition
- check_for_mount "${MNT}" "/"
- if [ "${?}" = "0" ] ; then
- if [ "${CURPART}" = "2" ] ; then
- FOUNDROOT="0" ; export FOUNDROOT
- else
- FOUNDROOT="1" ; export FOUNDROOT
- fi
- fi
-
- check_for_mount "${MNT}" "/boot"
- if [ "${?}" = "0" ] ; then
- if [ "${CURPART}" = "2" ] ; then
- USINGBOOTPART="0" ; export USINGBOOTPART
- if [ "${FS}" != "UFS" -a "${FS}" != "UFS+S" -a "${FS}" != "UFS+J" ]
- then
- exit_err "/boot partition must be formatted with UFS"
- fi
- else
- exit_err "/boot partition must be first partition"
- fi
- fi
-
- # Generate a unique label name for this mount
- gen_glabel_name "${MNT}" "${FS}"
- PLABEL="${VAL}"
-
- # Get any extra options for this fs / line
- get_fs_line_xvars "${DISK}p${CURPART}" "${STRING}"
- XTRAOPTS="${VAR}"
-
- # Figure out the gpart type to use
- case ${FS} in
- ZFS) PARTYPE="freebsd-zfs" ;;
- SWAP) PARTYPE="freebsd-swap" ;;
- *) PARTYPE="freebsd-ufs" ;;
- esac
-
- # Create the partition
- rc_halt "gpart add ${SOUT} -t ${PARTYPE} ${DISK}"
-
- # Check if this is a root / boot partition, and stamp the right loader
- for TESTMNT in `echo ${MNT} | sed 's|,| |g'`
- do
- if [ "${TESTMNT}" = "/" -a -z "${BOOTTYPE}" ] ; then
- BOOTTYPE="${PARTYPE}"
- fi
- if [ "${TESTMNT}" = "/boot" ] ; then
- BOOTTYPE="${PARTYPE}"
- fi
- done
-
- # Save this data to our partition config dir
- echo "${FS}:${MNT}:${ENC}:${PLABEL}:GPT:${XTRAOPTS}" >${PARTDIR}/${DISK}p${CURPART}
-
- # Clear out any headers
- sleep 2
- dd if=/dev/zero of=${DISK}p${CURPART} count=2048 >/dev/null 2>/dev/null
-
- # If we have a enc password, save it as well
- if [ ! -z "${ENCPASS}" ] ; then
- echo "${ENCPASS}" >${PARTDIR}-enc/${DISK}p${CURPART}-encpass
- fi
-
- # Increment our parts counter
- CURPART="`expr ${CURPART} + 1`"
-
- fi # End of subsection locating a slice in config
-
- echo $line | grep "^commitDiskLabel" >/dev/null 2>/dev/null
- if [ "$?" = "0" -a "${FOUNDPARTS}" = "0" ]
- then
-
- # If this is the boot disk, stamp the right gptboot
- if [ ! -z "${BOOTTYPE}" ] ; then
- case ${BOOTTYPE} in
- freebsd-ufs) rc_halt "gpart bootcode -p /boot/gptboot -i 1 ${DISK}" ;;
- freebsd-zfs) rc_halt "gpart bootcode -p /boot/gptzfsboot -i 1 ${DISK}" ;;
- esac
- fi
-
-
- # Found our flag to commit this label setup, check that we found at least 1 partition
- if [ "${CURPART}" = "2" ] ; then
- exit_err "ERROR: commitDiskLabel was called without any partition entries for it!"
- fi
-
- break
- fi
- done <${CFGF}
-};
-
-# Reads through the config and sets up a BSDLabel for the given slice
-populate_disk_label()
-{
- if [ -z "${1}" ]
- then
- exit_err "ERROR: populate_disk_label() called without argument!"
- fi
-
- # Set some vars from the given working slice
- disk="`echo $1 | cut -d '-' -f 1`"
- slicenum="`echo $1 | cut -d '-' -f 2`"
- type="`echo $1 | cut -d '-' -f 3`"
-
- # Set WRKSLICE based upon format we are using
- if [ "$type" = "mbr" ] ; then
- wrkslice="${disk}s${slicenum}"
- fi
- if [ "$type" = "gpt" ] ; then
- wrkslice="${disk}p${slicenum}"
- fi
-
- if [ -e "${SLICECFGDIR}/${wrkslice}" ]
- then
- disktag="`cat ${SLICECFGDIR}/${wrkslice}`"
- else
- exit_err "ERROR: Missing SLICETAG data. This shouldn't happen - please let the developers know"
- fi
-
- # Using Traditional MBR for dual-booting
- if [ "$type" = "mbr" ] ; then
- setup_mbr_partitions "${disktag}" "${wrkslice}"
- fi
-
- # Using entire disk mode, use GPT for this
- if [ "$type" = "gpt" ] ; then
- setup_gpt_partitions "${disktag}" "${disk}"
- fi
-
-};
-
-# Function which reads in the disk slice config, and performs it
-setup_disk_label()
-{
- # We are ready to start setting up the label, lets read the config and do the actions
-
- # First confirm that we have a valid WORKINGSLICES
- if [ -z "${WORKINGSLICES}" ]; then
- exit_err "ERROR: No slices were setup! Please report this to the maintainers"
- fi
-
- # Check that the slices we have did indeed get setup and gpart worked
- for i in $WORKINGSLICES
- do
- disk="`echo $i | cut -d '-' -f 1`"
- pnum="`echo $i | cut -d '-' -f 2`"
- type="`echo $i | cut -d '-' -f 3`"
- if [ "$type" = "mbr" -a ! -e "/dev/${disk}s${pnum}" ] ; then
- exit_err "ERROR: The partition ${i} doesn't exist! gpart failure!"
- fi
- if [ "$type" = "gpt" -a ! -e "/dev/${disk}p${pnum}" ] ; then
- exit_err "ERROR: The partition ${i} doesn't exist! gpart failure!"
- fi
- done
-
- # Setup some files which we'll be referring to
- LABELLIST="${TMPDIR}/workingLabels"
- export LABELLIST
- rm $LABELLIST >/dev/null 2>/dev/null
-
- # Set our flag to determine if we've got a valid root partition in this setup
- FOUNDROOT="-1"
- export FOUNDROOT
-
- # Check if we are using a /boot partition
- USINGBOOTPART="1"
- export USINGBOOTPART
-
- # Set encryption on root check
- USINGENCROOT="1" ; export USINGENCROOT
-
- # Make the tmp directory where we'll store FS info & mount-points
- rm -rf ${PARTDIR} >/dev/null 2>/dev/null
- mkdir -p ${PARTDIR} >/dev/null 2>/dev/null
- rm -rf ${PARTDIR}-enc >/dev/null 2>/dev/null
- mkdir -p ${PARTDIR}-enc >/dev/null 2>/dev/null
-
- for i in $WORKINGSLICES
- do
- populate_disk_label "${i}"
- done
-
- # Check if we made a root partition
- if [ "$FOUNDROOT" = "-1" ]
- then
- exit_err "ERROR: No root (/) partition specified!!"
- fi
-
- # Check if we made a root partition
- if [ "$FOUNDROOT" = "1" -a "${USINGBOOTPART}" != "0" ]
- then
- exit_err "ERROR: (/) partition isn't first partition on disk!"
- fi
-
- if [ "${USINGENCROOT}" = "0" -a "${USINGBOOTPART}" != "0" ]
- then
- exit_err "ERROR: Can't encrypt (/) with no (/boot) partition!"
- fi
-};
-
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-cleanup.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-cleanup.sh.svn-base
deleted file mode 100644
index 2c7ffd0..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-cleanup.sh.svn-base
+++ /dev/null
@@ -1,386 +0,0 @@
-#!/bin/sh
-# Functions which perform the final cleanup after an install
-
-# Finishes up with ZFS setup before unmounting
-zfs_cleanup_unmount()
-{
- # Loop through our FS and see if we have any ZFS partitions to cleanup
- for PART in `ls ${PARTDIR}`
- do
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- ZPOOLNAME=$(get_zpool_name "${PART}")
-
- if [ "$PARTFS" = "ZFS" ]
- then
- # Check if we have multiple zfs mounts specified
- for ZMNT in `echo ${PARTMNT} | sed 's|,| |g'`
- do
- if [ "${ZMNT}" = "/" ]
- then
- # Make sure we haven't already added the zfs boot line when
- # Creating a dedicated "/boot" partition
- cat ${FSMNT}/boot/loader.conf 2>/dev/null | grep "vfs.root.mountfrom=" >/dev/null 2>/dev/null
- if [ "$?" != "0" ] ; then
- echo "vfs.root.mountfrom=\"zfs:${ZPOOLNAME}\"" >> ${FSMNT}/boot/loader.conf
- fi
- FOUNDZFSROOT="${ZPOOLNAME}" ; export FOUNDZFSROOT
- fi
- done
- FOUNDZFS="1"
- fi
- done
-
- if [ ! -z "${FOUNDZFS}" ]
- then
- # Check if we need to add our ZFS flags to rc.conf, src.conf and loader.conf
- cat ${FSMNT}/boot/loader.conf 2>/dev/null | grep 'zfs_load="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'zfs_load="YES"' >>${FSMNT}/boot/loader.conf
- fi
- cat ${FSMNT}/etc/rc.conf 2>/dev/null | grep 'zfs_enable="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'zfs_enable="YES"' >>${FSMNT}/etc/rc.conf
- fi
-
- sleep 2
- # Copy over any ZFS cache data
- cp /boot/zfs/* ${FSMNT}/boot/zfs/
-
- # Copy the hostid so that our zfs cache works
- cp /etc/hostid ${FSMNT}/etc/hostid
- fi
-
- # Loop through our FS and see if we have any ZFS partitions to cleanup
- for PART in `ls ${PARTDIR}`
- do
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
- ZPOOLNAME=$(get_zpool_name "${PART}")
-
- if [ "$PARTFS" = "ZFS" ]
- then
- # Check if we have multiple zfs mounts specified
- for ZMNT in `echo ${PARTMNT} | sed 's|,| |g'`
- do
- PARTMNTREV="${ZMNT} ${PARTMNTREV}"
- done
-
- for ZMNT in ${PARTMNTREV}
- do
- if [ "${ZMNT}" != "/" ]
- then
- rc_halt "zfs set mountpoint=${ZMNT} ${ZPOOLNAME}${ZMNT}"
- rc_halt "zfs unmount ${ZPOOLNAME}${ZMNT}"
- sleep 2
- fi
- done
- fi
- done
-
-};
-
-# Function which performs the specific setup for using a /boot partition
-setup_dedicated_boot_part()
-{
- ROOTFS="${1}"
- ROOTFSTYPE="${2}"
- BOOTFS="${3}"
- BOOTMNT="${4}"
-
- # Set the root mount in loader.conf
- echo "vfs.root.mountfrom=\"${ROOTFSTYPE}:${ROOTFS}\"" >> ${FSMNT}/boot/loader.conf
- rc_halt "mkdir -p ${FSMNT}/${BOOTMNT}/boot"
- rc_halt "mv ${FSMNT}/boot/* ${FSMNT}${BOOTMNT}/boot/"
- rc_halt "mv ${FSMNT}${BOOTMNT}/boot ${FSMNT}/boot/"
- rc_halt "umount /dev/${BOOTFS}"
- rc_halt "mount /dev/${BOOTFS} ${FSMNT}${BOOTMNT}"
- rc_halt "rmdir ${FSMNT}/boot"
-
- # Strip the '/' from BOOTMNT before making symlink
- BOOTMNTNS="`echo ${BOOTMNT} | sed 's|/||g'`"
- rc_halt "chroot ${FSMNT} ln -s ${BOOTMNTNS}/boot /boot"
-
-};
-
-# Function which creates the /etc/fstab for the installed system
-setup_fstab()
-{
- FSTAB="${FSMNT}/etc/fstab"
- rm ${FSTAB} >/dev/null 2>/dev/null
-
- # Create the header
- echo "# Device Mountpoint FStype Options Dump Pass" >> ${FSTAB}
-
- # Loop through the partitions, and start creating /etc/fstab
- for PART in `ls ${PARTDIR}`
- do
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
- PARTLABEL="`cat ${PARTDIR}/${PART} | cut -d ':' -f 4`"
-
- DRIVE="`echo ${PART} | rev | cut -b 4- | rev`"
- # Check if this device is being mirrored
- if [ -e "${MIRRORCFGDIR}/${DRIVE}" ]
- then
- # This device is apart of a gmirror, lets reset PART to correct value
- MDRIVE="mirror/`cat ${MIRRORCFGDIR}/${DRIVE} | cut -d ':' -f 3`"
- TMP="`echo ${PART} | rev | cut -b -3 | rev`"
- PART="${MDRIVE}${TMP}"
- PARTLABEL=""
- fi
-
- # Unset EXT
- EXT=""
-
- # Figure out if we are using a glabel, or the raw name for this entry
- if [ ! -z "${PARTLABEL}" ]
- then
- DEVICE="label/${PARTLABEL}"
- else
- # Check if using encryption
- if [ "${PARTENC}" = "ON" ] ; then
- EXT=".eli"
- fi
-
- if [ "${PARTFS}" = "UFS+J" ] ; then
- EXT="${EXT}.journal"
- fi
- DEVICE="${PART}${EXT}"
- fi
-
-
- # Set our ROOTFSTYPE for loader.conf if necessary
- check_for_mount "${PARTMNT}" "/"
- if [ "$?" = "0" ] ; then
- if [ "${PARTFS}" = "ZFS" ] ; then
- ROOTFSTYPE="zfs"
- XPOOLNAME=$(get_zpool_name "${PART}")
- ROOTFS="${ZPOOLNAME}"
- else
- ROOTFS="${DEVICE}"
- ROOTFSTYPE="ufs"
- fi
- fi
-
- # Only create non-zfs partitions
- if [ "${PARTFS}" != "ZFS" ]
- then
-
- # Make sure geom_journal is loaded
- if [ "${PARTFS}" = "UFS+J" ] ; then
- setup_gjournal
- fi
-
- # Save the BOOTFS for call at the end
- if [ "${PARTMNT}" = "/boot" ] ; then
- BOOTFS="${PART}${EXT}"
- BOOTMNT="${BOOT_PART_MOUNT}"
- PARTMNT="${BOOTMNT}"
- fi
-
- # Echo out the fstab entry now
- if [ "${PARTFS}" = "SWAP" ]
- then
- echo "/dev/${DEVICE} none swap sw 0 0" >> ${FSTAB}
- else
- echo "/dev/${DEVICE} ${PARTMNT} ufs rw,noatime 1 1" >> ${FSTAB}
- fi
-
- fi # End of ZFS Check
- done
-
- # Setup some specific PC-BSD fstab options
- if [ "$INSTALLTYPE" != "FreeBSD" ]
- then
- echo "procfs /proc procfs rw 0 0" >> ${FSTAB}
- echo "linprocfs /compat/linux/proc linprocfs rw 0 0" >> ${FSTAB}
- echo "tmpfs /tmp tmpfs rw,mode=1777 0 0" >> ${FSTAB}
- fi
-
- # If we have a dedicated /boot, run the post-install setup of it now
- if [ ! -z "${BOOTMNT}" ] ; then
- setup_dedicated_boot_part "${ROOTFS}" "${ROOTFSTYPE}" "${BOOTFS}" "${BOOTMNT}"
- fi
-
-};
-
-# Setup our disk mirroring with gmirror
-setup_gmirror()
-{
- NUM="0"
-
- cd ${MIRRORCFGDIR}
- for DISK in `ls *`
- do
- MIRRORDISK="`cat ${DISK} | cut -d ':' -f 1`"
- MIRRORBAL="`cat ${DISK} | cut -d ':' -f 2`"
-
- # Create this mirror device
- gmirror label -vb $MIRRORBAL gm${NUM} /dev/${DISK}
-
- sleep 3
-
- # Save the gm<num> device in our config
- echo "${MIRRORDISK}:${MIRRORBAL}:gm${NUM}" > ${DISK}
-
- sleep 3
-
- NUM="`expr ${NUM} + 1`"
- done
-
-
- cat ${FSMNT}/boot/loader.conf 2>/dev/null | grep 'geom_mirror_load="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'geom_mirror_load="YES"' >>${FSMNT}/boot/loader.conf
- fi
-
-};
-
-# Function which saves geli keys and sets up loading of them at boot
-setup_geli_loading()
-{
-
- # Make our keys dir
- mkdir -p ${FSMNT}/boot/keys >/dev/null 2>/dev/null
-
- cd ${GELIKEYDIR}
- for KEYFILE in `ls *`
- do
- # Figure out the partition name based on keyfile name removing .key
- PART="`echo ${KEYFILE} | cut -d '.' -f 1`"
-
- # Add the entries to loader.conf to start this geli provider at boot
- echo "geli_${PART}_keyfile0_load=\"YES\"" >> ${FSMNT}/boot/loader.conf
- echo "geli_${PART}_keyfile0_type=\"${PART}:geli_keyfile0\"" >> ${FSMNT}/boot/loader.conf
- echo "geli_${PART}_keyfile0_name=\"/boot/keys/${KEYFILE}\"" >> ${FSMNT}/boot/loader.conf
-
- # If we have a passphrase, set it up now
- if [ -e "${PARTDIR}-enc/${PART}-encpass" ] ; then
- cat ${PARTDIR}-enc/${PART}-encpass | geli setkey -S -n 0 -p -k ${KEYFILE} -K ${KEYFILE} ${PART}
- geli configure -b ${PART}
- fi
-
- # Copy the key to the disk
- cp ${KEYFILE} ${FSMNT}/boot/keys/${KEYFILE}
- done
-
- # Make sure we have geom_eli set to load at boot
- cat ${FSMNT}/boot/loader.conf 2>/dev/null | grep 'geom_eli_load="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'geom_eli_load="YES"' >>${FSMNT}/boot/loader.conf
- fi
-
-};
-
-
-# Function to generate a random hostname if none was specified
-gen_hostname()
-{
- RAND="`jot -r 1 1 9000`"
-
- if [ "$INSTALLTYPE" = "FreeBSD" ]
- then
- VAL="freebsd-${RAND}"
- else
- VAL="pcbsd-${RAND}"
- fi
-
- export VAL
-
-};
-
-# Function which sets up the hostname for the system
-setup_hostname()
-{
-
- get_value_from_cfg hostname
- HOSTNAME="${VAL}"
-
- # If we don't have a hostname, make one up
- if [ -z "${HOSTNAME}" ]
- then
- gen_hostname
- HOSTNAME="${VAL}"
- fi
-
- # Clean up any saved hostname
- cat ${FSMNT}/etc/rc.conf | grep -v "hostname=" >${FSMNT}/etc/rc.conf.new
- mv ${FSMNT}/etc/rc.conf.new ${FSMNT}/etc/rc.conf
-
- # Set the hostname now
- echo_log "Setting hostname: ${HOSTNAME}"
- echo "hostname=\"${HOSTNAME}\"" >> ${FSMNT}/etc/rc.conf
- sed -i -e "s|my.domain|${HOSTNAME} ${HOSTNAME}|g" ${FSMNT}/etc/hosts
-
-};
-
-
-# Check and make sure geom_journal is enabled on the system
-setup_gjournal()
-{
-
- # Make sure we have geom_journal set to load at boot
- cat ${FSMNT}/boot/loader.conf 2>/dev/null | grep 'geom_journal_load="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'geom_journal_load="YES"' >>${FSMNT}/boot/loader.conf
- fi
-
-};
-
-# Function which sets the root password from the install config
-set_root_pw()
-{
- get_value_from_cfg_with_spaces rootPass
- PW="${VAL}"
-
- # If we don't have a root pass, return
- if [ -z "${PW}" ]
- then
- return 0
- fi
-
- echo_log "Setting root password"
- echo "${PW}" > ${FSMNT}/.rootpw
- run_chroot_cmd "cat /.rootpw | pw usermod root -h 0"
- rc_halt "rm ${FSMNT}/.rootpw"
-
-};
-
-
-run_final_cleanup()
-{
-
- # Check if we need to run any gmirror setup
- ls ${MIRRORCFGDIR}/* >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Lets setup gmirror now
- setup_gmirror
- fi
-
- # Check if we need to save any geli keys
- ls ${GELIKEYDIR}/* >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Lets setup geli loading
- setup_geli_loading
- fi
-
- # Set a hostname on the install system
- setup_hostname
-
- # Set the root_pw if it is specified
- set_root_pw
-
- # Generate the fstab for the installed system
- setup_fstab
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-disk.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-disk.sh.svn-base
deleted file mode 100644
index 17cfb63..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-disk.sh.svn-base
+++ /dev/null
@@ -1,646 +0,0 @@
-#!/bin/sh
-# Functions related to disk operations using gpart
-
-# See if device is a full disk or partition/slice
-is_disk() {
- for dsk in `sysctl -n kern.disks`
- do
- if [ "$dsk" = "${1}" ] ; then return 0 ; fi
- done
-
- return 1
-}
-
-# Get a MBR partitions sysid
-get_partition_sysid_mbr()
-{
- INPART="0"
- DISK="$1"
- PARTNUM=`echo ${2} | sed "s|${DISK}s||g"`
- fdisk ${DISK} >${TMPDIR}/disk-${DISK} 2>/dev/null
- while read i
- do
- echo "$i" | grep "The data for partition" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- INPART="0"
- PART="`echo ${i} | cut -d ' ' -f 5`"
- if [ "$PART" = "$PARTNUM" ] ; then
- INPART="1"
- fi
- fi
-
- # In the partition section
- if [ "$INPART" = "1" ] ; then
- echo "$i" | grep "^sysid" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- SYSID="`echo ${i} | tr -s '\t' ' ' | cut -d ' ' -f 2`"
- break
- fi
-
- fi
-
- done < ${TMPDIR}/disk-${DISK}
- rm ${TMPDIR}/disk-${DISK}
-
- VAL="${SYSID}"
- export VAL
-};
-
-# Get the partitions MBR label
-get_partition_label_mbr()
-{
- INPART="0"
- DISK="$1"
- PARTNUM=`echo ${2} | sed "s|${DISK}s||g"`
- fdisk ${DISK} >${TMPDIR}/disk-${DISK} 2>/dev/null
- while read i
- do
- echo "$i" | grep "The data for partition" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- INPART="0"
- PART="`echo ${i} | cut -d ' ' -f 5`"
- if [ "$PART" = "$PARTNUM" ] ; then
- INPART="1"
- fi
- fi
-
- # In the partition section
- if [ "$INPART" = "1" ] ; then
- echo "$i" | grep "^sysid" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- LABEL="`echo ${i} | tr -s '\t' ' ' | cut -d ',' -f 2-10`"
- break
- fi
-
- fi
-
- done < ${TMPDIR}/disk-${DISK}
- rm ${TMPDIR}/disk-${DISK}
-
- VAL="${LABEL}"
- export VAL
-};
-
-# Get a GPT partitions label
-get_partition_label_gpt()
-{
- DISK="${1}"
- PARTNUM=`echo ${2} | sed "s|${DISK}p||g"`
-
- gpart show ${DISK} >${TMPDIR}/disk-${DISK}
- while read i
- do
- SLICE="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 3`"
- if [ "${SLICE}" = "${PARTNUM}" ] ; then
- LABEL="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 4`"
- break
- fi
- done <${TMPDIR}/disk-${DISK}
- rm ${TMPDIR}/disk-${DISK}
-
- VAL="${LABEL}"
- export VAL
-};
-
-# Get a partitions startblock
-get_partition_startblock()
-{
- DISK="${1}"
- PARTNUM=`echo ${2} | sed "s|${DISK}p||g" | sed "s|${DISK}s||g"`
-
- gpart show ${DISK} >${TMPDIR}/disk-${DISK}
- while read i
- do
- SLICE="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 3`"
- if [ "$SLICE" = "${PARTNUM}" ] ; then
- SB="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 1`"
- break
- fi
- done <${TMPDIR}/disk-${DISK}
- rm ${TMPDIR}/disk-${DISK}
-
- VAL="${SB}"
- export VAL
-};
-
-# Get a partitions blocksize
-get_partition_blocksize()
-{
- DISK="${1}"
- PARTNUM=`echo ${2} | sed "s|${DISK}p||g" | sed "s|${DISK}s||g"`
-
- gpart show ${DISK} >${TMPDIR}/disk-${DISK}
- while read i
- do
- SLICE="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 3`"
- if [ "$SLICE" = "${PARTNUM}" ] ; then
- BS="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 2`"
- break
- fi
- done <${TMPDIR}/disk-${DISK}
- rm ${TMPDIR}/disk-${DISK}
-
- VAL="${BS}"
- export VAL
-};
-
-# Function which returns the partitions on a target disk
-get_disk_partitions()
-{
- gpart show ${1} >/dev/null 2>/dev/null
- if [ "$?" != "0" ] ; then
- VAL="" ; export VAL
- return
- fi
-
- gpart show ${1} | grep "MBR" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- type="MBR"
- else
- type="GPT"
- fi
-
- SLICES="`gpart show ${1} | grep -v ${1} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 4 | sed '/^$/d'`"
- for i in ${SLICES}
- do
- case $type in
- MBR) name="${1}s${i}" ;;
- GPT) name="${1}p${i}";;
- *) name="${1}s${i}";;
- esac
- if [ -z "${RSLICES}" ]
- then
- RSLICES="${name}"
- else
- RSLICES="${RSLICES} ${name}"
- fi
- done
-
- VAL="${RSLICES}" ; export VAL
-};
-
-# Function which returns a target disks cylinders
-get_disk_cyl()
-{
- cyl=`diskinfo -v ${1} | grep "# Cylinders" | tr -s ' ' | cut -f 2`
- VAL="${cyl}" ; export VAL
-};
-
-# Function which returns a target disks sectors
-get_disk_sectors()
-{
- sec=`diskinfo -v ${1} | grep "# Sectors" | tr -s ' ' | cut -f 2`
- VAL="${sec}" ; export VAL
-};
-
-# Function which returns a target disks heads
-get_disk_heads()
-{
- head=`diskinfo -v ${1} | grep "# Heads" | tr -s ' ' | cut -f 2`
- VAL="${head}" ; export VAL
-};
-
-# Function which exports all zpools, making them safe to overwrite potentially
-export_all_zpools() {
- # Export any zpools
- for i in `zpool list -H -o name`
- do
- zpool export -f ${i}
- done
-};
-
-# Function to delete all gparts before starting an install
-delete_all_gpart()
-{
- echo_log "Deleting all gparts"
- DISK="$1"
-
- # Check for any swaps to stop
- for i in `gpart show ${DISK} 2>/dev/null | grep 'freebsd-swap' | tr -s ' ' | cut -d ' ' -f 4`
- do
- swapoff /dev/${DISK}s${i}b >/dev/null 2>/dev/null
- swapoff /dev/${DISK}p${i} >/dev/null 2>/dev/null
- done
-
- # Delete the gparts now
- for i in `gpart show ${DISK} 2>/dev/null | tr -s ' ' | cut -d ' ' -f 4`
- do
- if [ "${i}" != "${DISK}" -a "${i}" != "-" ] ; then
- rc_nohalt "gpart delete -i ${i} ${DISK}"
- fi
- done
-
- rc_nohalt "dd if=/dev/zero of=/dev/${DISK} count=3000"
-
-};
-
-# Function to export all zpools before starting an install
-stop_all_zfs()
-{
- # Export all zpools again, so that we can overwrite these partitions potentially
- for i in `zpool list -H -o name`
- do
- zpool export -f ${i}
- done
-};
-
-# Function which stops all gmirrors before doing any disk manipulation
-stop_all_gmirror()
-{
- DISK="${1}"
- GPROV="`gmirror list | grep ". Name: mirror/" | cut -d '/' -f 2`"
- for gprov in $GPROV
- do
- gmirror list | grep "Name: ${DISK}" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- echo_log "Stopping mirror $gprov $DISK"
- rc_nohalt "gmirror remove $gprov $DISK"
- rc_nohalt "dd if=/dev/zero of=/dev/${DISK} count=4096"
- fi
- done
-};
-
-# Make sure we don't have any geli providers active on this disk
-stop_all_geli()
-{
- DISK="${1}"
- cd /dev
-
- for i in `ls ${DISK}*`
- do
- echo $i | grep '.eli' >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- echo_log "Detaching GELI on ${i}"
- rc_halt "geli detach ${i}"
- fi
- done
-
-};
-
-# Function which reads in the disk slice config, and performs it
-setup_disk_slice()
-{
-
- # Cleanup any slice / mirror dirs
- rm -rf ${SLICECFGDIR} >/dev/null 2>/dev/null
- mkdir ${SLICECFGDIR}
- rm -rf ${MIRRORCFGDIR} >/dev/null 2>/dev/null
- mkdir ${MIRRORCFGDIR}
-
- # Start with disk0
- disknum="0"
-
- # Make sure all zpools are exported
- export_all_zpools
-
- # We are ready to start setting up the disks, lets read the config and do the actions
- while read line
- do
- echo $line | grep "^disk${disknum}=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Found a disk= entry, lets get the disk we are working on
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- DISK="$VAL"
-
- # Before we go further, lets confirm this disk really exists
- if [ ! -e "/dev/${DISK}" ]
- then
- exit_err "ERROR: The disk ${DISK} does not exist!"
- fi
-
- # Make sure we stop any gmirrors on this disk
- stop_all_gmirror ${DISK}
-
- # Make sure we stop any geli stuff on this disk
- stop_all_geli ${DISK}
-
- # Make sure we don't have any zpools loaded
- stop_all_zfs
-
- fi
-
- # Lets look if this device will be mirrored on another disk
- echo $line | grep "^mirror=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Found a disk= entry, lets get the disk we are working on
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- MIRRORDISK="$VAL"
-
- # Before we go further, lets confirm this disk really exists
- if [ ! -e "/dev/${MIRRORDISK}" ]
- then
- exit_err "ERROR: The mirror disk ${MIRRORDISK} does not exist!"
- fi
- fi
-
- # Lets see if we have been given a mirror balance choice
- echo $line | grep "^mirrorbal=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Found a disk= entry, lets get the disk we are working on
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- MIRRORBAL="$VAL"
- fi
-
- echo $line | grep "^partition=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found a partition= entry, lets read / set it
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- PTYPE="$VAL"
-
- # We are using free space, figure out the slice number
- if [ "${PTYPE}" = "free" -o "${PTYPE}" = "FREE" ]
- then
- # Lets figure out what number this slice will be
- LASTSLICE="`gpart show ${DISK} | grep -v ${DISK} | grep -v ' free' |tr -s '\t' ' ' | cut -d ' ' -f 4 | sed '/^$/d' | tail -n 1`"
- if [ -z "${LASTSLICE}" ]
- then
- LASTSLICE="1"
- else
- LASTSLICE="`expr $LASTSLICE + 1`"
- fi
-
- if [ $LASTSLICE -gt 4 ]
- then
- exit_err "ERROR: BSD only supports primary partitions, and there are none availble on $DISK"
- fi
-
- fi
- fi
-
- echo $line | grep "^bootManager=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found a bootManager= entry, lets read /set it
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- BMANAGER="$VAL"
- fi
-
- echo $line | grep "^commitDiskPart" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found our flag to commit this disk setup / lets do sanity check and do it
- if [ ! -z "${DISK}" -a ! -z "${PTYPE}" ]
- then
- case ${PTYPE} in
- all|ALL) tmpSLICE="${DISK}p1"
- run_gpart_full "${DISK}" "${BMANAGER}" ;;
- s1|s2|s3|s4) tmpSLICE="${DISK}${PTYPE}"
- # Get the number of the slice we are working on
- s="`echo ${PTYPE} | awk '{print substr($0,length,1)}'`"
- run_gpart_slice "${DISK}" "${BMANAGER}" "${s}" ;;
- free|FREE) tmpSLICE="${DISK}s${LASTSLICE}"
- run_gpart_free "${DISK}" "${LASTSLICE}" "${BMANAGER}" ;;
- *) exit_err "ERROR: Unknown PTYPE: $PTYPE" ;;
- esac
-
- # Now save which disk<num> this is, so we can parse it later during slice partition setup
- echo "disk${disknum}" >${SLICECFGDIR}/$tmpSLICE
-
- # Save any mirror config
- if [ ! -z "$MIRRORDISK" ]
- then
- # Default to round-robin if the user didn't specify
- if [ -z "$MIRRORBAL" ]
- then
- MIRRORBAL="round-robin"
- fi
- echo "$MIRRORDISK:$MIRRORBAL" >${MIRRORCFGDIR}/$DISK
- fi
-
-
- # Increment our disk counter to look for next disk and unset
- unset BMANAGER PTYPE DISK MIRRORDISK MIRRORBAL
- disknum="`expr $disknum + 1`"
- else
- exit_err "ERROR: commitDiskPart was called without procceding disk<num>= and partition= entries!!!"
- fi
- fi
-
- done <${CFGF}
-
-};
-
-# Stop all gjournals on disk / slice
-stop_gjournal() {
- DISK="$1"
- # Check if we need to shutdown any journals on this drive
- ls /dev/${DISK}*.journal >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- cd /dev
- for i in `ls ${DISK}*.journal`
- do
- rawjournal="`echo ${i} | cut -d '.' -f 1`"
- gjournal stop -f ${rawjournal} >>${LOGOUT} 2>>${LOGOUT}
- gjournal clear ${rawjournal} >>${LOGOUT} 2>>${LOGOUT}
- done
- fi
-} ;
-
-# Function which runs gpart and creates a single large slice
-init_gpt_full_disk()
-{
- DISK=$1
-
- # Set our sysctl so we can overwrite any geom using drives
- sysctl kern.geom.debugflags=16 >>${LOGOUT} 2>>${LOGOUT}
-
- # Stop any journaling
- stop_gjournal "${DISK}"
-
- # Remove any existing partitions
- delete_all_gpart "${DISK}"
-
- #Erase any existing bootloader
- echo_log "Cleaning up ${DISK}"
- rc_halt "dd if=/dev/zero of=/dev/${DISK} count=2048"
-
- sleep 2
-
- echo_log "Running gpart on ${DISK}"
- rc_halt "gpart create -s GPT ${DISK}"
- rc_halt "gpart add -s 128 -t freebsd-boot ${DISK}"
-
- echo_log "Stamping boot sector on ${DISK}"
- rc_halt "gpart bootcode -b /boot/pmbr ${DISK}"
-
-}
-
-# Function which runs gpart and creates a single large slice
-run_gpart_full()
-{
- DISK=$1
-
- init_gpt_full_disk "$DISK"
-
- slice="${DISK}-1-gpt"
-
- # Lets save our slice, so we know what to look for in the config file later on
- if [ -z "$WORKINGSLICES" ]
- then
- WORKINGSLICES="${slice}"
- export WORKINGSLICES
- else
- WORKINGSLICES="${WORKINGSLICES} ${slice}"
- export WORKINGSLICES
- fi
-};
-
-# Function which runs gpart on a specified s1-4 slice
-run_gpart_slice()
-{
- DISK=$1
- if [ ! -z "$2" ]
- then
- BMANAGER="$2"
- fi
-
- # Set the slice we will use later
- slice="${1}s${3}"
-
- # Set our sysctl so we can overwrite any geom using drives
- sysctl kern.geom.debugflags=16 >>${LOGOUT} 2>>${LOGOUT}
-
- # Get the number of the slice we are working on
- slicenum="$3"
-
- # Stop any journaling
- stop_gjournal "${slice}"
-
- # Make sure we have disabled swap on this drive
- if [ -e "${slice}b" ]
- then
- swapoff ${slice}b >/dev/null 2>/dev/null
- swapoff ${slice}b.eli >/dev/null 2>/dev/null
- fi
-
- # Modify partition type
- echo_log "Running gpart modify on ${DISK}"
- rc_halt "gpart modify -t freebsd -i ${slicenum} ${DISK}"
- sleep 2
-
- # Clean up old partition
- echo_log "Cleaning up $slice"
- rc_halt "dd if=/dev/zero of=/dev/${DISK}s${slicenum} count=1024"
-
- sleep 1
-
- if [ "${BMANAGER}" = "bsd" ]
- then
- echo_log "Stamping boot sector on ${DISK}"
- rc_halt "gpart bootcode -b /boot/boot0 ${DISK}"
- fi
-
- # Set the slice to the format we'll be using for gpart later
- slice="${1}-${3}-mbr"
-
- # Lets save our slice, so we know what to look for in the config file later on
- if [ -z "$WORKINGSLICES" ]
- then
- WORKINGSLICES="${slice}"
- export WORKINGSLICES
- else
- WORKINGSLICES="${WORKINGSLICES} ${slice}"
- export WORKINGSLICES
- fi
-};
-
-# Function which runs gpart and creates a new slice from free disk space
-run_gpart_free()
-{
- DISK=$1
- SLICENUM=$2
- if [ ! -z "$3" ]
- then
- BMANAGER="$3"
- fi
-
- # Set our sysctl so we can overwrite any geom using drives
- sysctl kern.geom.debugflags=16 >>${LOGOUT} 2>>${LOGOUT}
-
- slice="${DISK}s${SLICENUM}"
- slicenum="${SLICENUM}"
-
- # Working on the first slice, make sure we have MBR setup
- gpart show ${DISK} >/dev/null 2>/dev/null
- if [ "$?" != "0" -a "$SLICENUM" = "1" ] ; then
- echo_log "Initializing disk, no existing MBR setup"
- rc_halt "gpart create -s mbr ${DISK}"
- fi
-
- # Lets get the starting block first
- if [ "${slicenum}" = "1" ]
- then
- startblock="63"
- else
- # Lets figure out where the prior slice ends
- checkslice="`expr ${slicenum} - 1`"
-
- # Get starting block of this slice
- sblk=`gpart show ${DISK} | grep -v ${DISK} | tr -s '\t' ' ' | sed '/^$/d' | grep " ${checkslice} " | cut -d ' ' -f 2`
- blksize=`gpart show ${DISK} | grep -v ${DISK} | tr -s '\t' ' ' | sed '/^$/d' | grep " ${checkslice} " | cut -d ' ' -f 3`
- startblock="`expr ${sblk} + ${blksize}`"
- fi
-
- # No slice after the new slice, lets figure out the free space remaining and use it
- # Get the cyl of this disk
- get_disk_cyl "${DISK}"
- cyl="${VAL}"
-
- # Get the heads of this disk
- get_disk_heads "${DISK}"
- head="${VAL}"
-
- # Get the tracks/sectors of this disk
- get_disk_sectors "${DISK}"
- sec="${VAL}"
-
- # Multiply them all together to get our total blocks
- totalblocks="`expr ${cyl} \* ${head}`"
- totalblocks="`expr ${totalblocks} \* ${sec}`"
-
-
- # Now set the ending block to the total disk block size
- sizeblock="`expr ${totalblocks} - ${startblock}`"
-
- # Install new partition setup
- echo_log "Running gpart on ${DISK}"
- rc_halt "gpart add -b ${startblock} -s ${sizeblock} -t freebsd -i ${slicenum} ${DISK}"
- sleep 2
-
- echo_log "Cleaning up $slice"
- rc_halt "dd if=/dev/zero of=/dev/${slice} count=1024"
-
- sleep 1
-
- if [ "${BMANAGER}" = "bsd" ]
- then
- echo_log "Stamping boot sector on ${DISK}"
- rc_halt "gpart bootcode -b /boot/boot0 ${DISK}"
- fi
-
- slice="${DISK}-${SLICENUM}-mbr"
- # Lets save our slice, so we know what to look for in the config file later on
- if [ -z "$WORKINGSLICES" ]
- then
- WORKINGSLICES="${slice}"
- export WORKINGSLICES
- else
- WORKINGSLICES="${WORKINGSLICES} ${slice}"
- export WORKINGSLICES
- fi
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-extractimage.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-extractimage.sh.svn-base
deleted file mode 100644
index 394cfad..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-extractimage.sh.svn-base
+++ /dev/null
@@ -1,289 +0,0 @@
-#!/bin/sh
-# Functions which perform the extraction / installation of system to disk
-
-. ${BACKEND}/functions-mountoptical.sh
-
-# Performs the extraction of data to disk from a uzip or tar archive
-start_extract_uzip_tar()
-{
- if [ -z "$INSFILE" ]
- then
- exit_err "ERROR: Called extraction with no install file set!"
- fi
-
- # Check if we have a .count file, and echo it out for a front-end to use in progress bars
- if [ -e "${INSFILE}.count" ]
- then
- echo "INSTALLCOUNT: `cat ${INSFILE}.count`"
- fi
-
- # Check if we are doing an upgrade, and if so use our exclude list
- if [ "${INSTALLMODE}" = "upgrade" ]
- then
- TAROPTS="-X ${PROGDIR}/conf/exclude-from-upgrade"
- else
- TAROPTS=""
- fi
-
- echo_log "pc-sysinstall: Starting Extraction"
-
- case ${PACKAGETYPE} in
- uzip) # Start by mounting the uzip image
- MDDEVICE=`mdconfig -a -t vnode -o readonly -f ${INSFILE}`
- mkdir -p ${FSMNT}.uzip
- mount -r /dev/${MDDEVICE}.uzip ${FSMNT}.uzip
- if [ "$?" != "0" ]
- then
- exit_err "ERROR: Failed mounting the ${INSFILE}"
- fi
- cd ${FSMNT}.uzip
-
- # Copy over all the files now!
- tar cvf - . 2>/dev/null | tar -xpv -C ${FSMNT} ${TAROPTS} -f - 2>&1 | tee -a ${FSMNT}/.tar-extract.log
- if [ "$?" != "0" ]
- then
- cd /
- echo "TAR failure occured:" >>${LOGOUT}
- cat ${FSMNT}/.tar-extract.log | grep "tar:" >>${LOGOUT}
- umount ${FSMNT}.uzip
- mdconfig -d -u ${MDDEVICE}
- exit_err "ERROR: Failed extracting the tar image"
- fi
-
- # All finished, now lets umount and cleanup
- cd /
- umount ${FSMNT}.uzip
- mdconfig -d -u ${MDDEVICE}
- ;;
- tar) tar -xpv -C ${FSMNT} -f ${INSFILE} ${TAROPTS} >&1 2>&1
- if [ "$?" != "0" ]
- then
- exit_err "ERROR: Failed extracting the tar image"
- fi
- ;;
- esac
-
- # Check if this was a FTP download and clean it up now
- if [ "${INSTALLMEDIUM}" = "ftp" ]
- then
- echo_log "Cleaning up downloaded archive"
- rm ${INSFILE}
- rm ${INSFILE}.count >/dev/null 2>/dev/null
- rm ${INSFILE}.md5 >/dev/null 2>/dev/null
- fi
-
- echo_log "pc-sysinstall: Extraction Finished"
-
-};
-
-# Performs the extraction of data to disk from a directory with split files
-start_extract_split()
-{
- if [ -z "${INSDIR}" ]
- then
- exit_err "ERROR: Called extraction with no install directory set!"
- fi
-
- echo_log "pc-sysinstall: Starting Extraction"
-
- # Used by install.sh
- DESTDIR="${FSMNT}"
- export DESTDIR
-
- HERE=`pwd`
- DIRS=`ls -d ${INSDIR}/*|grep -Ev '(uzip|kernels|src)'`
- for dir in ${DIRS}
- do
- cd "${dir}"
- if [ -f "install.sh" ]
- then
- echo "Extracting" `basename ${dir}`
- echo "y" | sh install.sh >/dev/null
- if [ "$?" != "0" ]
- then
- exit_err "ERROR: Failed extracting ${dir}"
- fi
- else
- exit_err "ERROR: ${dir}/install.sh does not exist"
- fi
- done
- cd "${HERE}"
-
- KERNELS=`ls -d ${INSDIR}/*|grep kernels`
- cd "${KERNELS}"
- if [ -f "install.sh" ]
- then
- echo "Extracting" `basename ${KERNELS}`
- echo "y" | sh install.sh generic >/dev/null
- if [ "$?" != "0" ]
- then
- exit_err "ERROR: Failed extracting ${KERNELS}"
- fi
- echo 'kernel="GENERIC"' > "${FSMNT}/boot/loader.conf"
- else
- exit_err "ERROR: ${KERNELS}/install.sh does not exist"
- fi
- cd "${HERE}"
-
- SOURCE=`ls -d ${INSDIR}/*|grep src`
- cd "${SOURCE}"
- if [ -f "install.sh" ]
- then
- echo "Extracting" `basename ${SOURCE}`
- echo "y" | sh install.sh all >/dev/null
- if [ "$?" != "0" ]
- then
- exit_err "ERROR: Failed extracting ${SOURCE}"
- fi
- else
- exit_err "ERROR: ${SOURCE}/install.sh does not exist"
- fi
- cd "${HERE}"
-
- echo_log "pc-sysinstall: Extraction Finished"
-};
-
-# Function which will attempt to fetch the install file before we start
-# the install
-fetch_install_file()
-{
- get_value_from_cfg ftpPath
- if [ -z "$VAL" ]
- then
- exit_err "ERROR: Install medium was set to ftp, but no ftpPath was provided!"
- fi
-
- FTPPATH="${VAL}"
-
- # Check if we have a /usr partition to save the download
- if [ -d "${FSMNT}/usr" ]
- then
- OUTFILE="${FSMNT}/usr/.fetch-${INSFILE}"
- else
- OUTFILE="${FSMNT}/.fetch-${INSFILE}"
- fi
-
- # Do the fetch of the archive now
- fetch_file "${FTPPATH}/${INSFILE}" "${OUTFILE}" "1"
-
- # Check to see if there is a .count file for this install
- fetch_file "${FTPPATH}/${INSFILE}.count" "${OUTFILE}.count" "0"
-
- # Check to see if there is a .md5 file for this install
- fetch_file "${FTPPATH}/${INSFILE}.md5" "${OUTFILE}.md5" "0"
-
- # Done fetching, now reset the INSFILE to our downloaded archived
- INSFILE="${OUTFILE}" ; export INSFILE
-
-};
-
-# Function which does the rsync download from the server specifed in cfg
-start_rsync_copy()
-{
- # Load our rsync config values
- get_value_from_cfg rsyncPath
- if [ -z "${VAL}" ]; then
- exit_err "ERROR: rsyncPath is unset! Please check your config and try again."
- fi
- RSYNCPATH="${VAL}" ; export RSYNCPATH
-
- get_value_from_cfg rsyncHost
- if [ -z "${VAL}" ]; then
- exit_err "ERROR: rsyncHost is unset! Please check your config and try again."
- fi
- RSYNCHOST="${VAL}" ; export RSYNCHOST
-
- get_value_from_cfg rsyncUser
- if [ -z "${VAL}" ]; then
- exit_err "ERROR: rsyncUser is unset! Please check your config and try again."
- fi
- RSYNCUSER="${VAL}" ; export RSYNCUSER
-
- get_value_from_cfg rsyncPort
- if [ -z "${VAL}" ]; then
- exit_err "ERROR: rsyncPort is unset! Please check your config and try again."
- fi
- RSYNCPORT="${VAL}" ; export RSYNCPORT
-
- COUNT="1"
- while
- z=1
- do
- if [ ${COUNT} -gt ${RSYNCTRIES} ]
- then
- exit_err "ERROR: Failed rsync command!"
- break
- fi
-
- rsync -avvzHsR \
- --rsync-path="rsync --fake-super" \
- -e "ssh -p ${RSYNCPORT}" \
- ${RSYNCUSER}@${RSYNCHOST}:${RSYNCPATH}/./ ${FSMNT}
- if [ "$?" != "0" ]
- then
- echo "Rsync failed! Tries: ${COUNT}"
- else
- break
- fi
-
- COUNT="`expr ${COUNT} + 1`"
- done
-
-};
-
-
-# Entrance function, which starts the installation process
-init_extraction()
-{
- # Figure out what file we are using to install from via the config
- get_value_from_cfg installFile
-
- if [ ! -z "${VAL}" ]
- then
- INSFILE="${VAL}" ; export INSFILE
- else
- # If no installFile specified, try our defaults
- if [ "$INSTALLTYPE" = "FreeBSD" ]
- then
- case $PACKAGETYPE in
- uzip) INSFILE="${FBSD_UZIP_FILE}" ;;
- tar) INSFILE="${FBSD_TAR_FILE}" ;;
- split)
- INSDIR="${FBSD_BRANCH_DIR}"
-
- # This is to trick opt_mount into not failing
- INSFILE="${INSDIR}"
- ;;
- esac
- else
- case $PACKAGETYPE in
- uzip) INSFILE="${UZIP_FILE}" ;;
- tar) INSFILE="${TAR_FILE}" ;;
- esac
- fi
- export INSFILE
- fi
-
- # Lets start by figuring out what medium we are using
- case ${INSTALLMEDIUM} in
- dvd|usb) # Lets start by mounting the disk
- opt_mount
- if [ ! -z "${INSDIR}" ]
- then
- INSDIR="${CDMNT}/${INSDIR}" ; export INSDIR
- start_extract_split
-
- else
- INSFILE="${CDMNT}/${INSFILE}" ; export INSFILE
- start_extract_uzip_tar
- fi
- ;;
- ftp) fetch_install_file
- start_extract_uzip_tar
- ;;
- rsync) start_rsync_copy
- ;;
- *) exit_err "ERROR: Unknown install medium" ;;
- esac
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-installcomponents.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-installcomponents.sh.svn-base
deleted file mode 100644
index cb3b0a6..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-installcomponents.sh.svn-base
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/bin/sh
-# Functions which check and load any optional modules specified in the config
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-copy_component()
-{
- COMPONENT="$1"
- FAILED="0"
- CFILES=""
-
- # Check the type, and set the components subdir properly
- TYPE="`grep 'type:' ${COMPDIR}/${COMPONENT}/component.cfg | cut -d ' ' -f 2`"
- if [ "${TYPE}" = "PBI" ]
- then
- SUBDIR="PBI"
- else
- SUBDIR="components"
- fi
-
- # Lets start by downloading / copying the files this component needs
- while read line
- do
- CFILE="`echo $line | cut -d ':' -f 1`"
- CFILEMD5="`echo $line | cut -d ':' -f 2`"
- CFILE2MD5="`echo $line | cut -d ':' -f 3`"
-
-
- case ${INSTALLMEDIUM} in
- dvd|usb) # On both dvd / usb, we can just copy the file
- cp ${CDMNT}/${COMPFILEDIR}/${SUBDIR}/${CFILE} \
- ${FSMNT}/${COMPTMPDIR} >>${LOGOUT} 2>>${LOGOUT}
- RESULT="$?"
- ;;
- ftp) get_value_from_cfg ftpPath
- if [ -z "$VAL" ]
- then
- exit_err "ERROR: Install medium was set to ftp, but no ftpPath was provided!"
- fi
- FTPPATH="${VAL}"
-
- fetch_file "${FTPPATH}/${COMPFILEDIR}/${SUBDIR}/${CFILE}" "${FSMNT}/${COMPTMPDIR}/${CFILE}" "0"
- RESULT="$?"
- ;;
- esac
-
- if [ "${RESULT}" != "0" ]
- then
- echo_log "WARNING: Failed to copy ${CFILE}"
- FAILED="1"
- else
- # Now lets check the MD5 to confirm the file is valid
- CHECKMD5=`md5 -q ${FSMNT}/${COMPTMPDIR}/${CFILE}`
- if [ "${CHECKMD5}" != "${CFILEMD5}" -a "${CHECKMD5}" != "${CFILE2MD5}" ]
- then
- echo_log "WARNING: ${CFILE} failed md5 checksum"
- FAILED="1"
- else
- if [ -z "${CFILES}" ]
- then
- CFILES="${CFILE}"
- else
- CFILES="${CFILES},${CFILE}"
- fi
- fi
- fi
-
-
- done < ${COMPDIR}/${COMPONENT}/distfiles
-
- if [ "${FAILED}" = "0" ]
- then
- # Now install the component
- run_component_install ${COMPONENT} ${CFILES}
- fi
-
-};
-
-run_component_install()
-{
- COMPONENT="$1"
- CFILES="$1"
-
- # Lets install this component now
- # Start by making a wrapper script which sets the variables
- # for the component to use
- echo "#!/bin/sh
-COMPTMPDIR=\"${COMPTMPDIR}\"
-export COMPTMPDIR
-CFILE=\"${CFILE}\"
-export CFILE
-
-sh ${COMPTMPDIR}/install.sh
-
-" >${FSMNT}/.componentwrapper.sh
- chmod 755 ${FSMNT}/.componentwrapper.sh
-
- # Copy over the install script for this component
- cp ${COMPDIR}/${COMPONENT}/install.sh ${FSMNT}/${COMPTMPDIR}/
-
- echo_log "INSTALL COMPONENT: ${i}"
- chroot ${FSMNT} /.componentwrapper.sh >>${LOGOUT} 2>>${LOGOUT}
- rm ${FSMNT}/.componentwrapper.sh
-
-
-};
-
-# Check for any modules specified, and begin loading them
-install_components()
-{
- # First, lets check and see if we even have any optional modules
- get_value_from_cfg installComponents
- if [ ! -z "${VAL}" ]
- then
- # Lets start by cleaning up the string and getting it ready to parse
- strip_white_space ${VAL}
- COMPONENTS=`echo ${VAL} | sed -e "s|,| |g"`
- for i in $COMPONENTS
- do
- if [ ! -e "${COMPDIR}/${i}/install.sh" -o ! -e "${COMPDIR}/${i}/distfiles" ]
- then
- echo_log "WARNING: Component ${i} doesn't seem to exist"
- else
-
- # Make the tmpdir on the disk
- mkdir -p ${FSMNT}/${COMPTMPDIR} >>${LOGOUT} 2>>${LOGOUT}
-
- # Start by grabbing the component files
- copy_component ${i}
-
- # Remove the tmpdir now
- rm -rf ${FSMNT}/${COMPTMPDIR} >>${LOGOUT} 2>>${LOGOUT}
-
- fi
- done
-
- fi
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-localize.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-localize.sh.svn-base
deleted file mode 100644
index 02dfd61..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-localize.sh.svn-base
+++ /dev/null
@@ -1,449 +0,0 @@
-#!/bin/sh
-# Functions which runs commands on the system
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-
-# Function which localizes a FreeBSD install
-localize_freebsd()
-{
- sed -i.bak "s/lang=en_US/lang=${LOCALE}/g" ${FSMNT}/etc/login.conf
- rm ${FSMNT}/etc/login.conf.bak
-};
-
-
-# Function which localizes a PC-BSD install
-localize_pcbsd()
-{
- #Change the skel files
- ##########################################################################
- sed -i.bak "s/Country=us/Country=${COUNTRY}/g" ${FSMNT}/usr/share/skel/.kde4/share/config/kdeglobals
- sed -i.bak "s/Country=us/Country=${COUNTRY}/g" ${FSMNT}/root/.kde4/share/config/kdeglobals
- sed -i.bak "s/Language=en_US/Language=${SETLANG}:${LOCALE}/g" ${FSMNT}/usr/share/skel/.kde4/share/config/kdeglobals
- sed -i.bak "s/Language=en_US/Language=${SETLANG}:${LOCALE}/g" ${FSMNT}/root/.kde4/share/config/kdeglobals
-
- #Change KDM Langs
- ##########################################################################
- sed -i.bak "s/Language=en_US/Language=${LOCALE}.UTF-8/g" ${FSMNT}/usr/local/kde4/share/config/kdm/kdmrc
-
- # Check if we have a localized splash screen and copy it
- if [ -e "${FSMNT}/usr/PCBSD/splash-screens/loading-screen-${SETLANG}.pcx" ]
- then
- cp ${FSMNT}/usr/PCBSD/splash-screens/loading-screen-${SETLANG}.pcx ${FSMNT}/boot/loading-screen.pcx
- fi
-
-};
-
-localize_x_keyboard()
-{
- KEYMOD="$1"
- KEYLAY="$2"
- KEYVAR="$3"
- COUNTRY="$4"
- SETXKBMAP=""
-
- if [ "${COUNTRY}" = "NONE" ] || [ "${COUNTRY}" = "us" ];
- then
- #In this case we don't need any additional language
- COUNTRY=""
- else
- COUNTRY=",${COUNTRY}"
- fi
-
- if [ "${KEYMOD}" != "NONE" ]
- then
- SETXKBMAP="-model ${KEYMOD}"
- KXMODEL="${KEYMOD}"
- else
- KXMODEL="pc104"
- fi
-
- if [ "${KEYLAY}" != "NONE" ]
- then
- localize_key_layout "$KEYLAY"
- SETXKBMAP="${SETXKBMAP} -layout ${KEYLAY}"
- KXLAYOUT="${KEYLAY}"
- else
- KXLAYOUT="us"
- fi
-
- if [ "${KEYVAR}" != "NONE" ]
- then
- SETXKBMAP="${SETXKBMAP} -variant ${KEYVAR}"
- KXVAR="(${KEYVAR})"
- else
- KXVAR=""
- fi
-
- # Setup .xprofile with our setxkbmap call now
- if [ ! -z "${SETXKBMAP}" ]
- then
- if [ ! -e "${FSMNT}/usr/share/skel/.xprofile" ]
- then
- echo "#!/bin/sh" >${FSMNT}/usr/share/skel/.xprofile
- fi
-
- # Save the keyboard layout for user / root X logins
- echo "setxkbmap ${SETXKBMAP}" >>${FSMNT}/usr/share/skel/.xprofile
- chmod 755 ${FSMNT}/usr/share/skel/.xprofile
- cp ${FSMNT}/usr/share/skel/.xprofile ${FSMNT}/root/.xprofile
-
- # Save it for KDM
- echo "setxkbmap ${SETXKBMAP}" >>${FSMNT}/usr/local/kde4/share/config/kdm/Xsetup
- fi
-
-
- # Create the kxkbrc configuration using these options
- echo "[Layout]
-DisplayNames=${KXLAYOUT}${COUNTRY}
-IndicatorOnly=false
-LayoutList=${KXLAYOUT}${KXVAR}${COUNTRY}
-Model=${KXMODEL}
-Options=
-ResetOldOptions=true
-ShowFlag=true
-ShowSingle=false
-SwitchMode=WinClass
-Use=true " >${FSMNT}/usr/share/skel/.kde4/share/config/kxkbrc
-
-};
-
-localize_key_layout()
-{
-
- KEYLAYOUT="$1"
-
- # Set the keylayout in rc.conf
- case ${KEYLAYOUT} in
- am) KEYLAYOUT_CONSOLE="hy.armscii-8" ;;
- ch) KEYLAYOUT_CONSOLE="swissgerman.iso" ;;
- cz) KEYLAYOUT_CONSOLE="cz.iso2" ;;
- de) KEYLAYOUT_CONSOLE="german.iso" ;;
- dk) KEYLAYOUT_CONSOLE="danish.iso" ;;
- ee) KEYLAYOUT_CONSOLE="estonian.iso" ;;
- es) KEYLAYOUT_CONSOLE="spanish.iso" ;;
- fi) KEYLAYOUT_CONSOLE="finnish.iso" ;;
- is) KEYLAYOUT_CONSOLE="icelandic.iso" ;;
- jp) KEYLAYOUT_CONSOLE="jp.106" ;;
- nl) KEYLAYOUT_CONSOLE="dutch.iso.acc" ;;
- no) KEYLAYOUT_CONSOLE="norwegian.iso" ;;
- pl) KEYLAYOUT_CONSOLE="pl_PL.ISO8859-2" ;;
- ru) KEYLAYOUT_CONSOLE="ru.koi8-r" ;;
- sk) KEYLAYOUT_CONSOLE="sk.iso2" ;;
- se) KEYLAYOUT_CONSOLE="swedish.iso" ;;
- tr) KEYLAYOUT_CONSOLE="tr.iso9.q" ;;
- gb) KEYLAYOUT_CONSOLE="uk.iso" ;;
- *) if [ ! -z "${KEYLAYOUT}" ]
- then
- KEYLAYOUT_CONSOLE="${KEYLAYOUT}.iso"
- fi
- ;;
- esac
-
- if [ ! -z "${KEYLAYOUT_CONSOLE}" ]
- then
- echo "keymap=\"${KEYLAYOUT_CONSOLE}\"" >>${FSMNT}/etc/rc.conf
- fi
-
-};
-
-# Function which prunes other l10n files from the KDE install
-localize_prune_langs()
-{
- get_value_from_cfg localizeLang
- KEEPLANG="$VAL"
- if [ -z "$KEEPLANG" ] ; then
- KEEPLANG="en"
- fi
- export KEEPLANG
-
- echo_log "Pruning other l10n files, keeping ${KEEPLANG}"
-
- # Create the script to do uninstalls
- echo '#!/bin/sh
-
- for i in `pkg_info | grep "kde-l10n" | cut -d " " -f 1`
- do
- echo "$i" | grep "${KEEPLANG}-kde"
- if [ "$?" != "0" ] ; then
- pkg_delete ${i}
- fi
- done
- ' > ${FSMNT}/.pruneLangs.sh
-
- chmod 755 ${FSMNT}/.pruneLangs.sh
- chroot ${FSMNT} /.pruneLangs.sh >/dev/null 2>/dev/null
- rm ${FSMNT}/.pruneLangs.sh
-
-};
-
-# Function which sets COUNTRY SETLANG and LOCALE based upon $1
-localize_get_codes()
-{
- TARGETLANG="${1}"
- # Setup the presets for the specific lang
- case $TARGETLANG in
- af) COUNTRY="C"
- SETLANG="af"
- LOCALE="af_ZA"
- ;;
- ar) COUNTRY="C"
- SETLANG="ar"
- LOCALE="en_US"
- ;;
- az) COUNTRY="C"
- SETLANG="az"
- LOCALE="en_US"
- ;;
- ca) COUNTRY="es"
- SETLANG="es:ca"
- LOCALE="ca_ES"
- ;;
- be) COUNTRY="be"
- SETLANG="be"
- LOCALE="be_BY"
- ;;
- bn) COUNTRY="bn"
- SETLANG="bn"
- LOCALE="en_US"
- ;;
- bg) COUNTRY="bg"
- SETLANG="bg"
- LOCALE="bg_BG"
- ;;
- cs) COUNTRY="cz"
- SETLANG="cs"
- LOCALE="cs_CZ"
- ;;
- da) COUNTRY="dk"
- SETLANG="da"
- LOCALE="da_DK"
- ;;
- de) COUNTRY="de"
- SETLANG="de"
- LOCALE="de_DE"
- ;;
- en_GB) COUNTRY="gb"
- SETLANG="en_GB:cy"
- LOCALE="en_GB"
- ;;
- el) COUNTRY="gr"
- SETLANG="el:gr"
- LOCALE="el_GR"
- ;;
- es) COUNTRY="es"
- SETLANG="es"
- LOCALE="es_ES"
- ;;
- es_LA) COUNTRY="us"
- SETLANG="es:en_US"
- LOCALE="es_ES"
- ;;
- et) COUNTRY="ee"
- SETLANG="et"
- LOCALE="et_EE"
- ;;
- fr) COUNTRY="fr"
- SETLANG="fr"
- LOCALE="fr_FR"
- ;;
- he) COUNTRY="il"
- SETLANG="he:ar"
- LOCALE="he_IL"
- ;;
- hr) COUNTRY="hr"
- SETLANG="hr"
- LOCALE="hr_HR"
- ;;
- hu) COUNTRY="hu"
- SETLANG="hu"
- LOCALE="hu_HU"
- ;;
- it) COUNTRY="it"
- SETLANG="it"
- LOCALE="it_IT"
- ;;
- ja) COUNTRY="jp"
- SETLANG="ja"
- LOCALE="ja_JP"
- ;;
- ko) COUNTRY="kr"
- SETLANG="ko"
- LOCALE="ko_KR"
- ;;
- nl) COUNTRY="nl"
- SETLANG="nl"
- LOCALE="nl_NL"
- ;;
- nn) COUNTRY="no"
- SETLANG="nn"
- LOCALE="en_US"
- ;;
- pa) COUNTRY="pa"
- SETLANG="pa"
- LOCALE="en_US"
- ;;
- pl) COUNTRY="pl"
- SETLANG="pl"
- LOCALE="pl_PL"
- ;;
- pt) COUNTRY="pt"
- SETLANG="pt"
- LOCALE="pt_PT"
- ;;
- pt_BR) COUNTRY="br"
- SETLANG="pt_BR"
- LOCALE="pt_BR"
- ;;
- ru) COUNTRY="ru"
- SETLANG="ru"
- LOCALE="ru_RU"
- ;;
- sl) COUNTRY="si"
- SETLANG="sl"
- LOCALE="sl_SI"
- ;;
- sk) COUNTRY="sk"
- SETLANG="sk"
- LOCALE="sk_SK"
- ;;
- sv) COUNTRY="se"
- SETLANG="sv"
- LOCALE="sv_SE"
- ;;
- uk) COUNTRY="ua"
- SETLANG="uk"
- LOCALE="uk_UA"
- ;;
- vi) COUNTRY="vn"
- SETLANG="vi"
- LOCALE="en_US"
- ;;
- zh_CN) COUNTRY="cn"
- SETLANG="zh_CN"
- LOCALE="zh_CN"
- ;;
- zh_TW) COUNTRY="tw"
- SETLANG="zh_TW"
- LOCALE="zh_TW"
- ;;
- *) COUNTRY="C"
- SETLANG="${TARGETLANG}"
- LOCALE="en_US"
- ;;
- esac
-
- export COUNTRY SETLANG LOCALE
-
-};
-
-# Function which sets the timezone on the system
-set_timezone()
-{
- TZONE="$1"
- cp ${FSMNT}/usr/share/zoneinfo/${TZONE} ${FSMNT}/etc/localtime
-};
-
-# Function which enables / disables NTP
-set_ntp()
-{
- ENABLED="$1"
- if [ "$ENABLED" = "yes" -o "${ENABLED}" = "YES" ]
- then
- cat ${FSMNT}/etc/rc.conf 2>/dev/null | grep 'ntpd_enable="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'ntpd_enable="YES"' >>${FSMNT}/etc/rc.conf
- echo 'ntpd_sync_on_start="YES"' >>${FSMNT}/etc/rc.conf
- fi
- else
- cat ${FSMNT}/etc/rc.conf 2>/dev/null | grep 'ntpd_enable="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- sed -i.bak 's|ntpd_enable="YES"||g' ${FSMNT}/etc/rc.conf
- fi
- fi
-};
-
-# Starts checking for localization directives
-run_localize()
-{
- KEYLAYOUT="NONE"
- KEYMOD="NONE"
- KEYVAR="NONE"
- LANGUAGE="NONE"
-
- while read line
- do
- # Check if we need to do any localization
- echo $line | grep "^localizeLang=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Set our country / lang / locale variables
- get_value_from_string "$line"
- localize_get_codes ${VAL}
-
- get_value_from_string "$line"
- # If we are doing PC-BSD install, localize it as well as FreeBSD base
- if [ "${INSTALLTYPE}" != "FreeBSD" ]
- then
- localize_pcbsd "$VAL"
- LANGUAGE="$VAL"
- fi
- localize_freebsd "$VAL"
- fi
-
- # Check if we need to do any keylayouts
- echo $line | grep "^localizeKeyLayout=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- KEYLAYOUT="$VAL"
- fi
-
- # Check if we need to do any key models
- echo $line | grep "^localizeKeyModel=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- KEYMOD="$VAL"
- fi
-
- # Check if we need to do any key variant
- echo $line | grep "^localizeKeyVariant=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- KEYVAR="$VAL"
- fi
-
-
- # Check if we need to set a timezone
- echo $line | grep "^timeZone=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- set_timezone "$VAL"
- fi
-
- # Check if we need to set a timezone
- echo $line | grep "^enableNTP=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- set_ntp "$VAL"
- fi
- done <${CFGF}
-
- if [ "${INSTALLTYPE}" != "FreeBSD" ] ; then
- # Do our X keyboard localization
- localize_x_keyboard "${KEYMOD}" "${KEYLAYOUT}" "${KEYVAR}" "${COUNTRY}"
- fi
-
- # Check if we want to prunt any other KDE lang files to save some disk space
- get_value_from_cfg localizePrune
- if [ "${VAL}" = "yes" -o "${VAL}" = "YES" ] ; then
- localize_prune_langs
- fi
-
- # Update the login.conf db, even if we didn't localize, its a good idea to make sure its up2date
- run_chroot_cmd "/usr/bin/cap_mkdb /etc/login.conf" >/dev/null 2>/dev/null
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-mountdisk.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-mountdisk.sh.svn-base
deleted file mode 100644
index 112e299..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-mountdisk.sh.svn-base
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/bin/sh
-# Functions related mounting the newly formatted disk partitions
-
-# Mounts all the specified partition to the mount-point
-mount_partition()
-{
- if [ -z "${1}" -o -z "${2}" -o -z "${3}" ]
- then
- exit_err "ERROR: Missing arguments for mount_partition"
- fi
-
- PART="${1}"
- PARTFS="${2}"
- MNTPOINT="${3}"
- MNTFLAGS="${4}"
-
- # Setup the MNTOPTS
- if [ -z "${MNTOPTS}" ]
- then
- MNTFLAGS="-o rw"
- else
- MNTFLAGS="-o rw,${MNTFLAGS}"
- fi
-
-
- #We are on ZFS, lets setup this mount-point
- if [ "${PARTFS}" = "ZFS" ]
- then
- ZPOOLNAME=$(get_zpool_name "${PART}")
-
- # Check if we have multiple zfs mounts specified
- for ZMNT in `echo ${MNTPOINT} | sed 's|,| |g'`
- do
- # First make sure we create the mount point
- if [ ! -d "${FSMNT}${ZMNT}" ] ; then
- mkdir -p ${FSMNT}${ZMNT} >>${LOGOUT} 2>>${LOGOUT}
- fi
-
- if [ "${ZMNT}" = "/" ] ; then
- ZNAME=""
- else
- ZNAME="${ZMNT}"
- echo_log "zfs create -p ${ZPOOLNAME}${ZNAME}"
- rc_halt "zfs create -p ${ZPOOLNAME}${ZNAME}"
- fi
- sleep 2
- rc_halt "zfs set mountpoint=${FSMNT}${ZNAME} ${ZPOOLNAME}${ZNAME}"
-
- # Disable atime for this zfs partition, speed increase
- rc_nohalt "zfs set atime=off ${ZPOOLNAME}${ZNAME}"
- done
-
- else
- # If we are not on ZFS, lets do the mount now
- # First make sure we create the mount point
- if [ ! -d "${FSMNT}${MNTPOINT}" ]
- then
- mkdir -p ${FSMNT}${MNTPOINT} >>${LOGOUT} 2>>${LOGOUT}
- fi
-
- echo_log "mount ${MNTFLAGS} /dev/${PART} -> ${FSMNT}${MNTPOINT}"
- sleep 2
- rc_halt "mount ${MNTFLAGS} /dev/${PART} ${FSMNT}${MNTPOINT}"
- fi
-
-};
-
-# Mounts all the new file systems to prepare for installation
-mount_all_filesystems()
-{
- # Make sure our mount point exists
- mkdir -p ${FSMNT} >/dev/null 2>/dev/null
-
- # First lets find and mount the / partition
- #########################################################
- for PART in `ls ${PARTDIR}`
- do
- if [ ! -e "/dev/${PART}" ]
- then
- exit_err "ERROR: The partition ${PART} does not exist. Failure in bsdlabel?"
- fi
-
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
-
- if [ "${PARTENC}" = "ON" ]
- then
- EXT=".eli"
- else
- EXT=""
- fi
-
- # Check for root partition for mounting, including ZFS "/,/usr" type
- echo "$PARTMNT" | grep "/," >/dev/null
- if [ "$?" = "0" -o "$PARTMNT" = "/" ]
- then
- case ${PARTFS} in
- UFS) mount_partition ${PART}${EXT} ${PARTFS} ${PARTMNT} "noatime"
- ;;
- UFS+S) mount_partition ${PART}${EXT} ${PARTFS} ${PARTMNT} "noatime"
- ;;
- UFS+J) mount_partition ${PART}${EXT}.journal ${PARTFS} ${PARTMNT} "async,noatime"
- ;;
- ZFS) mount_partition ${PART} ${PARTFS} ${PARTMNT}
- ;;
- *) exit_err "ERROR: Got unknown file-system type $PARTFS" ;;
- esac
-
- fi
-
- done
-
- # Now that we've mounted "/" lets do any other remaining mount-points
- ##################################################################
- for PART in `ls ${PARTDIR}`
- do
- if [ ! -e "/dev/${PART}" ]
- then
- exit_err "ERROR: The partition ${PART} does not exist. Failure in bsdlabel?"
- fi
-
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
-
- if [ "${PARTENC}" = "ON" ]
- then
- EXT=".eli"
- else
- EXT=""
- fi
-
- # Check if we've found "/" again, don't need to mount it twice
- echo "$PARTMNT" | grep "/," >/dev/null
- if [ "$?" != "0" -a "$PARTMNT" != "/" ]
- then
- case ${PARTFS} in
- UFS) mount_partition ${PART}${EXT} ${PARTFS} ${PARTMNT} "noatime"
- ;;
- UFS+S) mount_partition ${PART}${EXT} ${PARTFS} ${PARTMNT} "noatime"
- ;;
- UFS+J) mount_partition ${PART}${EXT}.journal ${PARTFS} ${PARTMNT} "async,noatime"
- ;;
- ZFS) mount_partition ${PART} ${PARTFS} ${PARTMNT}
- ;;
- SWAP) # Lets enable this swap now
- if [ "$PARTENC" = "ON" ]
- then
- echo_log "Enabling encrypted swap on /dev/${PART}"
- rc_halt "geli onetime -d -e 3des ${PART}"
- sleep 5
- rc_halt "swapon /dev/${PART}.eli"
- else
- echo_log "swapon ${PART}"
- sleep 5
- rc_halt "swapon /dev/${PART}"
- fi
- ;;
- *) exit_err "ERROR: Got unknown file-system type $PARTFS" ;;
- esac
- fi
- done
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-mountoptical.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-mountoptical.sh.svn-base
deleted file mode 100644
index c4c324d..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-mountoptical.sh.svn-base
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/bin/sh
-# Functions which perform mounting / unmounting and switching of optical / usb media
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-# Displays an optical failure message
-opt_fail()
-{
- # If we got here, we must not have a DVD/USB we can find :(
- get_value_from_cfg installInteractive
- if [ "${VAL}" = "yes" ]
- then
- # We are running interactive, and didn't find a DVD, prompt user again
- echo_log "DISK ERROR: Unable to find installation disk!"
- echo_log "Please insert the installation disk and press enter."
- read tmp
- else
- exit_err "ERROR: Unable to locate installation DVD/USB"
- fi
-};
-
-# Performs the extraction of data to disk
-opt_mount()
-{
- FOUND="0"
-
- # Ensure we have a directory where its supposed to be
- if [ ! -d "${CDMNT}" ]
- then
- mkdir -p ${CDMNT}
- fi
-
-
- # Start by checking if we already have a cd mounted at CDMNT
- mount | grep "${CDMNT} " >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- if [ -e "${CDMNT}/${INSFILE}" ]
- then
- echo "MOUNTED" >${TMPDIR}/cdmnt
- echo_log "FOUND DVD: MOUNTED"
- FOUND="1"
- return
- fi
-
- # failed to find optical disk
- opt_fail
- return
- fi
-
-# Setup our loop to search for installation media
- while
- z=1
- do
-
- # Loop though and look for an installation disk
- for i in `ls -1 /dev/acd* /dev/cd* /dev/scd* /dev/rscd* 2>/dev/null`
- do
- # Find the CD Device
- /sbin/mount_cd9660 $i ${CDMNT}
-
- # Check the package type to see if we have our install data
- if [ -e "${CDMNT}/${INSFILE}" ]
- then
- echo "${i}" >${TMPDIR}/cdmnt
- echo_log "FOUND DVD: ${i}"
- FOUND="1"
- break
- fi
- /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
- done
-
- # If no DVD found, try USB
- if [ "$FOUND" != "1" ]
- then
- # Loop though and look for an installation disk
- for i in `ls -1 /dev/da* 2>/dev/null`
- do
- # Check if we can mount this device UFS
- /sbin/mount -r $i ${CDMNT}
-
- # Check the package type to see if we have our install data
- if [ -e "${CDMNT}/${INSFILE}" ]
- then
- echo "${i}" >${TMPDIR}/cdmnt
- echo_log "FOUND USB: ${i}"
- FOUND="1"
- break
- fi
- /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
-
- # Also check if it is a FAT mount
- /sbin/mount -r -t msdosfs $i ${CDMNT}
-
- # Check the package type to see if we have our install data
- if [ -e "${CDMNT}/${INSFILE}" ]
- then
- echo "${i}" >${TMPDIR}/cdmnt
- echo_log "FOUND USB: ${i}"
- FOUND="1"
- break
- fi
- /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
- done
- fi # End of USB Check
-
-
- if [ "$FOUND" = "1" ]
- then
- break
- fi
-
- # Failed to find a disk, take action now
- opt_fail
-
- done
-
-};
-
-# Function to unmount optical media
-opt_umount()
-{
- /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
-};
-
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-networking.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-networking.sh.svn-base
deleted file mode 100644
index eca2321..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-networking.sh.svn-base
+++ /dev/null
@@ -1,330 +0,0 @@
-#!/bin/sh
-# Functions which perform our networking setup
-
-# Function which creates a kde4 .desktop file for the PC-BSD net tray
-create_desktop_nettray()
-{
- NIC="${1}"
- echo "#!/usr/bin/env xdg-open
-[Desktop Entry]
-Exec=/usr/local/kde4/bin/pc-nettray ${NIC}
-Icon=network
-StartupNotify=false
-Type=Application" > ${FSMNT}/usr/share/skel/.kde4/Autostart/tray-${NIC}.desktop
- chmod 744 ${FSMNT}/usr/share/skel/.kde4/Autostart/tray-${NIC}.desktop
-
-};
-
-# Function which checks is a nic is wifi or not
-check_is_wifi()
-{
- NIC="$1"
- ifconfig ${NIC} | grep "802.11" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- return 0
- else
- return 1
- fi
-};
-
-# Function to get the first available wired nic, used for lagg0 setup
-get_first_wired_nic()
-{
- rm ${TMPDIR}/.niclist >/dev/null 2>/dev/null
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- if [ -e "${TMPDIR}/.niclist" ]
- then
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- check_is_wifi ${NIC}
- if [ "$?" != "0" ]
- then
- VAL="${NIC}" ; export VAL
- return
- fi
- done < ${TMPDIR}/.niclist
- fi
-
- VAL="" ; export VAL
- return
-};
-
-# Function which simply enables plain dhcp on all detected nics, not fancy lagg interface
-enable_plain_dhcp_all()
-{
- rm ${TMPDIR}/.niclist >/dev/null 2>/dev/null
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- if [ -e "${TMPDIR}/.niclist" ]
- then
- echo "# Auto-Enabled NICs from pc-sysinstall" >>${FSMNT}/etc/rc.conf
- WLANCOUNT="0"
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- DESC="`echo $line | cut -d ':' -f 2`"
- echo_log "Setting $NIC to DHCP on the system."
- check_is_wifi ${NIC}
- if [ "$?" = "0" ]
- then
- # We have a wifi device, setup a wlan* entry for it
- WLAN="wlan${WLANCOUNT}"
- echo "wlans_${NIC}=\"${WLAN}\"" >>${FSMNT}/etc/rc.conf
- echo "ifconfig_${WLAN}=\"DHCP\"" >>${FSMNT}/etc/rc.conf
- CNIC="${WLAN}"
- WLANCOUNT="`expr ${WLANCOUNT} + 1`"
- else
- echo "ifconfig_${NIC}=\"DHCP\"" >>${FSMNT}/etc/rc.conf
- CNIC="${NIC}"
- fi
-
- done < ${TMPDIR}/.niclist
- fi
-};
-
-# Function which enables fancy lagg dhcp on specified wifi
-enable_lagg_dhcp()
-{
- WIFINIC="$1"
-
- # Get the first wired nic
- get_first_wired_nic
- WIRENIC=$VAL
- LAGGPORT="laggport ${WIFINIC}"
-
- echo "# Auto-Enabled NICs from pc-sysinstall" >>${FSMNT}/etc/rc.conf
- if [ ! -z "$WIRENIC" ]
- then
- echo "ifconfig_${WIRENIC}=\"up\"" >> ${FSMNT}/etc/rc.conf
- echo "ifconfig_${WIFINIC}=\"\`ifconfig ${WIRENIC} ether\`\"" >> ${FSMNT}/etc/rc.conf
- echo "ifconfig_${WIFINIC}=\"ether \${ifconfig_${WIFINIC}##*ether }\"" >> ${FSMNT}/etc/rc.conf
- LAGGPORT="laggport ${WIRENIC} ${LAGGPORT}"
- fi
-
- echo "wlans_${WIFINIC}=\"wlan0\"" >> ${FSMNT}/etc/rc.conf
- echo "cloned_interfaces=\"lagg0\"" >> ${FSMNT}/etc/rc.conf
- echo "ifconfig_lagg0=\"laggproto failover ${LAGGPORT} DHCP\"" >> ${FSMNT}/etc/rc.conf
-
-};
-
-# Function which detects available nics, and runs them to DHCP on the
-save_auto_dhcp()
-{
- rm ${TMPDIR}/.niclist >/dev/null 2>/dev/null
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- if [ -e "${TMPDIR}/.niclist" ]
- then
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- DESC="`echo $line | cut -d ':' -f 2`"
- check_is_wifi "${NIC}"
- if [ "$?" = "0" ]
- then
- # We have a wifi device, lets do fancy lagg interface
- enable_lagg_dhcp "${NIC}"
- return
- fi
-
- done < ${TMPDIR}/.niclist
- fi
-
- # Got here, looks like no wifi, so lets simply enable plain-ole-dhcp
- enable_plain_dhcp_all
-
-};
-
-
-# Function which saves a manual nic setup to the installed system
-save_manual_nic()
-{
- # Get the target nic
- NIC="$1"
-
- get_value_from_cfg netSaveIP
- NETIP="${VAL}"
-
- if [ "$NETIP" = "DHCP" ]
- then
- echo_log "Setting $NIC to DHCP on the system."
- echo "ifconfig_${NIC}=\"DHCP\"" >>${FSMNT}/etc/rc.conf
- return 0
- fi
-
- # If we get here, we have a manual setup, lets do so now
-
- # Set the manual IP
- IFARGS="inet ${NETIP}"
-
- # Check if we have a netmask to set
- get_value_from_cfg netSaveMask
- NETMASK="${VAL}"
- if [ ! -z "${NETMASK}" ]
- then
- IFARGS="${IFARGS} netmask ${NETMASK}"
- fi
-
-
- echo "# Auto-Enabled NICs from pc-sysinstall" >>${FSMNT}/etc/rc.conf
- echo "ifconfig_${NIC}=\"${IFARGS}\"" >>${FSMNT}/etc/rc.conf
-
- # Check if we have a default router to set
- get_value_from_cfg netSaveDefaultRouter
- NETROUTE="${VAL}"
- if [ ! -z "${NETROUTE}" ]
- then
- echo "defaultrouter=\"${NETROUTE}\"" >>${FSMNT}/etc/rc.conf
- fi
-
- # Check if we have a nameserver to enable
- get_value_from_cfg netSaveNameServer
- NAMESERVER="${VAL}"
- if [ ! -z "${NAMESERVER}" ]
- then
- echo "nameserver ${NAMESERVER}" >${FSMNT}/etc/resolv.conf
- fi
-
-};
-
-# Function which determines if a nic is active / up
-is_nic_active()
-{
- ifconfig ${1} | grep "status: active" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- return 0
- else
- return 1
- fi
-};
-
-
-# Function which detects available nics, and runs DHCP on them until
-# a success is found
-enable_auto_dhcp()
-{
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- DESC="`echo $line | cut -d ':' -f 2`"
-
- is_nic_active "${NIC}"
- if [ "$?" = "0" ] ; then
- echo_log "Trying DHCP on $NIC $DESC"
- dhclient ${NIC} >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- # Got a valid DHCP IP, we can return now
- WRKNIC="$NIC" ; export WRKNIC
- return 0
- fi
- fi
- done < ${TMPDIR}/.niclist
-
-};
-
-# Get the mac address of a target NIC
-get_nic_mac() {
- FOUNDMAC="`ifconfig ${1} | grep 'ether' | tr -d '\t' | cut -d ' ' -f 2`"
- export FOUNDMAC
-}
-
-# Function which performs the manual setup of a target nic in the cfg
-enable_manual_nic()
-{
- # Get the target nic
- NIC="$1"
-
- # Check that this NIC exists
- rc_halt "ifconfig ${NIC}"
-
- get_value_from_cfg netIP
- NETIP="${VAL}"
-
- if [ "$NETIP" = "DHCP" ]
- then
- echo_log "Enabling DHCP on $NIC"
- rc_halt "dhclient ${NIC}"
- return 0
- fi
-
- # If we get here, we have a manual setup, lets do so now
-
- # Set the manual IP
- rc_halt "ifconfig ${NIC} ${NETIP}"
-
- # Check if we have a netmask to set
- get_value_from_cfg netMask
- NETMASK="${VAL}"
- if [ ! -z "${NETMASK}" ]
- then
- rc_halt "ifconfig ${NIC} netmask ${NETMASK}"
- fi
-
- # Check if we have a default router to set
- get_value_from_cfg netDefaultRouter
- NETROUTE="${VAL}"
- if [ ! -z "${NETROUTE}" ]
- then
- rc_halt "route add default ${NETROUTE}"
- fi
-
- # Check if we have a nameserver to enable
- get_value_from_cfg netNameServer
- NAMESERVER="${VAL}"
- if [ ! -z "${NAMESERVER}" ]
- then
- echo "nameserver ${NAMESERVER}" >/etc/resolv.conf
- fi
-
-
-};
-
-
-# Function which parses the cfg and enables networking per specified
-start_networking()
-{
- # Check if we have any networking requested
- get_value_from_cfg netDev
- if [ -z "${VAL}" ]
- then
- return 0
- fi
-
- NETDEV="${VAL}"
- if [ "$NETDEV" = "AUTO-DHCP" ]
- then
- enable_auto_dhcp
- else
- enable_manual_nic ${NETDEV}
- fi
-
-};
-
-
-# Function which checks the cfg and enables the specified networking on
-# the installed system
-save_networking_install()
-{
-
- # Check if we have any networking requested to save
- get_value_from_cfg netSaveDev
- if [ -z "${VAL}" ]
- then
- return 0
- fi
-
- NETDEV="${VAL}"
- if [ "$NETDEV" = "AUTO-DHCP" ]
- then
- save_auto_dhcp
- else
- save_manual_nic ${NETDEV}
- fi
-
-};
-
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-newfs.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-newfs.sh.svn-base
deleted file mode 100644
index b1f7f3a..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-newfs.sh.svn-base
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/bin/sh
-# Functions related to disk operations using newfs
-
-
-# Function which performs the ZFS magic
-setup_zfs_filesystem()
-{
- PART="$1"
- PARTFS="$2"
- PARTMNT="$3"
- EXT="$4"
- PARTGEOM="$5"
- ZPOOLOPTS="$6"
- ROOTSLICE="`echo ${PART} | rev | cut -b 2- | rev`"
- ZPOOLNAME=$(get_zpool_name "${PART}")
-
- # Sleep a few moments, let the disk catch its breath
- sleep 5
- sync
-
- # Check if we have some custom zpool arguments and use them if so
- if [ ! -z "${ZPOOLOPTS}" ] ; then
- rc_halt "zpool create -m none -f ${ZPOOLNAME} ${ZPOOLOPTS}"
- else
- # No zpool options, create pool on single device
- rc_halt "zpool create -m none -f ${ZPOOLNAME} ${PART}${EXT}"
- fi
-
- # Disable atime for this zfs partition, speed increase
- rc_nohalt "zfs set atime=off ${ZPOOLNAME}"
-
- # Check if we have multiple zfs mounts specified
- for i in `echo ${PARTMNT} | sed 's|,| |g'`
- do
- # Check if we ended up with needing a zfs bootable partition
- if [ "${i}" = "/" -o "${i}" = "/boot" ]
- then
- if [ "${PARTGEOM}" = "MBR" ]
- then
- # Lets stamp the proper ZFS boot loader
- echo_log "Setting up ZFS boot loader support"
- rc_halt "zpool set bootfs=${ZPOOLNAME} ${ZPOOLNAME}"
- rc_halt "zpool export ${${ZPOOLNAME}"
- rc_halt "dd if=/boot/zfsboot of=/dev/${ROOTSLICE} count=1"
- rc_halt "dd if=/boot/zfsboot of=/dev/${PART}${EXT} skip=1 seek=1024"
- rc_halt "zpool import ${ZPOOLNAME}"
- fi
- fi
- done
-
-};
-
-# Runs newfs on all the partiions which we've setup with bsdlabel
-setup_filesystems()
-{
-
- # Create the keydir
- rm -rf ${GELIKEYDIR} >/dev/null 2>/dev/null
- mkdir ${GELIKEYDIR}
-
- # Lets go ahead and read through the saved partitions we created, and determine if we need to run
- # newfs on any of them
- for PART in `ls ${PARTDIR}`
- do
- if [ ! -e "/dev/${PART}" ]
- then
- exit_err "ERROR: The partition ${PART} does not exist. Failure in bsdlabel?"
- fi
-
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
- PARTLABEL="`cat ${PARTDIR}/${PART} | cut -d ':' -f 4`"
- PARTGEOM="`cat ${PARTDIR}/${PART} | cut -d ':' -f 5`"
- PARTXTRAOPTS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 6`"
-
- # Make sure journaling isn't enabled on this device
- if [ -e "/dev/${PART}.journal" ]
- then
- rc_nohalt "gjournal stop -f ${PART}.journal"
- rc_nohalt "gjournal clear ${PART}"
- fi
-
- # Setup encryption if necessary
- if [ "${PARTENC}" = "ON" -a "${PARTFS}" != "SWAP" ]
- then
- echo_log "Creating geli provider for ${PART}"
- rc_halt "dd if=/dev/random of=${GELIKEYDIR}/${PART}.key bs=64 count=1"
- rc_halt "geli init -b -s 4096 -P -K ${GELIKEYDIR}/${PART}.key /dev/${PART}"
- rc_halt "geli attach -p -k ${GELIKEYDIR}/${PART}.key /dev/${PART}"
-
- EXT=".eli"
- else
- # No Encryption
- EXT=""
- fi
-
- case ${PARTFS} in
- UFS) echo_log "NEWFS: /dev/${PART} - ${PARTFS}"
- sleep 2
- rc_halt "newfs /dev/${PART}${EXT}"
- sleep 2
- rc_halt "sync"
- rc_halt "glabel label ${PARTLABEL} /dev/${PART}${EXT}"
- rc_halt "sync"
- sleep 2
- ;;
- UFS+S) echo_log "NEWFS: /dev/${PART} - ${PARTFS}"
- sleep 2
- rc_halt "newfs -U /dev/${PART}${EXT}"
- sleep 2
- rc_halt "sync"
- rc_halt "glabel label ${PARTLABEL} /dev/${PART}${EXT}"
- rc_halt "sync"
- sleep 2
- ;;
- UFS+J) echo_log "NEWFS: /dev/${PART} - ${PARTFS}"
- sleep 2
- rc_halt "newfs /dev/${PART}${EXT}"
- sleep 2
- rc_halt "gjournal label -f /dev/${PART}${EXT}"
- sleep 2
- rc_halt "newfs -O 2 -J /dev/${PART}${EXT}.journal"
- sleep 2
- rc_halt "sync"
- rc_halt "glabel label ${PARTLABEL} /dev/${PART}${EXT}.journal"
- rc_halt "sync"
- sleep 2
- ;;
- ZFS) echo_log "NEWFS: /dev/${PART} - ${PARTFS}"
- setup_zfs_filesystem "${PART}" "${PARTFS}" "${PARTMNT}" "${EXT}" "${PARTGEOM}" "${PARTXTRAOPTS}"
- ;;
- SWAP) rc_halt "sync"
- rc_halt "glabel label ${PARTLABEL} /dev/${PART}${EXT}"
- rc_halt "sync"
- sleep 2
- ;;
- *) exit_err "ERROR: Got unknown file-system type $PARTFS" ;;
- esac
-
- done
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-parse.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-parse.sh.svn-base
deleted file mode 100644
index 1fa138d..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-parse.sh.svn-base
+++ /dev/null
@@ -1,205 +0,0 @@
-#!/bin/sh
-# functions.sh
-# Library of functions which pc-sysinstall may call upon for parsing the config
-
-# which gets the value of a setting in the provided line
-get_value_from_string()
-{
- if [ ! -z "${1}" ]
- then
- VAL="`echo ${1} | cut -d '=' -f 2`"
- export VAL
- else
- echo "Error: Did we forgot to supply a string to parse?"
- exit 1
- fi
-};
-
-# Get the value from the cfg file including spaces
-get_value_from_cfg_with_spaces()
-{
- if [ ! -z "${1}" ]
- then
- VAL=`grep "^${1}=" ${CFGF} | head -n 1 | cut -d '=' -f 2`
- export VAL
- else
- exit_err "Error: Did we forgot to supply a setting to grab?"
- fi
-};
-
-
-# Get the value from the cfg file
-get_value_from_cfg()
-{
- if [ ! -z "${1}" ]
- then
- VAL=`grep "^${1}=" ${CFGF} | head -n 1 | cut -d '=' -f 2 | tr -d ' '`
- export VAL
- else
- exit_err "Error: Did we forgot to supply a setting to grab?"
- fi
-};
-
-# Checks the value of a setting in the provided line with supplied possibilities
-# 1 = setting we are checking, 2 = list of valid values
-if_check_value_exists()
-{
- if [ ! -z "${1}" -a ! -z "${2}" ]
- then
- # Get the first occurance of the setting from the config, strip out whitespace
-
- VAL=`grep "^${1}" ${CFGF} | head -n 1 | cut -d '=' -f 2 | tr -d ' '`
- if [ -z "${VAL}" ]
- then
- # This value doesn't exist, lets return
- return 0
- fi
-
-
- VALID="1"
- for i in ${2}
- do
- if [ "$VAL" = "${i}" ]
- then
- VALID="0"
- fi
- done
- if [ "$VALID" = "1" ]
- then
- exit_err "Error: ${1} is set to unknown value $VAL"
- fi
- else
- exit_err "Error: Did we forgot to supply a string to parse and setting to grab?"
- fi
-};
-
-# Checks the value of a setting in the provided line with supplied possibilities
-# 1 = setting we are checking, 2 = list of valid values
-check_value()
-{
- if [ ! -z "${1}" -a ! -z "${2}" ]
- then
- # Get the first occurance of the setting from the config, strip out whitespace
- VAL=`grep "^${1}" ${CFGF} | head -n 1 | cut -d '=' -f 2 | tr -d ' '`
- VALID="1"
- for i in ${2}
- do
- if [ "$VAL" = "${i}" ]
- then
- VALID="0"
- fi
- done
- if [ "$VALID" = "1" ]
- then
- exit_err "Error: ${1} is set to unknown value $VAL"
- fi
- else
- exit_err "Error: Did we forgot to supply a string to parse and setting to grab?"
- fi
-};
-
-# Checks for the presense of the supplied arguements in the config file
-# 1 = values to confirm exist
-file_sanity_check()
-{
- if [ ! -z "$CFGF" -a ! -z "$1" ]
- then
- for i in $1
- do
- grep "^${i}=" $CFGF >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- LN=`grep "^${i}=" ${CFGF} | head -n 1 | cut -d '=' -f 2 | tr -d ' '`
- if [ -z "${LN}" ]
- then
- echo "Error: Config fails sanity test! ${i}= is empty"
- exit 1
- fi
- else
- echo "Error: Config fails sanity test! Missing ${i}="
- exit 1
- fi
- done
- else
- echo "Error: Missing config file, and / or values to sanity check for!"
- exit 1
- fi
-};
-
-
-# Function which merges the contents of a new config into the specified old one
-# Only works with <val>= type configurations
-merge_config()
-{
- OLDCFG="${1}"
- NEWCFG="${2}"
- FINALCFG="${3}"
-
- # Copy our oldcfg to the new one, which will be used as basis
- cp ${OLDCFG} ${FINALCFG}
-
- # Remove blank lines from new file
- cat ${NEWCFG} | sed '/^$/d' > ${FINALCFG}.tmp
-
- # Set our marker if we've found any
- FOUNDMERGE="NO"
-
- while read newline
- do
- echo ${newline} | grep "^#" >/dev/null 2>/dev/null
- if [ "$?" != "0" ] ; then
- VAL="`echo ${newline} | cut -d '=' -f 1`"
- cat ${OLDCFG} | grep ${VAL} >/dev/null 2>/dev/null
- if [ "$?" != "0" ] ; then
- if [ "${FOUNDMERGE}" = "NO" ] ; then
- echo "" >> ${FINALCFG}
- echo "# Auto-merged values from newer ${NEWCFG}" >> ${FINALCFG}
- FOUNDMERGE="YES"
- fi
- echo "${newline}" >> ${FINALCFG}
- fi
- fi
- done < ${FINALCFG}.tmp
- rm ${FINALCFG}.tmp
-
-};
-
-# Loop to check for a specified mount-point in a list
-check_for_mount()
-{
- MNTS="${1}"
- FINDMNT="${2}"
-
- # Check if we found a valid root partition
- for CHECKMNT in `echo ${MNTS} | sed 's|,| |g'`
- do
- if [ "${CHECKMNT}" = "${FINDMNT}" ] ; then
- return 0
- fi
- done
-
- return 1
-};
-
-# Function which returns the next line in the specified config file
-get_next_cfg_line()
-{
- CURFILE="$1"
- CURLINE="$2"
-
- FOUND="1"
-
- while read line
- do
- if [ "$FOUND" = "0" ] ; then
- VAL="$line" ; export VAL
- return
- fi
- if [ "$line" = "${CURLINE}" ] ; then
- FOUND="0"
- fi
- done <${CURFILE}
-
- # Got here, couldn't find this line or at end of file, set VAL to ""
- VAL="" ; export VAL
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-runcommands.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-runcommands.sh.svn-base
deleted file mode 100644
index 307119d..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-runcommands.sh.svn-base
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/sh
-# Functions which runs commands on the system
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-run_chroot_cmd()
-{
- CMD="$@"
- echo_log "Running chroot command: ${CMD}"
- echo "$CMD" >${FSMNT}/.runcmd.sh
- chmod 755 ${FSMNT}/.runcmd.sh
- chroot ${FSMNT} sh /.runcmd.sh
- rm ${FSMNT}/.runcmd.sh
-};
-
-run_chroot_script()
-{
- SCRIPT="$@"
- SBASE=`basename $SCRIPT`
-
- cp ${SCRIPT} ${FSMNT}/.$SBASE
- chmod 755 ${FSMNT}/.${SBASE}
-
- echo_log "Running chroot script: ${SCRIPT}"
- chroot ${FSMNT} /.${SBASE}
-
- rm ${FSMNT}/.${SBASE}
-};
-
-
-run_ext_cmd()
-{
- CMD="$@"
- # Make sure to export FSMNT, in case cmd needs it
- export FSMNT
- echo_log "Running external command: ${CMD}"
- echo "${CMD}"> ${TMPDIR}/.runcmd.sh
- chmod 755 ${TMPDIR}/.runcmd.sh
- sh ${TMPDIR}/.runcmd.sh
- rm ${TMPDIR}/.runcmd.sh
-};
-
-
-# Starts the user setup
-run_commands()
-{
- while read line
- do
- # Check if we need to run any chroot command
- echo $line | grep ^runCommand= >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "$line"
- run_chroot_cmd "$VAL"
- fi
-
- # Check if we need to run any chroot script
- echo $line | grep ^runScript= >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "$line"
- run_chroot_script "$VAL"
- fi
-
- # Check if we need to run any chroot command
- echo $line | grep ^runExtCommand= >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "$line"
- run_ext_cmd "$VAL"
- fi
-
- done <${CFGF}
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-unmount.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-unmount.sh.svn-base
deleted file mode 100644
index abd2491..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-unmount.sh.svn-base
+++ /dev/null
@@ -1,175 +0,0 @@
-#!/bin/sh
-# Functions which unmount all mounted disk filesystems
-
-# Script that adds our gmirror devices for syncing
-start_gmirror_sync()
-{
-
- cd ${MIRRORCFGDIR}
- for DISK in `ls *`
- do
- MIRRORDISK="`cat ${DISK} | cut -d ':' -f 1`"
- MIRRORBAL="`cat ${DISK} | cut -d ':' -f 2`"
- MIRRORNAME="`cat ${DISK} | cut -d ':' -f 3`"
-
- # Start the mirroring service
- rc_halt "gmirror insert ${MIRRORNAME} /dev/${MIRRORDISK}"
-
- done
-
-};
-
-# Unmounts all our mounted file-systems
-unmount_all_filesystems()
-{
- # Copy the logfile to disk before we unmount
- cp ${LOGOUT} ${FSMNT}/root/pc-sysinstall.log
- cd /
-
- # Start by unmounting any ZFS partitions
- zfs_cleanup_unmount
-
- # Lets read our partition list, and unmount each
- ##################################################################
- for PART in `ls ${PARTDIR}`
- do
-
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
- PARTLABEL="`cat ${PARTDIR}/${PART} | cut -d ':' -f 4`"
-
- if [ "${PARTENC}" = "ON" ]
- then
- EXT=".eli"
- else
- EXT=""
- fi
-
- #if [ "${PARTFS}" = "SWAP" ]
- #then
- # rc_nohalt "swapoff /dev/${PART}${EXT}"
- #fi
-
- # Check if we've found "/", and unmount that last
- if [ "$PARTMNT" != "/" -a "${PARTMNT}" != "none" -a "${PARTFS}" != "ZFS" ]
- then
- rc_halt "umount -f /dev/${PART}${EXT}"
-
- # Re-check if we are missing a label for this device and create it again if so
- if [ ! -e "/dev/label/${PARTLABEL}" ]
- then
- case ${PARTFS} in
- UFS) glabel label ${PARTLABEL} /dev/${PART}${EXT} ;;
- UFS+S) glabel label ${PARTLABEL} /dev/${PART}${EXT} ;;
- UFS+J) glabel label ${PARTLABEL} /dev/${PART}${EXT}.journal ;;
- *) ;;
- esac
- fi
- fi
-
- # Check if we've found "/" and make sure the label exists
- if [ "$PARTMNT" = "/" -a "${PARTFS}" != "ZFS" ]
- then
- if [ ! -e "/dev/label/${PARTLABEL}" ]
- then
- case ${PARTFS} in
- UFS) ROOTRELABEL="glabel label ${PARTLABEL} /dev/${PART}${EXT}" ;;
- UFS+S) ROOTRELABEL="glabel label ${PARTLABEL} /dev/${PART}${EXT}" ;;
- UFS+J) ROOTRELABEL="glabel label ${PARTLABEL} /dev/${PART}${EXT}.journal" ;;
- *) ;;
- esac
- fi
- fi
- done
-
- # Last lets the /mnt partition
- #########################################################
- rc_nohalt "umount -f ${FSMNT}"
-
- # If are using a ZFS on "/" set it to legacy
- if [ ! -z "${FOUNDZFSROOT}" ]
- then
- rc_halt "zfs set mountpoint=legacy ${FOUNDZFSROOT}"
- fi
-
- # If we need to relabel "/" do it now
- if [ ! -z "${ROOTRELABEL}" ]
- then
- ${ROOTRELABEL}
- fi
-
- # Unmount our CDMNT
- rc_nohalt "umount -f ${CDMNT}"
-
- # Check if we need to run any gmirror syncing
- ls ${MIRRORCFGDIR}/* >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Lets start syncing now
- start_gmirror_sync
- fi
-
- # Import any pools, so they are active at shutdown and ready to boot potentially
- zpool import -a
-
-};
-
-# Unmounts any filesystems after a failure
-unmount_all_filesystems_failure()
-{
- cd /
-
- # if we did a fresh install, start unmounting
- if [ "${INSTALLMODE}" = "fresh" ]
- then
-
- # Lets read our partition list, and unmount each
- ##################################################################
- if [ -d "${PARTDIR}" ]
- then
- for PART in `ls ${PARTDIR}`
- do
-
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
-
- #if [ "${PARTFS}" = "SWAP" ]
- #then
- # if [ "${PARTENC}" = "ON" ]
- # then
- # rc_nohalt "swapoff /dev/${PART}.eli"
- # else
- # rc_nohalt "swapoff /dev/${PART}"
- # fi
- #fi
-
- # Check if we've found "/" again, don't need to mount it twice
- if [ "$PARTMNT" != "/" -a "${PARTMNT}" != "none" -a "${PARTFS}" != "ZFS" ]
- then
- rc_nohalt "umount -f /dev/${PART}"
- rc_nohalt "umount -f ${FSMNT}${PARTMNT}"
- fi
- done
-
- # Last lets the /mnt partition
- #########################################################
- rc_nohalt "umount -f ${FSMNT}"
-
- fi
- else
- # We are doing a upgrade, try unmounting any of these filesystems
- chroot ${FSMNT} /sbin/umount -a >>${LOGOUT} >>${LOGOUT}
- umount -f ${FSMNT}/usr >>${LOGOUT} 2>>${LOGOUT}
- umount -f ${FSMNT}/dev >>${LOGOUT} 2>>${LOGOUT}
- umount -f ${FSMNT} >>${LOGOUT} 2>>${LOGOUT}
- rc_nohalt "sh ${TMPDIR}/.upgrade-unmount"
- fi
-
- # Unmount our CDMNT
- rc_nohalt "umount ${CDMNT}"
-
- # Import any pools, so they are active at shutdown and ready to boot potentially
- zpool import -a
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-upgrade.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-upgrade.sh.svn-base
deleted file mode 100644
index 08f80e7..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-upgrade.sh.svn-base
+++ /dev/null
@@ -1,259 +0,0 @@
-#!/bin/sh
-# Functions which perform the mounting / unmount for upgrades
-
-
-mount_target_slice()
-{
- MPART="${1}"
-
- # Import any zpools
- zpool import -a
-
- # Set a variable of files we want to make backups of before doing upgrade
- BKFILES="/etc/rc.conf /boot/loader.conf"
-
- if [ -e "/dev/${MPART}a.journal" ]
- then
- rc_halt "mount /dev/${MPART}.journal ${FSMNT}"
- elif [ -e "/dev/${MPART}a" ]
- then
- mount /dev/${MPART}a ${FSMNT}
- if [ "$?" != "0" ]
- then
- # Try ZFS on this slice
- mount -t zfs ${MPART}a ${FSMNT}
- if [ "${?}" != "0" ]
- then
- exit_err "Failed to mount ${MPART}"
- fi
- fi
- fi
-
- mount -t devfs devfs ${FSMNT}/dev
- chroot ${FSMNT} /sbin/mount -a >>${LOGOUT} 2>>${LOGOUT}
- chroot ${FSMNT} umount /proc >/dev/null 2>/dev/null
- chroot ${FSMNT} umount /compat/linux/proc >/dev/null 2>/dev/null
-
- # Save which partition was mounted, so we may unmount it later
- echo "umount -f /dev/${MPART}a" >>${TMPDIR}/.upgrade-unmount
-
- # Now before we start the upgrade, make sure we set our noschg flags
- echo_log "Cleaning up old filesystem... Please wait..."
- rc_halt "chflags -R noschg ${FSMNT}"
-
- # Make backup copies of some files
- for i in ${BKFILES}
- do
- cp ${FSMNT}${i} ${FSMNT}${i}.preUpgrade >/dev/null 2>/dev/null
- done
-
- # Remove some old dirs
- rm -rf ${FSMNT}/etc/rc.d >/dev/null 2>/dev/null
-
- # If we are doing PC-BSD install, lets cleanup old pkgs on disk
- if [ "$INSTALLTYPE" != "FreeBSD" ]
- then
- echo_log "Removing old packages, this may take a while... Please wait..."
- echo '#/bin/sh
-for i in `pkg_info -E \*`
-do
- echo "Uninstalling package: ${i}"
- pkg_delete -f ${i} >/dev/null 2>/dev/null
-done
-' >${FSMNT}/.cleanPkgs.sh
- chmod 755 ${FSMNT}/.cleanPkgs.sh
- chroot ${FSMNT} /.cleanPkgs.sh
- rm ${FSMNT}/.cleanPkgs.sh
- run_chroot_cmd "pkg_delete -f \*" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /usr/PCBSD" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /PCBSD" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /var/db/pkgs" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /usr/local32" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /usr/sbin" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /usr/lib" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /usr/bin" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /boot/kernel" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /sbin" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /bin" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /lib" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /libexec" >/dev/null 2>/dev/null
- fi
-
-}
-
-# Mount the target upgrade partitions
-mount_upgrade()
-{
-
- # Start with disk0
- disknum="0"
-
- # Make sure we remove the old upgrade-mount script
- rm -rf ${TMPDIR}/.upgrade-unmount >/dev/null 2>/dev/null
-
- # We are ready to start mounting, lets read the config and do it
- while read line
- do
- echo $line | grep "^disk${disknum}=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Found a disk= entry, lets get the disk we are working on
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- DISK="$VAL"
-
- # Before we go further, lets confirm this disk really exists
- if [ ! -e "/dev/${DISK}" ]
- then
- exit_err "ERROR: The disk ${DISK} does not exist!"
- fi
- fi
-
- echo $line | grep "^partition=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found a partition= entry, lets read / set it
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- PTYPE="$VAL"
-
- # We are using free space, figure out the slice number
- if [ "${PTYPE}" = "free" -o "${PTYPE}" = "all" ]
- then
- exit_err "ERROR: Invalid upgrade partition=${PTYPE}"
- fi
- fi
-
- echo $line | grep "^commitDiskPart" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found our flag to commit this disk setup / lets do sanity check and do it
- if [ ! -z "${DISK}" -a ! -z "${PTYPE}" ]
- then
- case ${PTYPE} in
- s1|s2|s3|s4) tmpSLICE="${DISK}${PTYPE}a" ;;
- *) exit_err "ERROR: Unknown PTYPE: $PTYPE" ;;
- esac
-
- if [ ! -e "/dev/${tmpSLICE}" ]
- then
- exit_err "ERROR: /dev/${tmpSLICE} does not exist! Mount failed!"
- fi
-
- # Start mounting this slice
- mount_target_slice "${DISK}${PTYPE}"
-
- # Increment our disk counter to look for next disk and unset
- unset PTYPE DISK
- disknum="`expr $disknum + 1`"
- else
- exit_err "ERROR: commitDiskPart was called without procceding disk<num>= and partition= entries!!!"
- fi
- fi
-
- done <${CFGF}
-
-};
-
-copy_skel_files_upgrade()
-{
-
- # Now make sure we fix any user profile scripts, which cause problems from 7.x->8.x
- echo '#!/bin/sh
-
-cd /home
-for i in `ls`
-do
-
- # Backup the old profile dirs
- if [ -d "${i}" ]
- then
- mv /home/${i}/.kde4 /home/${i}/.kde4.preUpgrade >/dev/null 2>/dev/null
- mv /home/${i}/.kde /home/${i}/.kde.preUpgrade >/dev/null 2>/dev/null
- mv /home/${i}/.fluxbox /home/${i}/.fluxbox.preUpgrade >/dev/null 2>/dev/null
-
- # Copy over the skel directories
- tar cv --exclude "./dot.*" -f - -C /usr/share/skel . 2>/dev/null | tar xvf - -C /home/${i} 2>/dev/null
-
- for j in `ls /usr/share/skel/dot*`
- do
- dname=`echo ${j} | sed s/dot//`
- cp /usr/share/skel/${j} /home/${i}/${dname}
- done
-
- chown -R ${i}:${i} /home/${i}
- fi
-
-done
-' >${FSMNT}/.fixUserProfile.sh
- chmod 755 ${FSMNT}/.fixUserProfile.sh
- chroot ${FSMNT} /.fixUserProfile.sh >/dev/null 2>/dev/null
- rm ${FSMNT}/.fixUserProfile.sh
-
-
-
- # if the user wants to keep their original .kde4 profile
- ###########################################################################
- get_value_from_cfg "upgradeKeepDesktopProfile"
- if [ "$VAL" = "YES" -o "$VAL" = "yes" ] ; then
- echo '#!/bin/sh
- cd /home
-for i in `ls`
-do
- # Import the old config again
- if [ -d "${i}/.kde4.preUpgrade" ]
- then
- # Copy over the skel directories
- tar cv -f - -C /home/${i}/.kde4.preUpgrade . 2>/dev/null | tar xvf - -C /home/${i}/.kde4 2>/dev/null
- chown -R ${i}:${i} /home/${i}/.kde4
- fi
-done
-' >${FSMNT}/.fixUserProfile.sh
- chmod 755 ${FSMNT}/.fixUserProfile.sh
- chroot ${FSMNT} /.fixUserProfile.sh >/dev/null 2>/dev/null
- rm ${FSMNT}/.fixUserProfile.sh
-
- fi
-
-};
-
-# Function which merges some configuration files with the new defaults
-merge_old_configs()
-{
-
- # Merge the loader.conf with old
- cp ${FSMNT}/boot/loader.conf ${FSMNT}/boot/loader.conf.new
- merge_config "${FSMNT}/boot/loader.conf.preUpgrade" "${FSMNT}/boot/loader.conf.new" "${FSMNT}/boot/loader.conf"
- rm ${FSMNT}/boot/loader.conf.new
-
- # Merge the rc.conf with old
- cp ${FSMNT}/etc/rc.conf ${FSMNT}/etc/rc.conf.new
- merge_config "${FSMNT}/etc/rc.conf.preUpgrade" "${FSMNT}/etc/rc.conf.new" "${FSMNT}/etc/rc.conf"
- rm ${FSMNT}/etc/rc.conf.new
-
-};
-
-# Function which unmounts all the mounted file-systems
-unmount_upgrade()
-{
-
- # If on PC-BSD, make sure we copy any fixed skel files
- if [ "$INSTALLTYPE" != "FreeBSD" ] ; then
- copy_skel_files_upgrade
- fi
-
- cd /
-
- # Unmount FS
- chroot ${FSMNT} /sbin/umount -a >/dev/null 2>/dev/null
- umount ${FSMNT}/usr >/dev/null 2>/dev/null
- umount ${FSMNT}/var >/dev/null 2>/dev/null
- umount ${FSMNT}/dev >/dev/null 2>/dev/null
- umount ${FSMNT} >/dev/null 2>/dev/null
-
- # Run our saved unmount script for these file-systems
- rc_nohalt "sh ${TMPDIR}/.upgrade-unmount"
-
- umount ${CDMNT}
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-users.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-users.sh.svn-base
deleted file mode 100644
index e413807..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions-users.sh.svn-base
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/bin/sh
-# Functions which runs commands on the system
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-
-# Function which checks and sets up auto-login for a user if specified
-check_autologin()
-{
- get_value_from_cfg autoLoginUser
- if [ ! -z "${VAL}" -a "${INSTALLTYPE}" = "PCBSD" ]
- then
- AUTOU="${VAL}"
- # Add the auto-login user line
- sed -i.bak "s/AutoLoginUser=/AutoLoginUser=${AUTOU}/g" ${FSMNT}/usr/local/kde4/share/config/kdm/kdmrc
-
- # Add the auto-login user line
- sed -i.bak "s/AutoLoginEnable=false/AutoLoginEnable=true/g" ${FSMNT}/usr/local/kde4/share/config/kdm/kdmrc
-
- fi
-};
-
-# Function which actually runs the adduser command on the filesystem
-add_user()
-{
- ARGS="${1}"
-
- if [ -e "${FSMNT}/.tmpPass" ]
- then
- # Add a user with a supplied password
- run_chroot_cmd "cat /.tmpPass | pw useradd ${ARGS}"
- rc_halt "rm ${FSMNT}/.tmpPass"
- else
- # Add a user with no password
- run_chroot_cmd "cat /.tmpPass | pw useradd ${ARGS}"
- fi
-
-};
-
-# Function which reads in the config, and adds any users specified
-setup_users()
-{
-
- # We are ready to start setting up the users, lets read the config
- while read line
- do
-
- echo $line | grep "^userName=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- USERNAME="$VAL"
- fi
-
- echo $line | grep "^userComment=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- USERCOMMENT="$VAL"
- fi
-
- echo $line | grep "^userPass=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- USERPASS="$VAL"
- fi
-
- echo $line | grep "^userShell=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- USERSHELL="$VAL"
- fi
-
- echo $line | grep "^userHome=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- USERHOME="$VAL"
- fi
-
- echo $line | grep "^userGroups=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- USERGROUPS="$VAL"
- fi
-
-
- echo $line | grep "^commitUser" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found our flag to commit this user, lets check and do it
- if [ ! -z "${USERNAME}" ]
- then
-
- # Now add this user to the system, by building our args list
- ARGS="-n ${USERNAME}"
-
- if [ ! -z "${USERCOMMENT}" ]
- then
- ARGS="${ARGS} -c \"${USERCOMMENT}\""
- fi
-
- if [ ! -z "${USERPASS}" ]
- then
- ARGS="${ARGS} -h 0"
- echo "${USERPASS}" >${FSMNT}/.tmpPass
- else
- ARGS="${ARGS} -h -"
- rm ${FSMNT}/.tmpPass 2>/dev/null 2>/dev/null
- fi
-
- if [ ! -z "${USERSHELL}" ]
- then
- ARGS="${ARGS} -s \"${USERSHELL}\""
- else
- ARGS="${ARGS} -s \"/nonexistant\""
- fi
-
- if [ ! -z "${USERHOME}" ]
- then
- ARGS="${ARGS} -m -d \"${USERHOME}\""
- fi
-
- if [ ! -z "${USERGROUPS}" ]
- then
- ARGS="${ARGS} -G \"${USERGROUPS}\""
- fi
-
- add_user "${ARGS}"
-
- # Unset our vars before looking for any more users
- unset USERNAME USERCOMMENT USERPASS USERSHELL USERHOME USERGROUPS
- else
- exit_err "ERROR: commitUser was called without any userName= entry!!!"
- fi
- fi
-
- done <${CFGF}
-
-
- # Check if we need to enable a user to auto-login to the desktop
- check_autologin
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/functions.sh.svn-base
deleted file mode 100644
index a4975c3..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/functions.sh.svn-base
+++ /dev/null
@@ -1,249 +0,0 @@
-#!/bin/sh
-# functions.sh
-# Library of functions which pc-sysinstall may call upon
-
-# Function which displays the help-index file
-display_help()
-{
- if [ -e "${PROGDIR}/doc/help-index" ]
- then
- cat ${PROGDIR}/doc/help-index
- else
- echo "Error: ${PROGDIR}/doc/help-index not found"
- exit 1
- fi
-};
-
-# Function which displays the help for a specified command
-display_command_help()
-{
- if [ -z "$1" ]
- then
- echo "Error: No command specified to display help for"
- exit 1
- fi
-
- if [ -e "${PROGDIR}/doc/help-${1}" ]
- then
- cat ${PROGDIR}/doc/help-${1}
- else
- echo "Error: ${PROGDIR}/doc/help-${1} not found"
- exit 1
- fi
-};
-
-# Function to convert bytes to megabytes
-convert_byte_to_megabyte()
-{
- if [ -z "${1}" ]
- then
- echo "Error: No bytes specified!"
- exit 1
- fi
-
- expr -e ${1} / 1048576
-};
-
-# Function to convert blocks to megabytes
-convert_blocks_to_megabyte()
-{
- if [ -z "${1}" ] ; then
- echo "Error: No blocks specified!"
- exit 1
- fi
-
- expr -e ${1} / 2048
-};
-
-# Takes $1 and strips the whitespace out of it, returns VAL
-strip_white_space()
-{
- if [ -z "${1}" ]
- then
- echo "Error: No value setup to strip whitespace from!"
-
- exit 1
- fi
-
- VAL=`echo "$1" | tr -d ' '`
- export VAL
-};
-
-# Displays an error message and exits with error 1
-exit_err()
-{
- # Echo the message for the users benefit
- echo "$1"
-
- # Save this error to the log file
- echo "${1}" >>$LOGOUT
-
- # Check if we need to unmount any file-systems after this failure
- unmount_all_filesystems_failure
-
- echo "For more details see log file: $LOGOUT"
-
- exit 1
-};
-
-# Run-command, don't halt if command exits with non-0
-rc_nohalt()
-{
- CMD="$1"
-
- if [ -z "${CMD}" ]
- then
- exit_err "Error: missing argument in rc_nohalt()"
- fi
-
- echo "Running: ${CMD}" >>${LOGOUT}
- ${CMD} >>${LOGOUT} 2>>${LOGOUT}
-
-};
-
-# Run-command, halt if command exits with non-0
-rc_halt()
-{
- CMD="$1"
-
- if [ -z "${CMD}" ]
- then
- exit_err "Error: missing argument in rc_halt()"
- fi
-
- echo "Running: ${CMD}" >>${LOGOUT}
- ${CMD} >>${LOGOUT} 2>>${LOGOUT}
- STATUS="$?"
- if [ "${STATUS}" != "0" ]
- then
- exit_err "Error ${STATUS}: ${CMD}"
- fi
-};
-
-# Run-command w/echo to screen, halt if command exits with non-0
-rc_halt_echo()
-{
- CMD="$1"
-
- if [ -z "${CMD}" ]
- then
- exit_err "Error: missing argument in rc_halt_echo()"
- fi
-
- echo "Running: ${CMD}" >>${LOGOUT}
- ${CMD} 2>&1 | tee -a ${LOGOUT}
- STATUS="$?"
- if [ "$STATUS" != "0" ]
- then
- exit_err "Error ${STATUS}: $CMD"
- fi
-
-};
-
-# Run-command w/echo, don't halt if command exits with non-0
-rc_nohalt_echo()
-{
- CMD="$1"
-
- if [ -z "${CMD}" ]
- then
- exit_err "Error: missing argument in rc_nohalt_echo()"
- fi
-
- echo "Running: ${CMD}" >>${LOGOUT}
- ${CMD} 2>&1 | tee -a ${LOGOUT}
-
-};
-
-# Echo to the screen and to the log
-echo_log()
-{
- STR="$1"
-
- if [ -z "${STR}" ]
- then
- exit_err "Error: missing argument in echo_log()"
- fi
-
- echo "${STR}" | tee -a ${LOGOUT}
-};
-
-# Function which uses "fetch" to download a file, and display a progress report
-fetch_file()
-{
-
-FETCHFILE="$1"
-FETCHOUTFILE="$2"
-EXITFAILED="$3"
-
-SIZEFILE="${TMPDIR}/.fetchSize"
-EXITFILE="${TMPDIR}/.fetchExit"
-
-rm ${SIZEFILE} 2>/dev/null >/dev/null
-rm ${FETCHOUTFILE} 2>/dev/null >/dev/null
-
-fetch -s "${FETCHFILE}" >${SIZEFILE}
-SIZE="`cat ${SIZEFILE}`"
-SIZE="`expr ${SIZE} / 1024`"
-echo "FETCH: ${FETCHFILE}"
-echo "FETCH: ${FETCHOUTFILE}" >>${LOGOUT}
-
-( fetch -o ${FETCHOUTFILE} "${FETCHFILE}" >/dev/null 2>/dev/null ; echo "$?" > ${EXITFILE} ) &
-PID="$!"
-while
-z=1
-do
-
- if [ -e "${FETCHOUTFILE}" ]
- then
- DSIZE=`du -k ${FETCHOUTFILE} | tr -d '\t' | cut -d '/' -f 1`
- echo "SIZE: ${SIZE} DOWNLOADED: ${DSIZE}"
- echo "SIZE: ${SIZE} DOWNLOADED: ${DSIZE}" >>${LOGOUT}
- fi
-
- # Check if the download is finished
- ps -p ${PID} >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- break;
- fi
-
- sleep 2
-done
-
-echo "FETCHDONE"
-
-EXIT="`cat ${EXITFILE}`"
-if [ "${EXIT}" != "0" -a "$EXITFAILED" = "1" ]
-then
- exit_err "Error: Failed to download ${FETCHFILE}"
-fi
-
-return $EXIT
-
-};
-
-# Function to return a the zpool name for this device
-get_zpool_name()
-{
- DEVICE="$1"
-
- # Set the base name we use for zpools
- BASENAME="tank"
-
- if [ ! -d "${TMPDIR}/.zpools" ] ; then
- mkdir -p ${TMPDIR}/.zpools
- fi
-
- if [ -e "${TMPDIR}/.zpools/${DEVICE}" ] ; then
- cat ${TMPDIR}/.zpools/${DEVICE}
- return 0
- else
- # Need to generate a zpool name for this device
- NUM=`ls ${TMPDIR}/.zpools/ | wc -l | sed 's| ||g'`
- NEWNAME="${BASENAME}${NUM}"
- echo "$NEWNAME" >${TMPDIR}/.zpools/${DEVICE}
- echo "${NEWNAME}"
- return
- fi
-};
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/parseconfig.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/parseconfig.sh.svn-base
deleted file mode 100644
index 9bf92b8..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/parseconfig.sh.svn-base
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/bin/sh
-# Main install configuration parsing script
-#
-
-# Source our functions scripts
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-bsdlabel.sh
-. ${BACKEND}/functions-cleanup.sh
-. ${BACKEND}/functions-disk.sh
-. ${BACKEND}/functions-extractimage.sh
-. ${BACKEND}/functions-installcomponents.sh
-. ${BACKEND}/functions-localize.sh
-. ${BACKEND}/functions-mountdisk.sh
-. ${BACKEND}/functions-networking.sh
-. ${BACKEND}/functions-newfs.sh
-. ${BACKEND}/functions-parse.sh
-. ${BACKEND}/functions-runcommands.sh
-. ${BACKEND}/functions-unmount.sh
-. ${BACKEND}/functions-upgrade.sh
-. ${BACKEND}/functions-users.sh
-
-# Check that the config file exists
-if [ ! -e "${1}" ]
-then
- echo "ERROR: Install configuration $1 does not exist!"
- exit 1
-fi
-
-# Set our config file variable
-CFGF="$1"
-
-# Check the dirname of the provided CFGF and make sure its a full path
-DIR="`dirname ${CFGF}`"
-if [ "${DIR}" = "." ]
-then
- CFGF="`pwd`/${CFGF}"
-fi
-export CFGF
-
-# Start by doing a sanity check, which will catch any obvious mistakes in the config
-file_sanity_check "installMode disk0 partition bootManager installType installMedium packageType"
-
-# We passed the Sanity check, lets grab some of the universal config settings and store them
-check_value installMode "fresh upgrade"
-check_value bootManager "bsd none"
-check_value installType "PCBSD FreeBSD"
-check_value installMedium "dvd usb ftp rsync"
-check_value packageType "uzip tar rsync split"
-check_value partition "all ALL s1 s2 s3 s4 free FREE"
-if_check_value_exists mirrorbal "load prefer round-robin split"
-
-# We passed all sanity checks! Yay, lets start the install
-echo "File Sanity Check -> OK"
-
-# Lets load the various universal settings now
-get_value_from_cfg installMode
-INSTALLMODE="${VAL}" ; export INSTALLMODE
-
-get_value_from_cfg installType
-INSTALLTYPE="${VAL}" ; export INSTALLTYPE
-
-get_value_from_cfg installMedium
-INSTALLMEDIUM="${VAL}" ; export INSTALLMEDIUM
-
-get_value_from_cfg packageType
-PACKAGETYPE="${VAL}" ; export PACKAGETYPE
-
-# Check if we are doing any networking setup
-start_networking
-
-# If we are not doing an upgrade, lets go ahead and setup the disk
-if [ "${INSTALLMODE}" = "fresh" ]
-then
-
- # Lets start setting up the disk slices now
- setup_disk_slice
-
- # Disk setup complete, now lets parse WORKINGSLICES and setup the bsdlabels
- setup_disk_label
-
- # Now we've setup the bsdlabels, lets go ahead and run newfs / zfs
- # to setup the filesystems
- setup_filesystems
-
- # Lets mount the partitions now
- mount_all_filesystems
-
- # We are ready to begin extraction, lets start now
- init_extraction
-
- # Check if we have any optional modules to load
- install_components
-
- # Do any localization in configuration
- run_localize
-
- # Save any networking config on the installed system
- save_networking_install
-
- # Now add any users
- setup_users
-
- # Now run any commands specified
- run_commands
-
- # Do any last cleanup / setup before unmounting
- run_final_cleanup
-
- # Unmount and finish up
- unmount_all_filesystems
-
- echo_log "Installation finished!"
- exit 0
-
-else
- # We're going to do an upgrade, skip all the disk setup
- # and start by mounting the target drive/slices
- mount_upgrade
-
- # Start the extraction process
- init_extraction
-
- # Do any localization in configuration
- run_localize
-
- # Now run any commands specified
- run_commands
-
- # Merge any old configuration files
- merge_old_configs
-
- # All finished, unmount the file-systems
- unmount_upgrade
-
- echo_log "Upgrade finished!"
- exit 0
-fi
-
diff --git a/PCBSD/pc-sysinstall/backend/.svn/text-base/startautoinstall.sh.svn-base b/PCBSD/pc-sysinstall/backend/.svn/text-base/startautoinstall.sh.svn-base
deleted file mode 100644
index a7103fb..0000000
--- a/PCBSD/pc-sysinstall/backend/.svn/text-base/startautoinstall.sh.svn-base
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/sh
-# Script which reads the pc-autoinstall.conf directive, and begins the install
-#
-
-# Source our functions scripts
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-networking.sh
-. ${BACKEND}/functions-parse.sh
-
-# Check that the config file exists
-if [ ! -e "${1}" ]
-then
- echo "ERROR: Install configuration $1 does not exist!"
- exit 1
-fi
-
-# Set our config file variable
-CONF=${1}
-INSTALL_CFG="/tmp/pc-sysinstall.cfg"
-
-# Check if the config file is on disk as well
-PCCFG=`grep "pc_config:" ${CONF} | grep -v "^#" | sed "s|pc_config: ||g" | sed "s|pc_config:||g"`
-SHUTDOWN_CMD=`grep "shutdown_cmd:" ${CONF} | grep -v "^#" | sed "s|shutdown_cmd: ||g" | sed "s|shutdown_cmd:||g"`
-CONFIRM_INS=`grep "confirm_install:" ${CONF} | grep -v "^#" | sed "s|confirm_install: ||g" | sed "s|confirm_install:||g"`
-
-# Check that this isn't a http / ftp file we need to fetch later
-echo "${PCCFG}" | grep -e "^http" -e "^ftp" > /dev/null 2>/dev/null
-if [ "$?" != "0" ]
-then
- # Copy over the install cfg file, if not done already
- if [ ! -e "${INSTALL_CFG}" ]
- then
- cp ${PCCFG} ${INSTALL_CFG}
- fi
- # Make sure we have the file which was copied into /tmp previously
- if [ ! -e "${INSTALL_CFG}" ]
- then
- echo "Error: ${INSTALL_CFG} is missing! Exiting in 10 seconds..."
- sleep 10
- exit 150
- fi
-else
- # We need to fetch a remote file, check and set any nic options before doing so
- NICCFG=`grep "nic_config:" ${CONF} | grep -v "^#" | sed "s|nic_config: ||g" | sed "s|nic_config:||g"`
- if [ "${NICCFG}" = "dhcp-all" -o "${NICCFG}" = "DHCP-ALL" ]
- then
- # Try to auto-enable dhcp on any nics we find
- enable_auto_dhcp
- else
- echo "Running command \"ifconfig ${NICCFG}\""
- ifconfig ${NICCFG}
- WRKNIC="`echo ${NICCFG} | cut -d ' ' -f 1`"
- NICDNS=`grep "nic_dns:" ${CONF} | grep -v "^#" | sed "s|nic_dns: ||g" | sed "s|nic_dns:||g"`
- NICGATE=`grep "nic_gateway:" ${CONF} | grep -v "^#" | sed "s|nic_gateway: ||g" | sed "s|nic_gateway:||g"`
-
- echo "nameserver ${NICDNS}" >/etc/resolv.conf
-
- echo "Running command \"route add default ${NICGATE}\""
- route add default ${NICGATE}
- fi
-
- get_nic_mac "$WRKNIC"
- nic_mac="${FOUNDMAC}"
-
- PCCFG=`echo ${PCCFG} | sed "s|%%NIC_MAC%%|${nic_mac}|g"`
-
- # Now try to fetch the remove file
- echo "Fetching cfg with: \"fetch -o ${INSTALL_CFG} ${PCCFG}\""
- fetch -o "${INSTALL_CFG}" "${PCCFG}"
- if [ "$?" != "0" ]
- then
- echo "ERROR: Failed to fetch ${PCCFG}, install aborted"
- exit 150
- fi
-
-fi
-
-# If we end up with a valid config, lets proccede
-if [ -e "${INSTALL_CFG}" ]
-then
-
- if [ "${CONFIRM_INS}" != "no" -a "${CONFIRM_INS}" != "NO" ]
- then
- echo "Type in 'install' to begin automated installation. Warning: Data on target disks may be destroyed!"
- read tmp
- case $tmp in
- install|INSTALL) ;;
- *) echo "Install canceled!" ; exit 150 ;;
- esac
- fi
-
- ${PROGDIR}/pc-sysinstall -c ${INSTALL_CFG}
- if [ "$?" = "0" ]
- then
- if [ ! -z "$SHUTDOWN_CMD" ]
- then
- ${SHUTDOWN_CMD}
- else
- echo "SUCCESS: Installation finished! Press ENTER to rebooot."
- read tmp
- shutdown -r now
- fi
- else
- echo "ERROR: Installation failed, press ENTER to drop to shell."
- read tmp
- /bin/csh
- fi
-else
- echo "ERROR: Failed to get /tmp/pc-sysinstall.cfg for automated install..."
- exit 150
-fi
diff --git a/PCBSD/pc-sysinstall/backend/functions-bsdlabel.sh b/PCBSD/pc-sysinstall/backend/functions-bsdlabel.sh
deleted file mode 100644
index af7813e..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-bsdlabel.sh
+++ /dev/null
@@ -1,592 +0,0 @@
-#!/bin/sh
-# Functions related to disk operations using bsdlabel
-
-# Check if we are are provided a geli password on the nextline of the config
-check_for_enc_pass()
-{
- CURLINE="${1}"
-
- get_next_cfg_line "${CFGF}" "${CURLINE}"
- echo ${VAL} | grep "^encpass=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- # Found a password, return it
- get_value_from_string "${VAL}"
- return
- fi
-
- VAL="" ; export VAL
- return -1
-};
-
-# On check on the disk-label line if we have any extra vars for this device
-# Only enabled for ZFS devices now, may add other xtra options in future for other FS's
-get_fs_line_xvars()
-{
- ACTIVEDEV="${1}"
- LINE="${2}"
-
- echo $LINE | grep ' (' >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
-
- # See if we are looking for ZFS specific options
- echo $LINE | grep '^ZFS' >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- ZTYPE="NONE"
- ZFSVARS="`echo $LINE | cut -d '(' -f 2- | cut -d ')' -f 1`"
-
- # Check if we are doing raidz setup
- echo $ZFSVARS | grep "^raidz:" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- ZTYPE="raidz"
- ZFSVARS="`echo $ZFSVARS | sed 's|raidz: ||g' | sed 's|raidz:||g'`"
- fi
-
- echo $ZFSVARS | grep "^mirror:" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- ZTYPE="mirror"
- ZFSVARS="`echo $ZFSVARS | sed 's|mirror: ||g' | sed 's|mirror:||g'`"
- _nZFS=""
-
- # Using mirroring, setup boot partitions on each disk
- for i in $ZFSVARS
- do
- is_disk "$i"
- if [ "$?" = "0" ] ; then
- init_gpt_full_disk "$i"
- rc_halt "gpart add -t freebsd-zfs ${i}"
- rc_halt "gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ${i}"
- _nZFS="$_nZFS ${i}p2"
- else
- _nZFS="$_nZFS ${i}"
- fi
- done
- ZFSVARS=`echo "$_nZFS" | tr -s ' '`
- fi
-
- # Return the ZFS options
- if [ "${ZTYPE}" = "NONE" ] ; then
- VAR="${ACTIVEDEV} ${ZFSVARS}"
- else
- VAR="${ZTYPE} ${ACTIVEDEV} ${ZFSVARS}"
- fi
- export VAR
- return
- fi # End of ZFS block
-
-
- fi # End of xtra-options block
-
- # If we got here, set VAR to empty and export
- VAR=""
- export VAR
- return
-};
-
-# Function which creates a unique label name for the specified mount
-gen_glabel_name()
-{
- MOUNT="$1"
- TYPE="$2"
- NUM="0"
- MAXNUM="20"
-
- # Check if we are doing /, and rename it
- if [ "$MOUNT" = "/" ]
- then
- NAME="rootfs"
- else
- # If doing a swap partition, also rename it
- if [ "${TYPE}" = "SWAP" ]
- then
- NAME="swap"
- else
- NAME="`echo $MOUNT | sed 's|/||g' | sed 's| ||g'`"
- fi
- fi
-
- # Loop through and break when we find our first available label
- while
- Z=1
- do
- glabel status | grep "${NAME}${NUM}" >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- break
- else
- NUM="`expr ${NUM} + 1`"
- fi
-
- if [ $NUM -gt $MAXNUM ]
- then
- exit_err "Cannot allocate additional glabel name for $NAME"
- break
- fi
- done
-
-
- VAL="${NAME}${NUM}"
- export VAL
-};
-
-# Function to setup / stamp a legacy MBR bsdlabel
-setup_mbr_partitions()
-{
-
- DISKTAG="$1"
- WRKSLICE="$2"
- FOUNDPARTS="1"
-
-
- # Lets setup the BSDLABEL
- BSDLABEL="${TMPDIR}/bsdLabel-${WRKSLICE}"
- export BSDLABEL
- rm $BSDLABEL >/dev/null 2>/dev/null
- echo "# /dev/${WRKSLICE}" >>$BSDLABEL
- echo "8 partitions:" >>$BSDLABEL
- echo "# size offset fstype bsize bps/cpg" >>$BSDLABEL
-
- PARTLETTER="a"
-
- # Lets read in the config file now and populate this
- while read line
- do
- # Check for data on this slice
- echo $line | grep "^${DISKTAG}-part=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found a slice- entry, lets get the slice info
- get_value_from_string "${line}"
- STRING="$VAL"
- FOUNDPARTS="0"
-
- # We need to split up the string now, and pick out the variables
- FS=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 1`
- SIZE=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 2`
- MNT=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 3`
-
- # Check if we have a .eli extension on this FS
- echo ${FS} | grep ".eli" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- FS="`echo ${FS} | cut -d '.' -f 1`"
- ENC="ON"
- check_for_enc_pass "${line}"
- if [ "${VAL}" != "" ] ; then
- # We have a user supplied password, save it for later
- ENCPASS="${VAL}"
- fi
- else
- ENC="OFF"
- fi
-
- # Check if the user tried to setup / as an encrypted partition
- check_for_mount "${MNT}" "/"
- if [ "${?}" = "0" -a "${ENC}" = "ON" ]
- then
- USINGENCROOT="0" ; export USINGENCROOT
- fi
-
- # Now check that these values are sane
- case $FS in
- UFS|UFS+S|UFS+J|ZFS|SWAP) ;;
- *) exit_err "ERROR: Invalid file system specified on $line" ;;
- esac
-
- # Check that we have a valid size number
- expr $SIZE + 1 >/dev/null 2>/dev/null
- if [ "$?" != "0" ]; then
- exit_err "ERROR: The size specified on $line is invalid"
- fi
-
- # Check that the mount-point starts with /
- echo "$MNT" | grep -e "^/" -e "^none" >/dev/null 2>/dev/null
- if [ "$?" != "0" ]; then
- exit_err "ERROR: The mount-point specified on $line is invalid"
- fi
-
- if [ "$SIZE" = "0" ]
- then
- SOUT="*"
- else
- SOUT="${SIZE}M"
- fi
-
- # OK, we passed all tests, now lets put these values into a config
- # If the part
- if [ "${PARTLETTER}" = "a" ]
- then
- if [ "$FS" = "SWAP" ]
- then
- echo "a: ${SOUT} * swap 0 0" >>${BSDLABEL}
- else
- echo "a: ${SOUT} 0 4.2BSD 0 0" >>${BSDLABEL}
- fi
-
- # Check if we found a valid root partition
- check_for_mount "${MNT}" "/"
- if [ "$?" = "0" ] ; then
- FOUNDROOT="0" ; export FOUNDROOT
- fi
-
- # Check if we have a "/boot" instead
- check_for_mount "${MNT}" "/boot"
- if [ "${?}" = "0" ] ; then
- USINGBOOTPART="0" ; export USINGBOOTPART
- if [ "${FS}" != "UFS" -a "${FS}" != "UFS+S" -a "${FS}" != "UFS+J" ]
- then
- exit_err "/boot partition must be formatted with UFS"
- fi
- fi
-
- else
- # Done with the a: partitions
-
- # Check if we found a valid root partition not on a:
- check_for_mount "${MNT}" "/"
- if [ "${?}" = "0" ] ; then
- FOUNDROOT="1" ; export FOUNDROOT
- fi
-
- # Check if we have a /boot partition, and fail since its not first
- check_for_mount "${MNT}" "/boot"
- if [ "${?}" = "0" ] ; then
- exit_err "/boot partition must be first partition"
- fi
-
-
- if [ "$FS" = "SWAP" ]
- then
- echo "${PARTLETTER}: ${SOUT} * swap" >>${BSDLABEL}
- else
- echo "${PARTLETTER}: ${SOUT} * 4.2BSD" >>${BSDLABEL}
- fi
- fi
-
- # Generate a unique label name for this mount
- gen_glabel_name "${MNT}" "${FS}"
- PLABEL="${VAL}"
-
- # Get any extra options for this fs / line
- get_fs_line_xvars "${WRKSLICE}${PARTLETTER}" "${STRING}"
- XTRAOPTS="${VAR}"
-
- # Save this data to our partition config dir
- echo "${FS}:${MNT}:${ENC}:${PLABEL}:MBR:${XTRAOPTS}" >${PARTDIR}/${WRKSLICE}${PARTLETTER}
-
- # If we have a enc password, save it as well
- if [ ! -z "${ENCPASS}" ] ; then
- echo "${ENCPASS}" >${PARTDIR}-enc/${WRKSLICE}${PARTLETTER}-encpass
- fi
-
- # This partition letter is used, get the next one
- case ${PARTLETTER} in
- a) PARTLETTER="b" ;;
- b) # When we hit b, add the special c: setup for bsdlabel
- echo "c: * * unused" >>${BSDLABEL}
- PARTLETTER="d" ;;
- d) PARTLETTER="e" ;;
- e) PARTLETTER="f" ;;
- f) PARTLETTER="g" ;;
- g) PARTLETTER="h" ;;
- h) PARTLETTER="ERR" ;;
- *) exit_err "ERROR: bsdlabel only supports up to letter h for partitions." ;;
- esac
-
- fi # End of subsection locating a slice in config
-
- echo $line | grep "^commitDiskLabel" >/dev/null 2>/dev/null
- if [ "$?" = "0" -a "${FOUNDPARTS}" = "0" ]
- then
- # Found our flag to commit this label setup, check that we found at least 1 partition and do it
- if [ "${PARTLETTER}" != "a" ]
- then
- # Check if we only had 1 partition, and make sure we add "c:" section to label
- if [ "${PARTLETTER}" = "b" ]
- then
- echo "c: * * unused" >>${BSDLABEL}
- fi
-
- echo "bsdlabel -R -B /dev/${WRKSLICE} ${BSDLABEL}"
- bsdlabel -R -B ${WRKSLICE} ${BSDLABEL}
-
- break
- else
- exit_err "ERROR: commitDiskLabel was called without any partition entries for it!"
- fi
- fi
- done <${CFGF}
-};
-
-# Function to setup partitions using gpt
-setup_gpt_partitions()
-{
- DISKTAG="$1"
- DISK="$2"
- FOUNDPARTS="1"
-
- # Lets read in the config file now and setup our GPT partitions
- CURPART="2"
- while read line
- do
- # Check for data on this slice
- echo $line | grep "^${DISKTAG}-part=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- FOUNDPARTS="0"
- # Found a slice- entry, lets get the slice info
- get_value_from_string "${line}"
- STRING="$VAL"
-
- # We need to split up the string now, and pick out the variables
- FS=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 1`
- SIZE=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 2`
- MNT=`echo $STRING | tr -s '\t' ' ' | cut -d ' ' -f 3`
-
- # Check if we have a .eli extension on this FS
- echo ${FS} | grep ".eli" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- FS="`echo ${FS} | cut -d '.' -f 1`"
- ENC="ON"
- check_for_enc_pass "${line}"
- if [ "${VAL}" != "" ] ; then
- # We have a user supplied password, save it for later
- ENCPASS="${VAL}"
- fi
- else
- ENC="OFF"
- fi
-
- # Check if the user tried to setup / as an encrypted partition
- check_for_mount "${MNT}" "/"
- if [ "${?}" = "0" -a "${ENC}" = "ON" ]
- then
- USINGENCROOT="0" ; export USINGENCROOT
- fi
-
- # Now check that these values are sane
- case $FS in
- UFS|UFS+S|UFS+J|ZFS|SWAP) ;;
- *) exit_err "ERROR: Invalid file system specified on $line" ;;
- esac
-
- # Check that we have a valid size number
- expr $SIZE + 1 >/dev/null 2>/dev/null
- if [ "$?" != "0" ]; then
- exit_err "ERROR: The size specified on $line is invalid"
- fi
-
- # Check that the mount-point starts with /
- echo "$MNT" | grep -e "^/" -e "^none" >/dev/null 2>/dev/null
- if [ "$?" != "0" ]; then
- exit_err "ERROR: The mount-point specified on $line is invalid"
- fi
-
- if [ "$SIZE" = "0" ]
- then
- SOUT=""
- else
- SOUT="-s ${SIZE}M"
- fi
-
- # Check if we found a valid root partition
- check_for_mount "${MNT}" "/"
- if [ "${?}" = "0" ] ; then
- if [ "${CURPART}" = "2" ] ; then
- FOUNDROOT="0" ; export FOUNDROOT
- else
- FOUNDROOT="1" ; export FOUNDROOT
- fi
- fi
-
- check_for_mount "${MNT}" "/boot"
- if [ "${?}" = "0" ] ; then
- if [ "${CURPART}" = "2" ] ; then
- USINGBOOTPART="0" ; export USINGBOOTPART
- if [ "${FS}" != "UFS" -a "${FS}" != "UFS+S" -a "${FS}" != "UFS+J" ]
- then
- exit_err "/boot partition must be formatted with UFS"
- fi
- else
- exit_err "/boot partition must be first partition"
- fi
- fi
-
- # Generate a unique label name for this mount
- gen_glabel_name "${MNT}" "${FS}"
- PLABEL="${VAL}"
-
- # Get any extra options for this fs / line
- get_fs_line_xvars "${DISK}p${CURPART}" "${STRING}"
- XTRAOPTS="${VAR}"
-
- # Figure out the gpart type to use
- case ${FS} in
- ZFS) PARTYPE="freebsd-zfs" ;;
- SWAP) PARTYPE="freebsd-swap" ;;
- *) PARTYPE="freebsd-ufs" ;;
- esac
-
- # Create the partition
- rc_halt "gpart add ${SOUT} -t ${PARTYPE} ${DISK}"
-
- # Check if this is a root / boot partition, and stamp the right loader
- for TESTMNT in `echo ${MNT} | sed 's|,| |g'`
- do
- if [ "${TESTMNT}" = "/" -a -z "${BOOTTYPE}" ] ; then
- BOOTTYPE="${PARTYPE}"
- fi
- if [ "${TESTMNT}" = "/boot" ] ; then
- BOOTTYPE="${PARTYPE}"
- fi
- done
-
- # Save this data to our partition config dir
- echo "${FS}:${MNT}:${ENC}:${PLABEL}:GPT:${XTRAOPTS}" >${PARTDIR}/${DISK}p${CURPART}
-
- # Clear out any headers
- sleep 2
- dd if=/dev/zero of=${DISK}p${CURPART} count=2048 >/dev/null 2>/dev/null
-
- # If we have a enc password, save it as well
- if [ ! -z "${ENCPASS}" ] ; then
- echo "${ENCPASS}" >${PARTDIR}-enc/${DISK}p${CURPART}-encpass
- fi
-
- # Increment our parts counter
- CURPART="`expr ${CURPART} + 1`"
-
- fi # End of subsection locating a slice in config
-
- echo $line | grep "^commitDiskLabel" >/dev/null 2>/dev/null
- if [ "$?" = "0" -a "${FOUNDPARTS}" = "0" ]
- then
-
- # If this is the boot disk, stamp the right gptboot
- if [ ! -z "${BOOTTYPE}" ] ; then
- case ${BOOTTYPE} in
- freebsd-ufs) rc_halt "gpart bootcode -p /boot/gptboot -i 1 ${DISK}" ;;
- freebsd-zfs) rc_halt "gpart bootcode -p /boot/gptzfsboot -i 1 ${DISK}" ;;
- esac
- fi
-
-
- # Found our flag to commit this label setup, check that we found at least 1 partition
- if [ "${CURPART}" = "2" ] ; then
- exit_err "ERROR: commitDiskLabel was called without any partition entries for it!"
- fi
-
- break
- fi
- done <${CFGF}
-};
-
-# Reads through the config and sets up a BSDLabel for the given slice
-populate_disk_label()
-{
- if [ -z "${1}" ]
- then
- exit_err "ERROR: populate_disk_label() called without argument!"
- fi
-
- # Set some vars from the given working slice
- disk="`echo $1 | cut -d '-' -f 1`"
- slicenum="`echo $1 | cut -d '-' -f 2`"
- type="`echo $1 | cut -d '-' -f 3`"
-
- # Set WRKSLICE based upon format we are using
- if [ "$type" = "mbr" ] ; then
- wrkslice="${disk}s${slicenum}"
- fi
- if [ "$type" = "gpt" ] ; then
- wrkslice="${disk}p${slicenum}"
- fi
-
- if [ -e "${SLICECFGDIR}/${wrkslice}" ]
- then
- disktag="`cat ${SLICECFGDIR}/${wrkslice}`"
- else
- exit_err "ERROR: Missing SLICETAG data. This shouldn't happen - please let the developers know"
- fi
-
- # Using Traditional MBR for dual-booting
- if [ "$type" = "mbr" ] ; then
- setup_mbr_partitions "${disktag}" "${wrkslice}"
- fi
-
- # Using entire disk mode, use GPT for this
- if [ "$type" = "gpt" ] ; then
- setup_gpt_partitions "${disktag}" "${disk}"
- fi
-
-};
-
-# Function which reads in the disk slice config, and performs it
-setup_disk_label()
-{
- # We are ready to start setting up the label, lets read the config and do the actions
-
- # First confirm that we have a valid WORKINGSLICES
- if [ -z "${WORKINGSLICES}" ]; then
- exit_err "ERROR: No slices were setup! Please report this to the maintainers"
- fi
-
- # Check that the slices we have did indeed get setup and gpart worked
- for i in $WORKINGSLICES
- do
- disk="`echo $i | cut -d '-' -f 1`"
- pnum="`echo $i | cut -d '-' -f 2`"
- type="`echo $i | cut -d '-' -f 3`"
- if [ "$type" = "mbr" -a ! -e "/dev/${disk}s${pnum}" ] ; then
- exit_err "ERROR: The partition ${i} doesn't exist! gpart failure!"
- fi
- if [ "$type" = "gpt" -a ! -e "/dev/${disk}p${pnum}" ] ; then
- exit_err "ERROR: The partition ${i} doesn't exist! gpart failure!"
- fi
- done
-
- # Setup some files which we'll be referring to
- LABELLIST="${TMPDIR}/workingLabels"
- export LABELLIST
- rm $LABELLIST >/dev/null 2>/dev/null
-
- # Set our flag to determine if we've got a valid root partition in this setup
- FOUNDROOT="-1"
- export FOUNDROOT
-
- # Check if we are using a /boot partition
- USINGBOOTPART="1"
- export USINGBOOTPART
-
- # Set encryption on root check
- USINGENCROOT="1" ; export USINGENCROOT
-
- # Make the tmp directory where we'll store FS info & mount-points
- rm -rf ${PARTDIR} >/dev/null 2>/dev/null
- mkdir -p ${PARTDIR} >/dev/null 2>/dev/null
- rm -rf ${PARTDIR}-enc >/dev/null 2>/dev/null
- mkdir -p ${PARTDIR}-enc >/dev/null 2>/dev/null
-
- for i in $WORKINGSLICES
- do
- populate_disk_label "${i}"
- done
-
- # Check if we made a root partition
- if [ "$FOUNDROOT" = "-1" ]
- then
- exit_err "ERROR: No root (/) partition specified!!"
- fi
-
- # Check if we made a root partition
- if [ "$FOUNDROOT" = "1" -a "${USINGBOOTPART}" != "0" ]
- then
- exit_err "ERROR: (/) partition isn't first partition on disk!"
- fi
-
- if [ "${USINGENCROOT}" = "0" -a "${USINGBOOTPART}" != "0" ]
- then
- exit_err "ERROR: Can't encrypt (/) with no (/boot) partition!"
- fi
-};
-
diff --git a/PCBSD/pc-sysinstall/backend/functions-cleanup.sh b/PCBSD/pc-sysinstall/backend/functions-cleanup.sh
deleted file mode 100644
index 1c29190..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-cleanup.sh
+++ /dev/null
@@ -1,384 +0,0 @@
-#!/bin/sh
-# Functions which perform the final cleanup after an install
-
-# Finishes up with ZFS setup before unmounting
-zfs_cleanup_unmount()
-{
- # Loop through our FS and see if we have any ZFS partitions to cleanup
- for PART in `ls ${PARTDIR}`
- do
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- ZPOOLNAME=$(get_zpool_name "${PART}")
-
- if [ "$PARTFS" = "ZFS" ]
- then
- # Check if we have multiple zfs mounts specified
- for ZMNT in `echo ${PARTMNT} | sed 's|,| |g'`
- do
- if [ "${ZMNT}" = "/" ]
- then
- # Make sure we haven't already added the zfs boot line when
- # Creating a dedicated "/boot" partition
- cat ${FSMNT}/boot/loader.conf 2>/dev/null | grep "vfs.root.mountfrom=" >/dev/null 2>/dev/null
- if [ "$?" != "0" ] ; then
- echo "vfs.root.mountfrom=\"zfs:${ZPOOLNAME}\"" >> ${FSMNT}/boot/loader.conf
- fi
- FOUNDZFSROOT="${ZPOOLNAME}" ; export FOUNDZFSROOT
- fi
- done
- FOUNDZFS="1"
- fi
- done
-
- if [ ! -z "${FOUNDZFS}" ]
- then
- # Check if we need to add our ZFS flags to rc.conf, src.conf and loader.conf
- cat ${FSMNT}/boot/loader.conf 2>/dev/null | grep 'zfs_load="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'zfs_load="YES"' >>${FSMNT}/boot/loader.conf
- fi
- cat ${FSMNT}/etc/rc.conf 2>/dev/null | grep 'zfs_enable="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- #echo 'zfs_enable="YES"' >>${FSMNT}/etc/rc.conf
- fi
-
- sleep 2
- # Copy over any ZFS cache data
- cp /boot/zfs/* ${FSMNT}/boot/zfs/
-
- # Copy the hostid so that our zfs cache works
- cp /etc/hostid ${FSMNT}/etc/hostid
- fi
-
- # Loop through our FS and see if we have any ZFS partitions to cleanup
- for PART in `ls ${PARTDIR}`
- do
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
- ZPOOLNAME=$(get_zpool_name "${PART}")
-
- if [ "$PARTFS" = "ZFS" ]
- then
- # Check if we have multiple zfs mounts specified
- for ZMNT in `echo ${PARTMNT} | sed 's|,| |g'`
- do
- PARTMNTREV="${ZMNT} ${PARTMNTREV}"
- done
-
- for ZMNT in ${PARTMNTREV}
- do
- if [ "${ZMNT}" != "/" ]
- then
- #rc_halt "zfs set mountpoint=${ZMNT} ${ZPOOLNAME}${ZMNT}"
- rc_halt "zfs set mountpoint=${ZMNT} ${ZPOOLNAME}"
- #rc_halt "zfs unmount ${ZPOOLNAME}${ZMNT}"
- #sleep 2
- fi
- done
- fi
- done
-
-};
-
-# Function which performs the specific setup for using a /boot partition
-setup_dedicated_boot_part()
-{
- ROOTFS="${1}"
- ROOTFSTYPE="${2}"
- BOOTFS="${3}"
- BOOTMNT="${4}"
-
- # Set the root mount in loader.conf
- echo "vfs.root.mountfrom=\"${ROOTFSTYPE}:${ROOTFS}\"" >> ${FSMNT}/boot/loader.conf
- rc_halt "mkdir -p ${FSMNT}/${BOOTMNT}/boot"
- rc_halt "mv ${FSMNT}/boot/* ${FSMNT}${BOOTMNT}/boot/"
- rc_halt "mv ${FSMNT}${BOOTMNT}/boot ${FSMNT}/boot/"
- rc_halt "umount /dev/${BOOTFS}"
- rc_halt "mount /dev/${BOOTFS} ${FSMNT}${BOOTMNT}"
- rc_halt "rmdir ${FSMNT}/boot"
-
- # Strip the '/' from BOOTMNT before making symlink
- BOOTMNTNS="`echo ${BOOTMNT} | sed 's|/||g'`"
- rc_halt "chroot ${FSMNT} ln -s ${BOOTMNTNS}/boot /boot"
-
-};
-
-# Function which creates the /etc/fstab for the installed system
-setup_fstab()
-{
- FSTAB="${FSMNT}/etc/fstab"
- rm ${FSTAB} >/dev/null 2>/dev/null
-
- # Create the header
- echo "# Device Mountpoint FStype Options Dump Pass" >> ${FSTAB}
-
- # Loop through the partitions, and start creating /etc/fstab
- for PART in `ls ${PARTDIR}`
- do
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
- PARTLABEL="`cat ${PARTDIR}/${PART} | cut -d ':' -f 4`"
-
- DRIVE="`echo ${PART} | rev | cut -b 4- | rev`"
- # Check if this device is being mirrored
- if [ -e "${MIRRORCFGDIR}/${DRIVE}" ]
- then
- # This device is apart of a gmirror, lets reset PART to correct value
- MDRIVE="mirror/`cat ${MIRRORCFGDIR}/${DRIVE} | cut -d ':' -f 3`"
- TMP="`echo ${PART} | rev | cut -b -3 | rev`"
- PART="${MDRIVE}${TMP}"
- PARTLABEL=""
- fi
-
- # Unset EXT
- EXT=""
-
- # Figure out if we are using a glabel, or the raw name for this entry
- if [ ! -z "${PARTLABEL}" ]
- then
- DEVICE="label/${PARTLABEL}"
- else
- # Check if using encryption
- if [ "${PARTENC}" = "ON" ] ; then
- EXT=".eli"
- fi
-
- if [ "${PARTFS}" = "UFS+J" ] ; then
- EXT="${EXT}.journal"
- fi
- DEVICE="${PART}${EXT}"
- fi
-
-
- # Set our ROOTFSTYPE for loader.conf if necessary
- check_for_mount "${PARTMNT}" "/"
- if [ "$?" = "0" ] ; then
- if [ "${PARTFS}" = "ZFS" ] ; then
- ROOTFSTYPE="zfs"
- XPOOLNAME=$(get_zpool_name "${PART}")
- ROOTFS="${ZPOOLNAME}"
- else
- ROOTFS="${DEVICE}"
- ROOTFSTYPE="ufs"
- fi
- fi
-
- # Only create non-zfs partitions
- if [ "${PARTFS}" != "ZFS" ]
- then
-
- # Make sure geom_journal is loaded
- if [ "${PARTFS}" = "UFS+J" ] ; then
- setup_gjournal
- fi
-
- # Save the BOOTFS for call at the end
- if [ "${PARTMNT}" = "/boot" ] ; then
- BOOTFS="${PART}${EXT}"
- BOOTMNT="${BOOT_PART_MOUNT}"
- PARTMNT="${BOOTMNT}"
- fi
-
- # Echo out the fstab entry now
- if [ "${PARTFS}" = "SWAP" ]
- then
- echo "/dev/${DEVICE} none swap sw 0 0" >> ${FSTAB}
- else
- echo "/dev/${DEVICE} ${PARTMNT} ufs rw,noatime 1 1" >> ${FSTAB}
- fi
-
- fi # End of ZFS Check
- done
-
- # Setup some specific PC-BSD fstab options
- if [ "$INSTALLTYPE" != "FreeBSD" ]
- then
- echo "procfs /proc procfs rw 0 0" >> ${FSTAB}
- echo "linprocfs /compat/linux/proc linprocfs rw 0 0" >> ${FSTAB}
- echo "tmpfs /tmp tmpfs rw,mode=1777 0 0" >> ${FSTAB}
- fi
-
- # If we have a dedicated /boot, run the post-install setup of it now
- if [ ! -z "${BOOTMNT}" ] ; then
- setup_dedicated_boot_part "${ROOTFS}" "${ROOTFSTYPE}" "${BOOTFS}" "${BOOTMNT}"
- fi
-
-};
-
-# Setup our disk mirroring with gmirror
-setup_gmirror()
-{
- NUM="0"
-
- cd ${MIRRORCFGDIR}
- for DISK in `ls *`
- do
- MIRRORDISK="`cat ${DISK} | cut -d ':' -f 1`"
- MIRRORBAL="`cat ${DISK} | cut -d ':' -f 2`"
-
- # Create this mirror device
- gmirror label -vb $MIRRORBAL gm${NUM} /dev/${DISK}
-
- sleep 3
-
- # Save the gm<num> device in our config
- echo "${MIRRORDISK}:${MIRRORBAL}:gm${NUM}" > ${DISK}
-
- sleep 3
-
- NUM="`expr ${NUM} + 1`"
- done
-
-
- cat ${FSMNT}/boot/loader.conf 2>/dev/null | grep 'geom_mirror_load="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'geom_mirror_load="YES"' >>${FSMNT}/boot/loader.conf
- fi
-
-};
-
-# Function which saves geli keys and sets up loading of them at boot
-setup_geli_loading()
-{
-
- # Make our keys dir
- mkdir -p ${FSMNT}/boot/keys >/dev/null 2>/dev/null
-
- cd ${GELIKEYDIR}
- for KEYFILE in `ls *`
- do
- # Figure out the partition name based on keyfile name removing .key
- PART="`echo ${KEYFILE} | cut -d '.' -f 1`"
-
- # Add the entries to loader.conf to start this geli provider at boot
- echo "geli_${PART}_keyfile0_load=\"YES\"" >> ${FSMNT}/boot/loader.conf
- echo "geli_${PART}_keyfile0_type=\"${PART}:geli_keyfile0\"" >> ${FSMNT}/boot/loader.conf
- echo "geli_${PART}_keyfile0_name=\"/boot/keys/${KEYFILE}\"" >> ${FSMNT}/boot/loader.conf
-
- # If we have a passphrase, set it up now
- if [ -e "${PARTDIR}-enc/${PART}-encpass" ] ; then
- cat ${PARTDIR}-enc/${PART}-encpass | geli setkey -S -n 0 -p -k ${KEYFILE} -K ${KEYFILE} ${PART}
- geli configure -b ${PART}
- fi
-
- # Copy the key to the disk
- cp ${KEYFILE} ${FSMNT}/boot/keys/${KEYFILE}
- done
-
- # Make sure we have geom_eli set to load at boot
- cat ${FSMNT}/boot/loader.conf 2>/dev/null | grep 'geom_eli_load="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'geom_eli_load="YES"' >>${FSMNT}/boot/loader.conf
- fi
-
-};
-
-
-# Function to generate a random hostname if none was specified
-gen_hostname()
-{
- RAND="`jot -r 1 1 9000`"
-
- if [ "$INSTALLTYPE" = "FreeBSD" ]
- then
- VAL="freebsd-${RAND}"
- else
- VAL="pcbsd-${RAND}"
- fi
-
- export VAL
-
-};
-
-# Function which sets up the hostname for the system
-setup_hostname()
-{
-
- get_value_from_cfg hostname
- HOSTNAME="${VAL}"
-
- # If we don't have a hostname, make one up
- if [ -z "${HOSTNAME}" ]
- then
- gen_hostname
- HOSTNAME="${VAL}"
- fi
-
- # Clean up any saved hostname
- cat ${FSMNT}/etc/rc.conf | grep -v "hostname=" >${FSMNT}/etc/rc.conf.new
- mv ${FSMNT}/etc/rc.conf.new ${FSMNT}/etc/rc.conf
-
- # Set the hostname now
- echo_log "Setting hostname: ${HOSTNAME}"
- echo "hostname=\"${HOSTNAME}\"" >> ${FSMNT}/etc/rc.conf
- sed -i -e "s|my.domain|${HOSTNAME} ${HOSTNAME}|g" ${FSMNT}/etc/hosts
-
-};
-
-
-# Check and make sure geom_journal is enabled on the system
-setup_gjournal()
-{
-
- # Make sure we have geom_journal set to load at boot
- cat ${FSMNT}/boot/loader.conf 2>/dev/null | grep 'geom_journal_load="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'geom_journal_load="YES"' >>${FSMNT}/boot/loader.conf
- fi
-
-};
-
-# Function which sets the root password from the install config
-set_root_pw()
-{
- get_value_from_cfg_with_spaces rootPass
- PW="${VAL}"
-
- # If we don't have a root pass, return
- if [ -z "${PW}" ]
- then
- return 0
- fi
-
- echo_log "Setting root password"
- echo "${PW}" > ${FSMNT}/.rootpw
- run_chroot_cmd "cat /.rootpw | pw usermod root -h 0"
- rc_halt "rm ${FSMNT}/.rootpw"
-
-};
-
-
-run_final_cleanup()
-{
-
- # Check if we need to run any gmirror setup
- ls ${MIRRORCFGDIR}/* >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Lets setup gmirror now
- setup_gmirror
- fi
-
- # Check if we need to save any geli keys
- ls ${GELIKEYDIR}/* >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Lets setup geli loading
- setup_geli_loading
- fi
-
- # Set the root_pw if it is specified
- set_root_pw
-
- # Generate the fstab for the installed system
- setup_fstab
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-disk.sh b/PCBSD/pc-sysinstall/backend/functions-disk.sh
deleted file mode 100644
index 17cfb63..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-disk.sh
+++ /dev/null
@@ -1,646 +0,0 @@
-#!/bin/sh
-# Functions related to disk operations using gpart
-
-# See if device is a full disk or partition/slice
-is_disk() {
- for dsk in `sysctl -n kern.disks`
- do
- if [ "$dsk" = "${1}" ] ; then return 0 ; fi
- done
-
- return 1
-}
-
-# Get a MBR partitions sysid
-get_partition_sysid_mbr()
-{
- INPART="0"
- DISK="$1"
- PARTNUM=`echo ${2} | sed "s|${DISK}s||g"`
- fdisk ${DISK} >${TMPDIR}/disk-${DISK} 2>/dev/null
- while read i
- do
- echo "$i" | grep "The data for partition" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- INPART="0"
- PART="`echo ${i} | cut -d ' ' -f 5`"
- if [ "$PART" = "$PARTNUM" ] ; then
- INPART="1"
- fi
- fi
-
- # In the partition section
- if [ "$INPART" = "1" ] ; then
- echo "$i" | grep "^sysid" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- SYSID="`echo ${i} | tr -s '\t' ' ' | cut -d ' ' -f 2`"
- break
- fi
-
- fi
-
- done < ${TMPDIR}/disk-${DISK}
- rm ${TMPDIR}/disk-${DISK}
-
- VAL="${SYSID}"
- export VAL
-};
-
-# Get the partitions MBR label
-get_partition_label_mbr()
-{
- INPART="0"
- DISK="$1"
- PARTNUM=`echo ${2} | sed "s|${DISK}s||g"`
- fdisk ${DISK} >${TMPDIR}/disk-${DISK} 2>/dev/null
- while read i
- do
- echo "$i" | grep "The data for partition" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- INPART="0"
- PART="`echo ${i} | cut -d ' ' -f 5`"
- if [ "$PART" = "$PARTNUM" ] ; then
- INPART="1"
- fi
- fi
-
- # In the partition section
- if [ "$INPART" = "1" ] ; then
- echo "$i" | grep "^sysid" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- LABEL="`echo ${i} | tr -s '\t' ' ' | cut -d ',' -f 2-10`"
- break
- fi
-
- fi
-
- done < ${TMPDIR}/disk-${DISK}
- rm ${TMPDIR}/disk-${DISK}
-
- VAL="${LABEL}"
- export VAL
-};
-
-# Get a GPT partitions label
-get_partition_label_gpt()
-{
- DISK="${1}"
- PARTNUM=`echo ${2} | sed "s|${DISK}p||g"`
-
- gpart show ${DISK} >${TMPDIR}/disk-${DISK}
- while read i
- do
- SLICE="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 3`"
- if [ "${SLICE}" = "${PARTNUM}" ] ; then
- LABEL="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 4`"
- break
- fi
- done <${TMPDIR}/disk-${DISK}
- rm ${TMPDIR}/disk-${DISK}
-
- VAL="${LABEL}"
- export VAL
-};
-
-# Get a partitions startblock
-get_partition_startblock()
-{
- DISK="${1}"
- PARTNUM=`echo ${2} | sed "s|${DISK}p||g" | sed "s|${DISK}s||g"`
-
- gpart show ${DISK} >${TMPDIR}/disk-${DISK}
- while read i
- do
- SLICE="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 3`"
- if [ "$SLICE" = "${PARTNUM}" ] ; then
- SB="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 1`"
- break
- fi
- done <${TMPDIR}/disk-${DISK}
- rm ${TMPDIR}/disk-${DISK}
-
- VAL="${SB}"
- export VAL
-};
-
-# Get a partitions blocksize
-get_partition_blocksize()
-{
- DISK="${1}"
- PARTNUM=`echo ${2} | sed "s|${DISK}p||g" | sed "s|${DISK}s||g"`
-
- gpart show ${DISK} >${TMPDIR}/disk-${DISK}
- while read i
- do
- SLICE="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 3`"
- if [ "$SLICE" = "${PARTNUM}" ] ; then
- BS="`echo ${i} | grep -v ${DISK} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 2`"
- break
- fi
- done <${TMPDIR}/disk-${DISK}
- rm ${TMPDIR}/disk-${DISK}
-
- VAL="${BS}"
- export VAL
-};
-
-# Function which returns the partitions on a target disk
-get_disk_partitions()
-{
- gpart show ${1} >/dev/null 2>/dev/null
- if [ "$?" != "0" ] ; then
- VAL="" ; export VAL
- return
- fi
-
- gpart show ${1} | grep "MBR" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- type="MBR"
- else
- type="GPT"
- fi
-
- SLICES="`gpart show ${1} | grep -v ${1} | grep -v ' free ' |tr -s '\t' ' ' | cut -d ' ' -f 4 | sed '/^$/d'`"
- for i in ${SLICES}
- do
- case $type in
- MBR) name="${1}s${i}" ;;
- GPT) name="${1}p${i}";;
- *) name="${1}s${i}";;
- esac
- if [ -z "${RSLICES}" ]
- then
- RSLICES="${name}"
- else
- RSLICES="${RSLICES} ${name}"
- fi
- done
-
- VAL="${RSLICES}" ; export VAL
-};
-
-# Function which returns a target disks cylinders
-get_disk_cyl()
-{
- cyl=`diskinfo -v ${1} | grep "# Cylinders" | tr -s ' ' | cut -f 2`
- VAL="${cyl}" ; export VAL
-};
-
-# Function which returns a target disks sectors
-get_disk_sectors()
-{
- sec=`diskinfo -v ${1} | grep "# Sectors" | tr -s ' ' | cut -f 2`
- VAL="${sec}" ; export VAL
-};
-
-# Function which returns a target disks heads
-get_disk_heads()
-{
- head=`diskinfo -v ${1} | grep "# Heads" | tr -s ' ' | cut -f 2`
- VAL="${head}" ; export VAL
-};
-
-# Function which exports all zpools, making them safe to overwrite potentially
-export_all_zpools() {
- # Export any zpools
- for i in `zpool list -H -o name`
- do
- zpool export -f ${i}
- done
-};
-
-# Function to delete all gparts before starting an install
-delete_all_gpart()
-{
- echo_log "Deleting all gparts"
- DISK="$1"
-
- # Check for any swaps to stop
- for i in `gpart show ${DISK} 2>/dev/null | grep 'freebsd-swap' | tr -s ' ' | cut -d ' ' -f 4`
- do
- swapoff /dev/${DISK}s${i}b >/dev/null 2>/dev/null
- swapoff /dev/${DISK}p${i} >/dev/null 2>/dev/null
- done
-
- # Delete the gparts now
- for i in `gpart show ${DISK} 2>/dev/null | tr -s ' ' | cut -d ' ' -f 4`
- do
- if [ "${i}" != "${DISK}" -a "${i}" != "-" ] ; then
- rc_nohalt "gpart delete -i ${i} ${DISK}"
- fi
- done
-
- rc_nohalt "dd if=/dev/zero of=/dev/${DISK} count=3000"
-
-};
-
-# Function to export all zpools before starting an install
-stop_all_zfs()
-{
- # Export all zpools again, so that we can overwrite these partitions potentially
- for i in `zpool list -H -o name`
- do
- zpool export -f ${i}
- done
-};
-
-# Function which stops all gmirrors before doing any disk manipulation
-stop_all_gmirror()
-{
- DISK="${1}"
- GPROV="`gmirror list | grep ". Name: mirror/" | cut -d '/' -f 2`"
- for gprov in $GPROV
- do
- gmirror list | grep "Name: ${DISK}" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- echo_log "Stopping mirror $gprov $DISK"
- rc_nohalt "gmirror remove $gprov $DISK"
- rc_nohalt "dd if=/dev/zero of=/dev/${DISK} count=4096"
- fi
- done
-};
-
-# Make sure we don't have any geli providers active on this disk
-stop_all_geli()
-{
- DISK="${1}"
- cd /dev
-
- for i in `ls ${DISK}*`
- do
- echo $i | grep '.eli' >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- echo_log "Detaching GELI on ${i}"
- rc_halt "geli detach ${i}"
- fi
- done
-
-};
-
-# Function which reads in the disk slice config, and performs it
-setup_disk_slice()
-{
-
- # Cleanup any slice / mirror dirs
- rm -rf ${SLICECFGDIR} >/dev/null 2>/dev/null
- mkdir ${SLICECFGDIR}
- rm -rf ${MIRRORCFGDIR} >/dev/null 2>/dev/null
- mkdir ${MIRRORCFGDIR}
-
- # Start with disk0
- disknum="0"
-
- # Make sure all zpools are exported
- export_all_zpools
-
- # We are ready to start setting up the disks, lets read the config and do the actions
- while read line
- do
- echo $line | grep "^disk${disknum}=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Found a disk= entry, lets get the disk we are working on
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- DISK="$VAL"
-
- # Before we go further, lets confirm this disk really exists
- if [ ! -e "/dev/${DISK}" ]
- then
- exit_err "ERROR: The disk ${DISK} does not exist!"
- fi
-
- # Make sure we stop any gmirrors on this disk
- stop_all_gmirror ${DISK}
-
- # Make sure we stop any geli stuff on this disk
- stop_all_geli ${DISK}
-
- # Make sure we don't have any zpools loaded
- stop_all_zfs
-
- fi
-
- # Lets look if this device will be mirrored on another disk
- echo $line | grep "^mirror=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Found a disk= entry, lets get the disk we are working on
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- MIRRORDISK="$VAL"
-
- # Before we go further, lets confirm this disk really exists
- if [ ! -e "/dev/${MIRRORDISK}" ]
- then
- exit_err "ERROR: The mirror disk ${MIRRORDISK} does not exist!"
- fi
- fi
-
- # Lets see if we have been given a mirror balance choice
- echo $line | grep "^mirrorbal=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Found a disk= entry, lets get the disk we are working on
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- MIRRORBAL="$VAL"
- fi
-
- echo $line | grep "^partition=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found a partition= entry, lets read / set it
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- PTYPE="$VAL"
-
- # We are using free space, figure out the slice number
- if [ "${PTYPE}" = "free" -o "${PTYPE}" = "FREE" ]
- then
- # Lets figure out what number this slice will be
- LASTSLICE="`gpart show ${DISK} | grep -v ${DISK} | grep -v ' free' |tr -s '\t' ' ' | cut -d ' ' -f 4 | sed '/^$/d' | tail -n 1`"
- if [ -z "${LASTSLICE}" ]
- then
- LASTSLICE="1"
- else
- LASTSLICE="`expr $LASTSLICE + 1`"
- fi
-
- if [ $LASTSLICE -gt 4 ]
- then
- exit_err "ERROR: BSD only supports primary partitions, and there are none availble on $DISK"
- fi
-
- fi
- fi
-
- echo $line | grep "^bootManager=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found a bootManager= entry, lets read /set it
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- BMANAGER="$VAL"
- fi
-
- echo $line | grep "^commitDiskPart" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found our flag to commit this disk setup / lets do sanity check and do it
- if [ ! -z "${DISK}" -a ! -z "${PTYPE}" ]
- then
- case ${PTYPE} in
- all|ALL) tmpSLICE="${DISK}p1"
- run_gpart_full "${DISK}" "${BMANAGER}" ;;
- s1|s2|s3|s4) tmpSLICE="${DISK}${PTYPE}"
- # Get the number of the slice we are working on
- s="`echo ${PTYPE} | awk '{print substr($0,length,1)}'`"
- run_gpart_slice "${DISK}" "${BMANAGER}" "${s}" ;;
- free|FREE) tmpSLICE="${DISK}s${LASTSLICE}"
- run_gpart_free "${DISK}" "${LASTSLICE}" "${BMANAGER}" ;;
- *) exit_err "ERROR: Unknown PTYPE: $PTYPE" ;;
- esac
-
- # Now save which disk<num> this is, so we can parse it later during slice partition setup
- echo "disk${disknum}" >${SLICECFGDIR}/$tmpSLICE
-
- # Save any mirror config
- if [ ! -z "$MIRRORDISK" ]
- then
- # Default to round-robin if the user didn't specify
- if [ -z "$MIRRORBAL" ]
- then
- MIRRORBAL="round-robin"
- fi
- echo "$MIRRORDISK:$MIRRORBAL" >${MIRRORCFGDIR}/$DISK
- fi
-
-
- # Increment our disk counter to look for next disk and unset
- unset BMANAGER PTYPE DISK MIRRORDISK MIRRORBAL
- disknum="`expr $disknum + 1`"
- else
- exit_err "ERROR: commitDiskPart was called without procceding disk<num>= and partition= entries!!!"
- fi
- fi
-
- done <${CFGF}
-
-};
-
-# Stop all gjournals on disk / slice
-stop_gjournal() {
- DISK="$1"
- # Check if we need to shutdown any journals on this drive
- ls /dev/${DISK}*.journal >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- cd /dev
- for i in `ls ${DISK}*.journal`
- do
- rawjournal="`echo ${i} | cut -d '.' -f 1`"
- gjournal stop -f ${rawjournal} >>${LOGOUT} 2>>${LOGOUT}
- gjournal clear ${rawjournal} >>${LOGOUT} 2>>${LOGOUT}
- done
- fi
-} ;
-
-# Function which runs gpart and creates a single large slice
-init_gpt_full_disk()
-{
- DISK=$1
-
- # Set our sysctl so we can overwrite any geom using drives
- sysctl kern.geom.debugflags=16 >>${LOGOUT} 2>>${LOGOUT}
-
- # Stop any journaling
- stop_gjournal "${DISK}"
-
- # Remove any existing partitions
- delete_all_gpart "${DISK}"
-
- #Erase any existing bootloader
- echo_log "Cleaning up ${DISK}"
- rc_halt "dd if=/dev/zero of=/dev/${DISK} count=2048"
-
- sleep 2
-
- echo_log "Running gpart on ${DISK}"
- rc_halt "gpart create -s GPT ${DISK}"
- rc_halt "gpart add -s 128 -t freebsd-boot ${DISK}"
-
- echo_log "Stamping boot sector on ${DISK}"
- rc_halt "gpart bootcode -b /boot/pmbr ${DISK}"
-
-}
-
-# Function which runs gpart and creates a single large slice
-run_gpart_full()
-{
- DISK=$1
-
- init_gpt_full_disk "$DISK"
-
- slice="${DISK}-1-gpt"
-
- # Lets save our slice, so we know what to look for in the config file later on
- if [ -z "$WORKINGSLICES" ]
- then
- WORKINGSLICES="${slice}"
- export WORKINGSLICES
- else
- WORKINGSLICES="${WORKINGSLICES} ${slice}"
- export WORKINGSLICES
- fi
-};
-
-# Function which runs gpart on a specified s1-4 slice
-run_gpart_slice()
-{
- DISK=$1
- if [ ! -z "$2" ]
- then
- BMANAGER="$2"
- fi
-
- # Set the slice we will use later
- slice="${1}s${3}"
-
- # Set our sysctl so we can overwrite any geom using drives
- sysctl kern.geom.debugflags=16 >>${LOGOUT} 2>>${LOGOUT}
-
- # Get the number of the slice we are working on
- slicenum="$3"
-
- # Stop any journaling
- stop_gjournal "${slice}"
-
- # Make sure we have disabled swap on this drive
- if [ -e "${slice}b" ]
- then
- swapoff ${slice}b >/dev/null 2>/dev/null
- swapoff ${slice}b.eli >/dev/null 2>/dev/null
- fi
-
- # Modify partition type
- echo_log "Running gpart modify on ${DISK}"
- rc_halt "gpart modify -t freebsd -i ${slicenum} ${DISK}"
- sleep 2
-
- # Clean up old partition
- echo_log "Cleaning up $slice"
- rc_halt "dd if=/dev/zero of=/dev/${DISK}s${slicenum} count=1024"
-
- sleep 1
-
- if [ "${BMANAGER}" = "bsd" ]
- then
- echo_log "Stamping boot sector on ${DISK}"
- rc_halt "gpart bootcode -b /boot/boot0 ${DISK}"
- fi
-
- # Set the slice to the format we'll be using for gpart later
- slice="${1}-${3}-mbr"
-
- # Lets save our slice, so we know what to look for in the config file later on
- if [ -z "$WORKINGSLICES" ]
- then
- WORKINGSLICES="${slice}"
- export WORKINGSLICES
- else
- WORKINGSLICES="${WORKINGSLICES} ${slice}"
- export WORKINGSLICES
- fi
-};
-
-# Function which runs gpart and creates a new slice from free disk space
-run_gpart_free()
-{
- DISK=$1
- SLICENUM=$2
- if [ ! -z "$3" ]
- then
- BMANAGER="$3"
- fi
-
- # Set our sysctl so we can overwrite any geom using drives
- sysctl kern.geom.debugflags=16 >>${LOGOUT} 2>>${LOGOUT}
-
- slice="${DISK}s${SLICENUM}"
- slicenum="${SLICENUM}"
-
- # Working on the first slice, make sure we have MBR setup
- gpart show ${DISK} >/dev/null 2>/dev/null
- if [ "$?" != "0" -a "$SLICENUM" = "1" ] ; then
- echo_log "Initializing disk, no existing MBR setup"
- rc_halt "gpart create -s mbr ${DISK}"
- fi
-
- # Lets get the starting block first
- if [ "${slicenum}" = "1" ]
- then
- startblock="63"
- else
- # Lets figure out where the prior slice ends
- checkslice="`expr ${slicenum} - 1`"
-
- # Get starting block of this slice
- sblk=`gpart show ${DISK} | grep -v ${DISK} | tr -s '\t' ' ' | sed '/^$/d' | grep " ${checkslice} " | cut -d ' ' -f 2`
- blksize=`gpart show ${DISK} | grep -v ${DISK} | tr -s '\t' ' ' | sed '/^$/d' | grep " ${checkslice} " | cut -d ' ' -f 3`
- startblock="`expr ${sblk} + ${blksize}`"
- fi
-
- # No slice after the new slice, lets figure out the free space remaining and use it
- # Get the cyl of this disk
- get_disk_cyl "${DISK}"
- cyl="${VAL}"
-
- # Get the heads of this disk
- get_disk_heads "${DISK}"
- head="${VAL}"
-
- # Get the tracks/sectors of this disk
- get_disk_sectors "${DISK}"
- sec="${VAL}"
-
- # Multiply them all together to get our total blocks
- totalblocks="`expr ${cyl} \* ${head}`"
- totalblocks="`expr ${totalblocks} \* ${sec}`"
-
-
- # Now set the ending block to the total disk block size
- sizeblock="`expr ${totalblocks} - ${startblock}`"
-
- # Install new partition setup
- echo_log "Running gpart on ${DISK}"
- rc_halt "gpart add -b ${startblock} -s ${sizeblock} -t freebsd -i ${slicenum} ${DISK}"
- sleep 2
-
- echo_log "Cleaning up $slice"
- rc_halt "dd if=/dev/zero of=/dev/${slice} count=1024"
-
- sleep 1
-
- if [ "${BMANAGER}" = "bsd" ]
- then
- echo_log "Stamping boot sector on ${DISK}"
- rc_halt "gpart bootcode -b /boot/boot0 ${DISK}"
- fi
-
- slice="${DISK}-${SLICENUM}-mbr"
- # Lets save our slice, so we know what to look for in the config file later on
- if [ -z "$WORKINGSLICES" ]
- then
- WORKINGSLICES="${slice}"
- export WORKINGSLICES
- else
- WORKINGSLICES="${WORKINGSLICES} ${slice}"
- export WORKINGSLICES
- fi
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-extractimage.sh b/PCBSD/pc-sysinstall/backend/functions-extractimage.sh
deleted file mode 100644
index 9868c53..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-extractimage.sh
+++ /dev/null
@@ -1,312 +0,0 @@
-#!/bin/sh
-# Functions which perform the extraction / installation of system to disk
-
-. ${BACKEND}/functions-mountoptical.sh
-
-# Performs the extraction of data to disk from a uzip or tar archive
-start_extract_uzip_tar()
-{
- if [ -z "$INSFILE" ]
- then
- exit_err "ERROR: Called extraction with no install file set!"
- fi
-
- # Check if we have a .count file, and echo it out for a front-end to use in progress bars
- if [ -e "${INSFILE}.count" ]
- then
- echo "INSTALLCOUNT: `cat ${INSFILE}.count`"
- fi
-
- # Check if we are doing an upgrade, and if so use our exclude list
- if [ "${INSTALLMODE}" = "upgrade" ]
- then
- TAROPTS="-X ${PROGDIR}/conf/exclude-from-upgrade"
- else
- TAROPTS=""
- fi
-
- echo_log "pc-sysinstall: Starting Extraction"
-
- case ${PACKAGETYPE} in
- uzip) # Start by mounting the uzip image
- MDDEVICE=`mdconfig -a -t vnode -o readonly -f ${INSFILE}`
- mkdir -p ${FSMNT}.uzip
- mount -r /dev/${MDDEVICE}.uzip ${FSMNT}.uzip
- if [ "$?" != "0" ]
- then
- exit_err "ERROR: Failed mounting the ${INSFILE}"
- fi
- cd ${FSMNT}.uzip
-
- # Copy over all the files now!
- tar cvf - . 2>/dev/null | tar -xpv -C ${FSMNT} ${TAROPTS} -f - 2>&1 | tee -a ${FSMNT}/.tar-extract.log
- if [ "$?" != "0" ]
- then
- cd /
- echo "TAR failure occured:" >>${LOGOUT}
- cat ${FSMNT}/.tar-extract.log | grep "tar:" >>${LOGOUT}
- umount ${FSMNT}.uzip
- mdconfig -d -u ${MDDEVICE}
- exit_err "ERROR: Failed extracting the tar image"
- fi
-
- # All finished, now lets umount and cleanup
- cd /
- umount ${FSMNT}.uzip
- mdconfig -d -u ${MDDEVICE}
- ;;
- tar) tar -xpv -C ${FSMNT} -f ${INSFILE} ${TAROPTS} >&1 2>&1
- if [ "$?" != "0" ]
- then
- exit_err "ERROR: Failed extracting the tar image"
- fi
- ;;
- esac
-
- # Check if this was a FTP download and clean it up now
- if [ "${INSTALLMEDIUM}" = "ftp" ]
- then
- echo_log "Cleaning up downloaded archive"
- rm ${INSFILE}
- rm ${INSFILE}.count >/dev/null 2>/dev/null
- rm ${INSFILE}.md5 >/dev/null 2>/dev/null
- fi
-
- echo_log "pc-sysinstall: Extraction Finished"
-
-};
-
-# Performs the extraction of data to disk from a directory with split files
-start_extract_split()
-{
- if [ -z "${INSDIR}" ]
- then
- exit_err "ERROR: Called extraction with no install directory set!"
- fi
-
- echo_log "pc-sysinstall: Starting Extraction"
-
- # Used by install.sh
- DESTDIR="${FSMNT}"
- export DESTDIR
-
- HERE=`pwd`
- DIRS=`ls -d ${INSDIR}/*|grep -Ev '(uzip|kernels|src)'`
- for dir in ${DIRS}
- do
- cd "${dir}"
- if [ -f "install.sh" ]
- then
- echo "Extracting" `basename ${dir}`
- echo "y" | sh install.sh >/dev/null
- if [ "$?" != "0" ]
- then
- exit_err "ERROR: Failed extracting ${dir}"
- fi
- else
- exit_err "ERROR: ${dir}/install.sh does not exist"
- fi
- done
- cd "${HERE}"
-
- KERNELS=`ls -d ${INSDIR}/*|grep kernels`
- cd "${KERNELS}"
- if [ -f "install.sh" ]
- then
- echo "Extracting" `basename ${KERNELS}`
- echo "y" | sh install.sh generic >/dev/null
- if [ "$?" != "0" ]
- then
- exit_err "ERROR: Failed extracting ${KERNELS}"
- fi
- echo 'kernel="GENERIC"' > "${FSMNT}/boot/loader.conf"
- else
- exit_err "ERROR: ${KERNELS}/install.sh does not exist"
- fi
- cd "${HERE}"
-
- SOURCE=`ls -d ${INSDIR}/*|grep src`
- cd "${SOURCE}"
- if [ -f "install.sh" ]
- then
- echo "Extracting" `basename ${SOURCE}`
- echo "y" | sh install.sh all >/dev/null
- if [ "$?" != "0" ]
- then
- exit_err "ERROR: Failed extracting ${SOURCE}"
- fi
- else
- exit_err "ERROR: ${SOURCE}/install.sh does not exist"
- fi
- cd "${HERE}"
-
- echo_log "pc-sysinstall: Extraction Finished"
-};
-
-# Function which will attempt to fetch the install file before we start
-# the install
-fetch_install_file()
-{
- get_value_from_cfg ftpPath
- if [ -z "$VAL" ]
- then
- exit_err "ERROR: Install medium was set to ftp, but no ftpPath was provided!"
- fi
-
- FTPPATH="${VAL}"
-
- # Check if we have a /usr partition to save the download
- if [ -d "${FSMNT}/usr" ]
- then
- OUTFILE="${FSMNT}/usr/.fetch-${INSFILE}"
- else
- OUTFILE="${FSMNT}/.fetch-${INSFILE}"
- fi
-
- # Do the fetch of the archive now
- fetch_file "${FTPPATH}/${INSFILE}" "${OUTFILE}" "1"
-
- # Check to see if there is a .count file for this install
- fetch_file "${FTPPATH}/${INSFILE}.count" "${OUTFILE}.count" "0"
-
- # Check to see if there is a .md5 file for this install
- fetch_file "${FTPPATH}/${INSFILE}.md5" "${OUTFILE}.md5" "0"
-
- # Done fetching, now reset the INSFILE to our downloaded archived
- INSFILE="${OUTFILE}" ; export INSFILE
-
-};
-
-# Function which does the rsync download from the server specifed in cfg
-start_rsync_copy()
-{
- # Load our rsync config values
- get_value_from_cfg rsyncPath
- if [ -z "${VAL}" ]; then
- exit_err "ERROR: rsyncPath is unset! Please check your config and try again."
- fi
- RSYNCPATH="${VAL}" ; export RSYNCPATH
-
- get_value_from_cfg rsyncHost
- if [ -z "${VAL}" ]; then
- exit_err "ERROR: rsyncHost is unset! Please check your config and try again."
- fi
- RSYNCHOST="${VAL}" ; export RSYNCHOST
-
- get_value_from_cfg rsyncUser
- if [ -z "${VAL}" ]; then
- exit_err "ERROR: rsyncUser is unset! Please check your config and try again."
- fi
- RSYNCUSER="${VAL}" ; export RSYNCUSER
-
- get_value_from_cfg rsyncPort
- if [ -z "${VAL}" ]; then
- exit_err "ERROR: rsyncPort is unset! Please check your config and try again."
- fi
- RSYNCPORT="${VAL}" ; export RSYNCPORT
-
- COUNT="1"
- while
- z=1
- do
- if [ ${COUNT} -gt ${RSYNCTRIES} ]
- then
- exit_err "ERROR: Failed rsync command!"
- break
- fi
-
- rsync -avvzHsR \
- --rsync-path="rsync --fake-super" \
- -e "ssh -p ${RSYNCPORT}" \
- ${RSYNCUSER}@${RSYNCHOST}:${RSYNCPATH}/./ ${FSMNT}
- if [ "$?" != "0" ]
- then
- echo "Rsync failed! Tries: ${COUNT}"
- else
- break
- fi
-
- COUNT="`expr ${COUNT} + 1`"
- done
-
-};
-
-
-# Entrance function, which starts the installation process
-init_extraction()
-{
-
- # Figure out what file we are using to install from via the config
- get_value_from_cfg installFile
-
- if [ ! -z "${VAL}" ]
- then
- INSFILE="${VAL}" ; export INSFILE
- else
- # If no installFile specified, try our defaults
- if [ "$INSTALLTYPE" = "FreeBSD" ]
- then
- case $PACKAGETYPE in
- uzip) INSFILE="${FBSD_UZIP_FILE}" ;;
- tar) INSFILE="${FBSD_TAR_FILE}" ;;
- split)
- INSDIR="${FBSD_BRANCH_DIR}"
-
- # This is to trick opt_mount into not failing
- INSFILE="${INSDIR}"
- ;;
- esac
- else
- case $PACKAGETYPE in
- uzip) INSFILE="${UZIP_FILE}" ;;
- tar) INSFILE="${TAR_FILE}" ;;
- esac
- fi
- export INSFILE
- fi
-
- # Lets start by figuring out what medium we are using
- case ${INSTALLMEDIUM} in
- LiveCD)
- get_value_from_cfg cpdupPaths
- if [ ! -z "${VAL}" ]
- then
- INSFILE="${VAL}" ; export INSFILE
- fi
- oIFS=$IFS
- IFS=","
- for FILE in $INSFILE; do
- echo_log "pc-sysinstall: Running cpdup -vvv -I -o /${FILE} /mnt/${FILE}"
- /usr/local/bin/cpdup -vvv -I -o /${FILE} /mnt/${FILE} >&1 2>&1
- if [ "$?" != "0" ]
- then
- echo "CPDUP failure occured:" >>${LOGOUT}
- exit_err "ERROR: Error occurred during cpdup"
- fi
- done
- oIFS=$IFS
- IFS="
-"
- return
- ;;
- dvd|usb) # Lets start by mounting the disk
- opt_mount
- if [ ! -z "${INSDIR}" ]
- then
- INSDIR="${CDMNT}/${INSDIR}" ; export INSDIR
- start_extract_split
-
- else
- INSFILE="${CDMNT}/${INSFILE}" ; export INSFILE
- start_extract_uzip_tar
- fi
- ;;
- ftp) fetch_install_file
- start_extract_uzip_tar
- ;;
- rsync) start_rsync_copy
- ;;
- *) exit_err "ERROR: Unknown install medium" ;;
- esac
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-installcomponents.sh b/PCBSD/pc-sysinstall/backend/functions-installcomponents.sh
deleted file mode 100644
index cb3b0a6..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-installcomponents.sh
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/bin/sh
-# Functions which check and load any optional modules specified in the config
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-copy_component()
-{
- COMPONENT="$1"
- FAILED="0"
- CFILES=""
-
- # Check the type, and set the components subdir properly
- TYPE="`grep 'type:' ${COMPDIR}/${COMPONENT}/component.cfg | cut -d ' ' -f 2`"
- if [ "${TYPE}" = "PBI" ]
- then
- SUBDIR="PBI"
- else
- SUBDIR="components"
- fi
-
- # Lets start by downloading / copying the files this component needs
- while read line
- do
- CFILE="`echo $line | cut -d ':' -f 1`"
- CFILEMD5="`echo $line | cut -d ':' -f 2`"
- CFILE2MD5="`echo $line | cut -d ':' -f 3`"
-
-
- case ${INSTALLMEDIUM} in
- dvd|usb) # On both dvd / usb, we can just copy the file
- cp ${CDMNT}/${COMPFILEDIR}/${SUBDIR}/${CFILE} \
- ${FSMNT}/${COMPTMPDIR} >>${LOGOUT} 2>>${LOGOUT}
- RESULT="$?"
- ;;
- ftp) get_value_from_cfg ftpPath
- if [ -z "$VAL" ]
- then
- exit_err "ERROR: Install medium was set to ftp, but no ftpPath was provided!"
- fi
- FTPPATH="${VAL}"
-
- fetch_file "${FTPPATH}/${COMPFILEDIR}/${SUBDIR}/${CFILE}" "${FSMNT}/${COMPTMPDIR}/${CFILE}" "0"
- RESULT="$?"
- ;;
- esac
-
- if [ "${RESULT}" != "0" ]
- then
- echo_log "WARNING: Failed to copy ${CFILE}"
- FAILED="1"
- else
- # Now lets check the MD5 to confirm the file is valid
- CHECKMD5=`md5 -q ${FSMNT}/${COMPTMPDIR}/${CFILE}`
- if [ "${CHECKMD5}" != "${CFILEMD5}" -a "${CHECKMD5}" != "${CFILE2MD5}" ]
- then
- echo_log "WARNING: ${CFILE} failed md5 checksum"
- FAILED="1"
- else
- if [ -z "${CFILES}" ]
- then
- CFILES="${CFILE}"
- else
- CFILES="${CFILES},${CFILE}"
- fi
- fi
- fi
-
-
- done < ${COMPDIR}/${COMPONENT}/distfiles
-
- if [ "${FAILED}" = "0" ]
- then
- # Now install the component
- run_component_install ${COMPONENT} ${CFILES}
- fi
-
-};
-
-run_component_install()
-{
- COMPONENT="$1"
- CFILES="$1"
-
- # Lets install this component now
- # Start by making a wrapper script which sets the variables
- # for the component to use
- echo "#!/bin/sh
-COMPTMPDIR=\"${COMPTMPDIR}\"
-export COMPTMPDIR
-CFILE=\"${CFILE}\"
-export CFILE
-
-sh ${COMPTMPDIR}/install.sh
-
-" >${FSMNT}/.componentwrapper.sh
- chmod 755 ${FSMNT}/.componentwrapper.sh
-
- # Copy over the install script for this component
- cp ${COMPDIR}/${COMPONENT}/install.sh ${FSMNT}/${COMPTMPDIR}/
-
- echo_log "INSTALL COMPONENT: ${i}"
- chroot ${FSMNT} /.componentwrapper.sh >>${LOGOUT} 2>>${LOGOUT}
- rm ${FSMNT}/.componentwrapper.sh
-
-
-};
-
-# Check for any modules specified, and begin loading them
-install_components()
-{
- # First, lets check and see if we even have any optional modules
- get_value_from_cfg installComponents
- if [ ! -z "${VAL}" ]
- then
- # Lets start by cleaning up the string and getting it ready to parse
- strip_white_space ${VAL}
- COMPONENTS=`echo ${VAL} | sed -e "s|,| |g"`
- for i in $COMPONENTS
- do
- if [ ! -e "${COMPDIR}/${i}/install.sh" -o ! -e "${COMPDIR}/${i}/distfiles" ]
- then
- echo_log "WARNING: Component ${i} doesn't seem to exist"
- else
-
- # Make the tmpdir on the disk
- mkdir -p ${FSMNT}/${COMPTMPDIR} >>${LOGOUT} 2>>${LOGOUT}
-
- # Start by grabbing the component files
- copy_component ${i}
-
- # Remove the tmpdir now
- rm -rf ${FSMNT}/${COMPTMPDIR} >>${LOGOUT} 2>>${LOGOUT}
-
- fi
- done
-
- fi
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-localize.sh b/PCBSD/pc-sysinstall/backend/functions-localize.sh
deleted file mode 100644
index 02dfd61..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-localize.sh
+++ /dev/null
@@ -1,449 +0,0 @@
-#!/bin/sh
-# Functions which runs commands on the system
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-
-# Function which localizes a FreeBSD install
-localize_freebsd()
-{
- sed -i.bak "s/lang=en_US/lang=${LOCALE}/g" ${FSMNT}/etc/login.conf
- rm ${FSMNT}/etc/login.conf.bak
-};
-
-
-# Function which localizes a PC-BSD install
-localize_pcbsd()
-{
- #Change the skel files
- ##########################################################################
- sed -i.bak "s/Country=us/Country=${COUNTRY}/g" ${FSMNT}/usr/share/skel/.kde4/share/config/kdeglobals
- sed -i.bak "s/Country=us/Country=${COUNTRY}/g" ${FSMNT}/root/.kde4/share/config/kdeglobals
- sed -i.bak "s/Language=en_US/Language=${SETLANG}:${LOCALE}/g" ${FSMNT}/usr/share/skel/.kde4/share/config/kdeglobals
- sed -i.bak "s/Language=en_US/Language=${SETLANG}:${LOCALE}/g" ${FSMNT}/root/.kde4/share/config/kdeglobals
-
- #Change KDM Langs
- ##########################################################################
- sed -i.bak "s/Language=en_US/Language=${LOCALE}.UTF-8/g" ${FSMNT}/usr/local/kde4/share/config/kdm/kdmrc
-
- # Check if we have a localized splash screen and copy it
- if [ -e "${FSMNT}/usr/PCBSD/splash-screens/loading-screen-${SETLANG}.pcx" ]
- then
- cp ${FSMNT}/usr/PCBSD/splash-screens/loading-screen-${SETLANG}.pcx ${FSMNT}/boot/loading-screen.pcx
- fi
-
-};
-
-localize_x_keyboard()
-{
- KEYMOD="$1"
- KEYLAY="$2"
- KEYVAR="$3"
- COUNTRY="$4"
- SETXKBMAP=""
-
- if [ "${COUNTRY}" = "NONE" ] || [ "${COUNTRY}" = "us" ];
- then
- #In this case we don't need any additional language
- COUNTRY=""
- else
- COUNTRY=",${COUNTRY}"
- fi
-
- if [ "${KEYMOD}" != "NONE" ]
- then
- SETXKBMAP="-model ${KEYMOD}"
- KXMODEL="${KEYMOD}"
- else
- KXMODEL="pc104"
- fi
-
- if [ "${KEYLAY}" != "NONE" ]
- then
- localize_key_layout "$KEYLAY"
- SETXKBMAP="${SETXKBMAP} -layout ${KEYLAY}"
- KXLAYOUT="${KEYLAY}"
- else
- KXLAYOUT="us"
- fi
-
- if [ "${KEYVAR}" != "NONE" ]
- then
- SETXKBMAP="${SETXKBMAP} -variant ${KEYVAR}"
- KXVAR="(${KEYVAR})"
- else
- KXVAR=""
- fi
-
- # Setup .xprofile with our setxkbmap call now
- if [ ! -z "${SETXKBMAP}" ]
- then
- if [ ! -e "${FSMNT}/usr/share/skel/.xprofile" ]
- then
- echo "#!/bin/sh" >${FSMNT}/usr/share/skel/.xprofile
- fi
-
- # Save the keyboard layout for user / root X logins
- echo "setxkbmap ${SETXKBMAP}" >>${FSMNT}/usr/share/skel/.xprofile
- chmod 755 ${FSMNT}/usr/share/skel/.xprofile
- cp ${FSMNT}/usr/share/skel/.xprofile ${FSMNT}/root/.xprofile
-
- # Save it for KDM
- echo "setxkbmap ${SETXKBMAP}" >>${FSMNT}/usr/local/kde4/share/config/kdm/Xsetup
- fi
-
-
- # Create the kxkbrc configuration using these options
- echo "[Layout]
-DisplayNames=${KXLAYOUT}${COUNTRY}
-IndicatorOnly=false
-LayoutList=${KXLAYOUT}${KXVAR}${COUNTRY}
-Model=${KXMODEL}
-Options=
-ResetOldOptions=true
-ShowFlag=true
-ShowSingle=false
-SwitchMode=WinClass
-Use=true " >${FSMNT}/usr/share/skel/.kde4/share/config/kxkbrc
-
-};
-
-localize_key_layout()
-{
-
- KEYLAYOUT="$1"
-
- # Set the keylayout in rc.conf
- case ${KEYLAYOUT} in
- am) KEYLAYOUT_CONSOLE="hy.armscii-8" ;;
- ch) KEYLAYOUT_CONSOLE="swissgerman.iso" ;;
- cz) KEYLAYOUT_CONSOLE="cz.iso2" ;;
- de) KEYLAYOUT_CONSOLE="german.iso" ;;
- dk) KEYLAYOUT_CONSOLE="danish.iso" ;;
- ee) KEYLAYOUT_CONSOLE="estonian.iso" ;;
- es) KEYLAYOUT_CONSOLE="spanish.iso" ;;
- fi) KEYLAYOUT_CONSOLE="finnish.iso" ;;
- is) KEYLAYOUT_CONSOLE="icelandic.iso" ;;
- jp) KEYLAYOUT_CONSOLE="jp.106" ;;
- nl) KEYLAYOUT_CONSOLE="dutch.iso.acc" ;;
- no) KEYLAYOUT_CONSOLE="norwegian.iso" ;;
- pl) KEYLAYOUT_CONSOLE="pl_PL.ISO8859-2" ;;
- ru) KEYLAYOUT_CONSOLE="ru.koi8-r" ;;
- sk) KEYLAYOUT_CONSOLE="sk.iso2" ;;
- se) KEYLAYOUT_CONSOLE="swedish.iso" ;;
- tr) KEYLAYOUT_CONSOLE="tr.iso9.q" ;;
- gb) KEYLAYOUT_CONSOLE="uk.iso" ;;
- *) if [ ! -z "${KEYLAYOUT}" ]
- then
- KEYLAYOUT_CONSOLE="${KEYLAYOUT}.iso"
- fi
- ;;
- esac
-
- if [ ! -z "${KEYLAYOUT_CONSOLE}" ]
- then
- echo "keymap=\"${KEYLAYOUT_CONSOLE}\"" >>${FSMNT}/etc/rc.conf
- fi
-
-};
-
-# Function which prunes other l10n files from the KDE install
-localize_prune_langs()
-{
- get_value_from_cfg localizeLang
- KEEPLANG="$VAL"
- if [ -z "$KEEPLANG" ] ; then
- KEEPLANG="en"
- fi
- export KEEPLANG
-
- echo_log "Pruning other l10n files, keeping ${KEEPLANG}"
-
- # Create the script to do uninstalls
- echo '#!/bin/sh
-
- for i in `pkg_info | grep "kde-l10n" | cut -d " " -f 1`
- do
- echo "$i" | grep "${KEEPLANG}-kde"
- if [ "$?" != "0" ] ; then
- pkg_delete ${i}
- fi
- done
- ' > ${FSMNT}/.pruneLangs.sh
-
- chmod 755 ${FSMNT}/.pruneLangs.sh
- chroot ${FSMNT} /.pruneLangs.sh >/dev/null 2>/dev/null
- rm ${FSMNT}/.pruneLangs.sh
-
-};
-
-# Function which sets COUNTRY SETLANG and LOCALE based upon $1
-localize_get_codes()
-{
- TARGETLANG="${1}"
- # Setup the presets for the specific lang
- case $TARGETLANG in
- af) COUNTRY="C"
- SETLANG="af"
- LOCALE="af_ZA"
- ;;
- ar) COUNTRY="C"
- SETLANG="ar"
- LOCALE="en_US"
- ;;
- az) COUNTRY="C"
- SETLANG="az"
- LOCALE="en_US"
- ;;
- ca) COUNTRY="es"
- SETLANG="es:ca"
- LOCALE="ca_ES"
- ;;
- be) COUNTRY="be"
- SETLANG="be"
- LOCALE="be_BY"
- ;;
- bn) COUNTRY="bn"
- SETLANG="bn"
- LOCALE="en_US"
- ;;
- bg) COUNTRY="bg"
- SETLANG="bg"
- LOCALE="bg_BG"
- ;;
- cs) COUNTRY="cz"
- SETLANG="cs"
- LOCALE="cs_CZ"
- ;;
- da) COUNTRY="dk"
- SETLANG="da"
- LOCALE="da_DK"
- ;;
- de) COUNTRY="de"
- SETLANG="de"
- LOCALE="de_DE"
- ;;
- en_GB) COUNTRY="gb"
- SETLANG="en_GB:cy"
- LOCALE="en_GB"
- ;;
- el) COUNTRY="gr"
- SETLANG="el:gr"
- LOCALE="el_GR"
- ;;
- es) COUNTRY="es"
- SETLANG="es"
- LOCALE="es_ES"
- ;;
- es_LA) COUNTRY="us"
- SETLANG="es:en_US"
- LOCALE="es_ES"
- ;;
- et) COUNTRY="ee"
- SETLANG="et"
- LOCALE="et_EE"
- ;;
- fr) COUNTRY="fr"
- SETLANG="fr"
- LOCALE="fr_FR"
- ;;
- he) COUNTRY="il"
- SETLANG="he:ar"
- LOCALE="he_IL"
- ;;
- hr) COUNTRY="hr"
- SETLANG="hr"
- LOCALE="hr_HR"
- ;;
- hu) COUNTRY="hu"
- SETLANG="hu"
- LOCALE="hu_HU"
- ;;
- it) COUNTRY="it"
- SETLANG="it"
- LOCALE="it_IT"
- ;;
- ja) COUNTRY="jp"
- SETLANG="ja"
- LOCALE="ja_JP"
- ;;
- ko) COUNTRY="kr"
- SETLANG="ko"
- LOCALE="ko_KR"
- ;;
- nl) COUNTRY="nl"
- SETLANG="nl"
- LOCALE="nl_NL"
- ;;
- nn) COUNTRY="no"
- SETLANG="nn"
- LOCALE="en_US"
- ;;
- pa) COUNTRY="pa"
- SETLANG="pa"
- LOCALE="en_US"
- ;;
- pl) COUNTRY="pl"
- SETLANG="pl"
- LOCALE="pl_PL"
- ;;
- pt) COUNTRY="pt"
- SETLANG="pt"
- LOCALE="pt_PT"
- ;;
- pt_BR) COUNTRY="br"
- SETLANG="pt_BR"
- LOCALE="pt_BR"
- ;;
- ru) COUNTRY="ru"
- SETLANG="ru"
- LOCALE="ru_RU"
- ;;
- sl) COUNTRY="si"
- SETLANG="sl"
- LOCALE="sl_SI"
- ;;
- sk) COUNTRY="sk"
- SETLANG="sk"
- LOCALE="sk_SK"
- ;;
- sv) COUNTRY="se"
- SETLANG="sv"
- LOCALE="sv_SE"
- ;;
- uk) COUNTRY="ua"
- SETLANG="uk"
- LOCALE="uk_UA"
- ;;
- vi) COUNTRY="vn"
- SETLANG="vi"
- LOCALE="en_US"
- ;;
- zh_CN) COUNTRY="cn"
- SETLANG="zh_CN"
- LOCALE="zh_CN"
- ;;
- zh_TW) COUNTRY="tw"
- SETLANG="zh_TW"
- LOCALE="zh_TW"
- ;;
- *) COUNTRY="C"
- SETLANG="${TARGETLANG}"
- LOCALE="en_US"
- ;;
- esac
-
- export COUNTRY SETLANG LOCALE
-
-};
-
-# Function which sets the timezone on the system
-set_timezone()
-{
- TZONE="$1"
- cp ${FSMNT}/usr/share/zoneinfo/${TZONE} ${FSMNT}/etc/localtime
-};
-
-# Function which enables / disables NTP
-set_ntp()
-{
- ENABLED="$1"
- if [ "$ENABLED" = "yes" -o "${ENABLED}" = "YES" ]
- then
- cat ${FSMNT}/etc/rc.conf 2>/dev/null | grep 'ntpd_enable="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- echo 'ntpd_enable="YES"' >>${FSMNT}/etc/rc.conf
- echo 'ntpd_sync_on_start="YES"' >>${FSMNT}/etc/rc.conf
- fi
- else
- cat ${FSMNT}/etc/rc.conf 2>/dev/null | grep 'ntpd_enable="YES"' >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- sed -i.bak 's|ntpd_enable="YES"||g' ${FSMNT}/etc/rc.conf
- fi
- fi
-};
-
-# Starts checking for localization directives
-run_localize()
-{
- KEYLAYOUT="NONE"
- KEYMOD="NONE"
- KEYVAR="NONE"
- LANGUAGE="NONE"
-
- while read line
- do
- # Check if we need to do any localization
- echo $line | grep "^localizeLang=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Set our country / lang / locale variables
- get_value_from_string "$line"
- localize_get_codes ${VAL}
-
- get_value_from_string "$line"
- # If we are doing PC-BSD install, localize it as well as FreeBSD base
- if [ "${INSTALLTYPE}" != "FreeBSD" ]
- then
- localize_pcbsd "$VAL"
- LANGUAGE="$VAL"
- fi
- localize_freebsd "$VAL"
- fi
-
- # Check if we need to do any keylayouts
- echo $line | grep "^localizeKeyLayout=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- KEYLAYOUT="$VAL"
- fi
-
- # Check if we need to do any key models
- echo $line | grep "^localizeKeyModel=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- KEYMOD="$VAL"
- fi
-
- # Check if we need to do any key variant
- echo $line | grep "^localizeKeyVariant=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- KEYVAR="$VAL"
- fi
-
-
- # Check if we need to set a timezone
- echo $line | grep "^timeZone=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- set_timezone "$VAL"
- fi
-
- # Check if we need to set a timezone
- echo $line | grep "^enableNTP=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- get_value_from_string "$line"
- set_ntp "$VAL"
- fi
- done <${CFGF}
-
- if [ "${INSTALLTYPE}" != "FreeBSD" ] ; then
- # Do our X keyboard localization
- localize_x_keyboard "${KEYMOD}" "${KEYLAYOUT}" "${KEYVAR}" "${COUNTRY}"
- fi
-
- # Check if we want to prunt any other KDE lang files to save some disk space
- get_value_from_cfg localizePrune
- if [ "${VAL}" = "yes" -o "${VAL}" = "YES" ] ; then
- localize_prune_langs
- fi
-
- # Update the login.conf db, even if we didn't localize, its a good idea to make sure its up2date
- run_chroot_cmd "/usr/bin/cap_mkdb /etc/login.conf" >/dev/null 2>/dev/null
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-mountdisk.sh b/PCBSD/pc-sysinstall/backend/functions-mountdisk.sh
deleted file mode 100644
index 112e299..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-mountdisk.sh
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/bin/sh
-# Functions related mounting the newly formatted disk partitions
-
-# Mounts all the specified partition to the mount-point
-mount_partition()
-{
- if [ -z "${1}" -o -z "${2}" -o -z "${3}" ]
- then
- exit_err "ERROR: Missing arguments for mount_partition"
- fi
-
- PART="${1}"
- PARTFS="${2}"
- MNTPOINT="${3}"
- MNTFLAGS="${4}"
-
- # Setup the MNTOPTS
- if [ -z "${MNTOPTS}" ]
- then
- MNTFLAGS="-o rw"
- else
- MNTFLAGS="-o rw,${MNTFLAGS}"
- fi
-
-
- #We are on ZFS, lets setup this mount-point
- if [ "${PARTFS}" = "ZFS" ]
- then
- ZPOOLNAME=$(get_zpool_name "${PART}")
-
- # Check if we have multiple zfs mounts specified
- for ZMNT in `echo ${MNTPOINT} | sed 's|,| |g'`
- do
- # First make sure we create the mount point
- if [ ! -d "${FSMNT}${ZMNT}" ] ; then
- mkdir -p ${FSMNT}${ZMNT} >>${LOGOUT} 2>>${LOGOUT}
- fi
-
- if [ "${ZMNT}" = "/" ] ; then
- ZNAME=""
- else
- ZNAME="${ZMNT}"
- echo_log "zfs create -p ${ZPOOLNAME}${ZNAME}"
- rc_halt "zfs create -p ${ZPOOLNAME}${ZNAME}"
- fi
- sleep 2
- rc_halt "zfs set mountpoint=${FSMNT}${ZNAME} ${ZPOOLNAME}${ZNAME}"
-
- # Disable atime for this zfs partition, speed increase
- rc_nohalt "zfs set atime=off ${ZPOOLNAME}${ZNAME}"
- done
-
- else
- # If we are not on ZFS, lets do the mount now
- # First make sure we create the mount point
- if [ ! -d "${FSMNT}${MNTPOINT}" ]
- then
- mkdir -p ${FSMNT}${MNTPOINT} >>${LOGOUT} 2>>${LOGOUT}
- fi
-
- echo_log "mount ${MNTFLAGS} /dev/${PART} -> ${FSMNT}${MNTPOINT}"
- sleep 2
- rc_halt "mount ${MNTFLAGS} /dev/${PART} ${FSMNT}${MNTPOINT}"
- fi
-
-};
-
-# Mounts all the new file systems to prepare for installation
-mount_all_filesystems()
-{
- # Make sure our mount point exists
- mkdir -p ${FSMNT} >/dev/null 2>/dev/null
-
- # First lets find and mount the / partition
- #########################################################
- for PART in `ls ${PARTDIR}`
- do
- if [ ! -e "/dev/${PART}" ]
- then
- exit_err "ERROR: The partition ${PART} does not exist. Failure in bsdlabel?"
- fi
-
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
-
- if [ "${PARTENC}" = "ON" ]
- then
- EXT=".eli"
- else
- EXT=""
- fi
-
- # Check for root partition for mounting, including ZFS "/,/usr" type
- echo "$PARTMNT" | grep "/," >/dev/null
- if [ "$?" = "0" -o "$PARTMNT" = "/" ]
- then
- case ${PARTFS} in
- UFS) mount_partition ${PART}${EXT} ${PARTFS} ${PARTMNT} "noatime"
- ;;
- UFS+S) mount_partition ${PART}${EXT} ${PARTFS} ${PARTMNT} "noatime"
- ;;
- UFS+J) mount_partition ${PART}${EXT}.journal ${PARTFS} ${PARTMNT} "async,noatime"
- ;;
- ZFS) mount_partition ${PART} ${PARTFS} ${PARTMNT}
- ;;
- *) exit_err "ERROR: Got unknown file-system type $PARTFS" ;;
- esac
-
- fi
-
- done
-
- # Now that we've mounted "/" lets do any other remaining mount-points
- ##################################################################
- for PART in `ls ${PARTDIR}`
- do
- if [ ! -e "/dev/${PART}" ]
- then
- exit_err "ERROR: The partition ${PART} does not exist. Failure in bsdlabel?"
- fi
-
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
-
- if [ "${PARTENC}" = "ON" ]
- then
- EXT=".eli"
- else
- EXT=""
- fi
-
- # Check if we've found "/" again, don't need to mount it twice
- echo "$PARTMNT" | grep "/," >/dev/null
- if [ "$?" != "0" -a "$PARTMNT" != "/" ]
- then
- case ${PARTFS} in
- UFS) mount_partition ${PART}${EXT} ${PARTFS} ${PARTMNT} "noatime"
- ;;
- UFS+S) mount_partition ${PART}${EXT} ${PARTFS} ${PARTMNT} "noatime"
- ;;
- UFS+J) mount_partition ${PART}${EXT}.journal ${PARTFS} ${PARTMNT} "async,noatime"
- ;;
- ZFS) mount_partition ${PART} ${PARTFS} ${PARTMNT}
- ;;
- SWAP) # Lets enable this swap now
- if [ "$PARTENC" = "ON" ]
- then
- echo_log "Enabling encrypted swap on /dev/${PART}"
- rc_halt "geli onetime -d -e 3des ${PART}"
- sleep 5
- rc_halt "swapon /dev/${PART}.eli"
- else
- echo_log "swapon ${PART}"
- sleep 5
- rc_halt "swapon /dev/${PART}"
- fi
- ;;
- *) exit_err "ERROR: Got unknown file-system type $PARTFS" ;;
- esac
- fi
- done
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-mountoptical.sh b/PCBSD/pc-sysinstall/backend/functions-mountoptical.sh
deleted file mode 100644
index c4c324d..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-mountoptical.sh
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/bin/sh
-# Functions which perform mounting / unmounting and switching of optical / usb media
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-# Displays an optical failure message
-opt_fail()
-{
- # If we got here, we must not have a DVD/USB we can find :(
- get_value_from_cfg installInteractive
- if [ "${VAL}" = "yes" ]
- then
- # We are running interactive, and didn't find a DVD, prompt user again
- echo_log "DISK ERROR: Unable to find installation disk!"
- echo_log "Please insert the installation disk and press enter."
- read tmp
- else
- exit_err "ERROR: Unable to locate installation DVD/USB"
- fi
-};
-
-# Performs the extraction of data to disk
-opt_mount()
-{
- FOUND="0"
-
- # Ensure we have a directory where its supposed to be
- if [ ! -d "${CDMNT}" ]
- then
- mkdir -p ${CDMNT}
- fi
-
-
- # Start by checking if we already have a cd mounted at CDMNT
- mount | grep "${CDMNT} " >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- if [ -e "${CDMNT}/${INSFILE}" ]
- then
- echo "MOUNTED" >${TMPDIR}/cdmnt
- echo_log "FOUND DVD: MOUNTED"
- FOUND="1"
- return
- fi
-
- # failed to find optical disk
- opt_fail
- return
- fi
-
-# Setup our loop to search for installation media
- while
- z=1
- do
-
- # Loop though and look for an installation disk
- for i in `ls -1 /dev/acd* /dev/cd* /dev/scd* /dev/rscd* 2>/dev/null`
- do
- # Find the CD Device
- /sbin/mount_cd9660 $i ${CDMNT}
-
- # Check the package type to see if we have our install data
- if [ -e "${CDMNT}/${INSFILE}" ]
- then
- echo "${i}" >${TMPDIR}/cdmnt
- echo_log "FOUND DVD: ${i}"
- FOUND="1"
- break
- fi
- /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
- done
-
- # If no DVD found, try USB
- if [ "$FOUND" != "1" ]
- then
- # Loop though and look for an installation disk
- for i in `ls -1 /dev/da* 2>/dev/null`
- do
- # Check if we can mount this device UFS
- /sbin/mount -r $i ${CDMNT}
-
- # Check the package type to see if we have our install data
- if [ -e "${CDMNT}/${INSFILE}" ]
- then
- echo "${i}" >${TMPDIR}/cdmnt
- echo_log "FOUND USB: ${i}"
- FOUND="1"
- break
- fi
- /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
-
- # Also check if it is a FAT mount
- /sbin/mount -r -t msdosfs $i ${CDMNT}
-
- # Check the package type to see if we have our install data
- if [ -e "${CDMNT}/${INSFILE}" ]
- then
- echo "${i}" >${TMPDIR}/cdmnt
- echo_log "FOUND USB: ${i}"
- FOUND="1"
- break
- fi
- /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
- done
- fi # End of USB Check
-
-
- if [ "$FOUND" = "1" ]
- then
- break
- fi
-
- # Failed to find a disk, take action now
- opt_fail
-
- done
-
-};
-
-# Function to unmount optical media
-opt_umount()
-{
- /sbin/umount ${CDMNT} >/dev/null 2>/dev/null
-};
-
diff --git a/PCBSD/pc-sysinstall/backend/functions-networking.sh b/PCBSD/pc-sysinstall/backend/functions-networking.sh
deleted file mode 100644
index eca2321..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-networking.sh
+++ /dev/null
@@ -1,330 +0,0 @@
-#!/bin/sh
-# Functions which perform our networking setup
-
-# Function which creates a kde4 .desktop file for the PC-BSD net tray
-create_desktop_nettray()
-{
- NIC="${1}"
- echo "#!/usr/bin/env xdg-open
-[Desktop Entry]
-Exec=/usr/local/kde4/bin/pc-nettray ${NIC}
-Icon=network
-StartupNotify=false
-Type=Application" > ${FSMNT}/usr/share/skel/.kde4/Autostart/tray-${NIC}.desktop
- chmod 744 ${FSMNT}/usr/share/skel/.kde4/Autostart/tray-${NIC}.desktop
-
-};
-
-# Function which checks is a nic is wifi or not
-check_is_wifi()
-{
- NIC="$1"
- ifconfig ${NIC} | grep "802.11" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- return 0
- else
- return 1
- fi
-};
-
-# Function to get the first available wired nic, used for lagg0 setup
-get_first_wired_nic()
-{
- rm ${TMPDIR}/.niclist >/dev/null 2>/dev/null
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- if [ -e "${TMPDIR}/.niclist" ]
- then
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- check_is_wifi ${NIC}
- if [ "$?" != "0" ]
- then
- VAL="${NIC}" ; export VAL
- return
- fi
- done < ${TMPDIR}/.niclist
- fi
-
- VAL="" ; export VAL
- return
-};
-
-# Function which simply enables plain dhcp on all detected nics, not fancy lagg interface
-enable_plain_dhcp_all()
-{
- rm ${TMPDIR}/.niclist >/dev/null 2>/dev/null
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- if [ -e "${TMPDIR}/.niclist" ]
- then
- echo "# Auto-Enabled NICs from pc-sysinstall" >>${FSMNT}/etc/rc.conf
- WLANCOUNT="0"
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- DESC="`echo $line | cut -d ':' -f 2`"
- echo_log "Setting $NIC to DHCP on the system."
- check_is_wifi ${NIC}
- if [ "$?" = "0" ]
- then
- # We have a wifi device, setup a wlan* entry for it
- WLAN="wlan${WLANCOUNT}"
- echo "wlans_${NIC}=\"${WLAN}\"" >>${FSMNT}/etc/rc.conf
- echo "ifconfig_${WLAN}=\"DHCP\"" >>${FSMNT}/etc/rc.conf
- CNIC="${WLAN}"
- WLANCOUNT="`expr ${WLANCOUNT} + 1`"
- else
- echo "ifconfig_${NIC}=\"DHCP\"" >>${FSMNT}/etc/rc.conf
- CNIC="${NIC}"
- fi
-
- done < ${TMPDIR}/.niclist
- fi
-};
-
-# Function which enables fancy lagg dhcp on specified wifi
-enable_lagg_dhcp()
-{
- WIFINIC="$1"
-
- # Get the first wired nic
- get_first_wired_nic
- WIRENIC=$VAL
- LAGGPORT="laggport ${WIFINIC}"
-
- echo "# Auto-Enabled NICs from pc-sysinstall" >>${FSMNT}/etc/rc.conf
- if [ ! -z "$WIRENIC" ]
- then
- echo "ifconfig_${WIRENIC}=\"up\"" >> ${FSMNT}/etc/rc.conf
- echo "ifconfig_${WIFINIC}=\"\`ifconfig ${WIRENIC} ether\`\"" >> ${FSMNT}/etc/rc.conf
- echo "ifconfig_${WIFINIC}=\"ether \${ifconfig_${WIFINIC}##*ether }\"" >> ${FSMNT}/etc/rc.conf
- LAGGPORT="laggport ${WIRENIC} ${LAGGPORT}"
- fi
-
- echo "wlans_${WIFINIC}=\"wlan0\"" >> ${FSMNT}/etc/rc.conf
- echo "cloned_interfaces=\"lagg0\"" >> ${FSMNT}/etc/rc.conf
- echo "ifconfig_lagg0=\"laggproto failover ${LAGGPORT} DHCP\"" >> ${FSMNT}/etc/rc.conf
-
-};
-
-# Function which detects available nics, and runs them to DHCP on the
-save_auto_dhcp()
-{
- rm ${TMPDIR}/.niclist >/dev/null 2>/dev/null
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- if [ -e "${TMPDIR}/.niclist" ]
- then
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- DESC="`echo $line | cut -d ':' -f 2`"
- check_is_wifi "${NIC}"
- if [ "$?" = "0" ]
- then
- # We have a wifi device, lets do fancy lagg interface
- enable_lagg_dhcp "${NIC}"
- return
- fi
-
- done < ${TMPDIR}/.niclist
- fi
-
- # Got here, looks like no wifi, so lets simply enable plain-ole-dhcp
- enable_plain_dhcp_all
-
-};
-
-
-# Function which saves a manual nic setup to the installed system
-save_manual_nic()
-{
- # Get the target nic
- NIC="$1"
-
- get_value_from_cfg netSaveIP
- NETIP="${VAL}"
-
- if [ "$NETIP" = "DHCP" ]
- then
- echo_log "Setting $NIC to DHCP on the system."
- echo "ifconfig_${NIC}=\"DHCP\"" >>${FSMNT}/etc/rc.conf
- return 0
- fi
-
- # If we get here, we have a manual setup, lets do so now
-
- # Set the manual IP
- IFARGS="inet ${NETIP}"
-
- # Check if we have a netmask to set
- get_value_from_cfg netSaveMask
- NETMASK="${VAL}"
- if [ ! -z "${NETMASK}" ]
- then
- IFARGS="${IFARGS} netmask ${NETMASK}"
- fi
-
-
- echo "# Auto-Enabled NICs from pc-sysinstall" >>${FSMNT}/etc/rc.conf
- echo "ifconfig_${NIC}=\"${IFARGS}\"" >>${FSMNT}/etc/rc.conf
-
- # Check if we have a default router to set
- get_value_from_cfg netSaveDefaultRouter
- NETROUTE="${VAL}"
- if [ ! -z "${NETROUTE}" ]
- then
- echo "defaultrouter=\"${NETROUTE}\"" >>${FSMNT}/etc/rc.conf
- fi
-
- # Check if we have a nameserver to enable
- get_value_from_cfg netSaveNameServer
- NAMESERVER="${VAL}"
- if [ ! -z "${NAMESERVER}" ]
- then
- echo "nameserver ${NAMESERVER}" >${FSMNT}/etc/resolv.conf
- fi
-
-};
-
-# Function which determines if a nic is active / up
-is_nic_active()
-{
- ifconfig ${1} | grep "status: active" >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- return 0
- else
- return 1
- fi
-};
-
-
-# Function which detects available nics, and runs DHCP on them until
-# a success is found
-enable_auto_dhcp()
-{
- # start by getting a list of nics on this system
- ${QUERYDIR}/detect-nics.sh > ${TMPDIR}/.niclist
- while read line
- do
- NIC="`echo $line | cut -d ':' -f 1`"
- DESC="`echo $line | cut -d ':' -f 2`"
-
- is_nic_active "${NIC}"
- if [ "$?" = "0" ] ; then
- echo_log "Trying DHCP on $NIC $DESC"
- dhclient ${NIC} >/dev/null 2>/dev/null
- if [ "$?" = "0" ] ; then
- # Got a valid DHCP IP, we can return now
- WRKNIC="$NIC" ; export WRKNIC
- return 0
- fi
- fi
- done < ${TMPDIR}/.niclist
-
-};
-
-# Get the mac address of a target NIC
-get_nic_mac() {
- FOUNDMAC="`ifconfig ${1} | grep 'ether' | tr -d '\t' | cut -d ' ' -f 2`"
- export FOUNDMAC
-}
-
-# Function which performs the manual setup of a target nic in the cfg
-enable_manual_nic()
-{
- # Get the target nic
- NIC="$1"
-
- # Check that this NIC exists
- rc_halt "ifconfig ${NIC}"
-
- get_value_from_cfg netIP
- NETIP="${VAL}"
-
- if [ "$NETIP" = "DHCP" ]
- then
- echo_log "Enabling DHCP on $NIC"
- rc_halt "dhclient ${NIC}"
- return 0
- fi
-
- # If we get here, we have a manual setup, lets do so now
-
- # Set the manual IP
- rc_halt "ifconfig ${NIC} ${NETIP}"
-
- # Check if we have a netmask to set
- get_value_from_cfg netMask
- NETMASK="${VAL}"
- if [ ! -z "${NETMASK}" ]
- then
- rc_halt "ifconfig ${NIC} netmask ${NETMASK}"
- fi
-
- # Check if we have a default router to set
- get_value_from_cfg netDefaultRouter
- NETROUTE="${VAL}"
- if [ ! -z "${NETROUTE}" ]
- then
- rc_halt "route add default ${NETROUTE}"
- fi
-
- # Check if we have a nameserver to enable
- get_value_from_cfg netNameServer
- NAMESERVER="${VAL}"
- if [ ! -z "${NAMESERVER}" ]
- then
- echo "nameserver ${NAMESERVER}" >/etc/resolv.conf
- fi
-
-
-};
-
-
-# Function which parses the cfg and enables networking per specified
-start_networking()
-{
- # Check if we have any networking requested
- get_value_from_cfg netDev
- if [ -z "${VAL}" ]
- then
- return 0
- fi
-
- NETDEV="${VAL}"
- if [ "$NETDEV" = "AUTO-DHCP" ]
- then
- enable_auto_dhcp
- else
- enable_manual_nic ${NETDEV}
- fi
-
-};
-
-
-# Function which checks the cfg and enables the specified networking on
-# the installed system
-save_networking_install()
-{
-
- # Check if we have any networking requested to save
- get_value_from_cfg netSaveDev
- if [ -z "${VAL}" ]
- then
- return 0
- fi
-
- NETDEV="${VAL}"
- if [ "$NETDEV" = "AUTO-DHCP" ]
- then
- save_auto_dhcp
- else
- save_manual_nic ${NETDEV}
- fi
-
-};
-
diff --git a/PCBSD/pc-sysinstall/backend/functions-newfs.sh b/PCBSD/pc-sysinstall/backend/functions-newfs.sh
deleted file mode 100644
index b1f7f3a..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-newfs.sh
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/bin/sh
-# Functions related to disk operations using newfs
-
-
-# Function which performs the ZFS magic
-setup_zfs_filesystem()
-{
- PART="$1"
- PARTFS="$2"
- PARTMNT="$3"
- EXT="$4"
- PARTGEOM="$5"
- ZPOOLOPTS="$6"
- ROOTSLICE="`echo ${PART} | rev | cut -b 2- | rev`"
- ZPOOLNAME=$(get_zpool_name "${PART}")
-
- # Sleep a few moments, let the disk catch its breath
- sleep 5
- sync
-
- # Check if we have some custom zpool arguments and use them if so
- if [ ! -z "${ZPOOLOPTS}" ] ; then
- rc_halt "zpool create -m none -f ${ZPOOLNAME} ${ZPOOLOPTS}"
- else
- # No zpool options, create pool on single device
- rc_halt "zpool create -m none -f ${ZPOOLNAME} ${PART}${EXT}"
- fi
-
- # Disable atime for this zfs partition, speed increase
- rc_nohalt "zfs set atime=off ${ZPOOLNAME}"
-
- # Check if we have multiple zfs mounts specified
- for i in `echo ${PARTMNT} | sed 's|,| |g'`
- do
- # Check if we ended up with needing a zfs bootable partition
- if [ "${i}" = "/" -o "${i}" = "/boot" ]
- then
- if [ "${PARTGEOM}" = "MBR" ]
- then
- # Lets stamp the proper ZFS boot loader
- echo_log "Setting up ZFS boot loader support"
- rc_halt "zpool set bootfs=${ZPOOLNAME} ${ZPOOLNAME}"
- rc_halt "zpool export ${${ZPOOLNAME}"
- rc_halt "dd if=/boot/zfsboot of=/dev/${ROOTSLICE} count=1"
- rc_halt "dd if=/boot/zfsboot of=/dev/${PART}${EXT} skip=1 seek=1024"
- rc_halt "zpool import ${ZPOOLNAME}"
- fi
- fi
- done
-
-};
-
-# Runs newfs on all the partiions which we've setup with bsdlabel
-setup_filesystems()
-{
-
- # Create the keydir
- rm -rf ${GELIKEYDIR} >/dev/null 2>/dev/null
- mkdir ${GELIKEYDIR}
-
- # Lets go ahead and read through the saved partitions we created, and determine if we need to run
- # newfs on any of them
- for PART in `ls ${PARTDIR}`
- do
- if [ ! -e "/dev/${PART}" ]
- then
- exit_err "ERROR: The partition ${PART} does not exist. Failure in bsdlabel?"
- fi
-
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
- PARTLABEL="`cat ${PARTDIR}/${PART} | cut -d ':' -f 4`"
- PARTGEOM="`cat ${PARTDIR}/${PART} | cut -d ':' -f 5`"
- PARTXTRAOPTS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 6`"
-
- # Make sure journaling isn't enabled on this device
- if [ -e "/dev/${PART}.journal" ]
- then
- rc_nohalt "gjournal stop -f ${PART}.journal"
- rc_nohalt "gjournal clear ${PART}"
- fi
-
- # Setup encryption if necessary
- if [ "${PARTENC}" = "ON" -a "${PARTFS}" != "SWAP" ]
- then
- echo_log "Creating geli provider for ${PART}"
- rc_halt "dd if=/dev/random of=${GELIKEYDIR}/${PART}.key bs=64 count=1"
- rc_halt "geli init -b -s 4096 -P -K ${GELIKEYDIR}/${PART}.key /dev/${PART}"
- rc_halt "geli attach -p -k ${GELIKEYDIR}/${PART}.key /dev/${PART}"
-
- EXT=".eli"
- else
- # No Encryption
- EXT=""
- fi
-
- case ${PARTFS} in
- UFS) echo_log "NEWFS: /dev/${PART} - ${PARTFS}"
- sleep 2
- rc_halt "newfs /dev/${PART}${EXT}"
- sleep 2
- rc_halt "sync"
- rc_halt "glabel label ${PARTLABEL} /dev/${PART}${EXT}"
- rc_halt "sync"
- sleep 2
- ;;
- UFS+S) echo_log "NEWFS: /dev/${PART} - ${PARTFS}"
- sleep 2
- rc_halt "newfs -U /dev/${PART}${EXT}"
- sleep 2
- rc_halt "sync"
- rc_halt "glabel label ${PARTLABEL} /dev/${PART}${EXT}"
- rc_halt "sync"
- sleep 2
- ;;
- UFS+J) echo_log "NEWFS: /dev/${PART} - ${PARTFS}"
- sleep 2
- rc_halt "newfs /dev/${PART}${EXT}"
- sleep 2
- rc_halt "gjournal label -f /dev/${PART}${EXT}"
- sleep 2
- rc_halt "newfs -O 2 -J /dev/${PART}${EXT}.journal"
- sleep 2
- rc_halt "sync"
- rc_halt "glabel label ${PARTLABEL} /dev/${PART}${EXT}.journal"
- rc_halt "sync"
- sleep 2
- ;;
- ZFS) echo_log "NEWFS: /dev/${PART} - ${PARTFS}"
- setup_zfs_filesystem "${PART}" "${PARTFS}" "${PARTMNT}" "${EXT}" "${PARTGEOM}" "${PARTXTRAOPTS}"
- ;;
- SWAP) rc_halt "sync"
- rc_halt "glabel label ${PARTLABEL} /dev/${PART}${EXT}"
- rc_halt "sync"
- sleep 2
- ;;
- *) exit_err "ERROR: Got unknown file-system type $PARTFS" ;;
- esac
-
- done
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-parse.sh b/PCBSD/pc-sysinstall/backend/functions-parse.sh
deleted file mode 100644
index 1fa138d..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-parse.sh
+++ /dev/null
@@ -1,205 +0,0 @@
-#!/bin/sh
-# functions.sh
-# Library of functions which pc-sysinstall may call upon for parsing the config
-
-# which gets the value of a setting in the provided line
-get_value_from_string()
-{
- if [ ! -z "${1}" ]
- then
- VAL="`echo ${1} | cut -d '=' -f 2`"
- export VAL
- else
- echo "Error: Did we forgot to supply a string to parse?"
- exit 1
- fi
-};
-
-# Get the value from the cfg file including spaces
-get_value_from_cfg_with_spaces()
-{
- if [ ! -z "${1}" ]
- then
- VAL=`grep "^${1}=" ${CFGF} | head -n 1 | cut -d '=' -f 2`
- export VAL
- else
- exit_err "Error: Did we forgot to supply a setting to grab?"
- fi
-};
-
-
-# Get the value from the cfg file
-get_value_from_cfg()
-{
- if [ ! -z "${1}" ]
- then
- VAL=`grep "^${1}=" ${CFGF} | head -n 1 | cut -d '=' -f 2 | tr -d ' '`
- export VAL
- else
- exit_err "Error: Did we forgot to supply a setting to grab?"
- fi
-};
-
-# Checks the value of a setting in the provided line with supplied possibilities
-# 1 = setting we are checking, 2 = list of valid values
-if_check_value_exists()
-{
- if [ ! -z "${1}" -a ! -z "${2}" ]
- then
- # Get the first occurance of the setting from the config, strip out whitespace
-
- VAL=`grep "^${1}" ${CFGF} | head -n 1 | cut -d '=' -f 2 | tr -d ' '`
- if [ -z "${VAL}" ]
- then
- # This value doesn't exist, lets return
- return 0
- fi
-
-
- VALID="1"
- for i in ${2}
- do
- if [ "$VAL" = "${i}" ]
- then
- VALID="0"
- fi
- done
- if [ "$VALID" = "1" ]
- then
- exit_err "Error: ${1} is set to unknown value $VAL"
- fi
- else
- exit_err "Error: Did we forgot to supply a string to parse and setting to grab?"
- fi
-};
-
-# Checks the value of a setting in the provided line with supplied possibilities
-# 1 = setting we are checking, 2 = list of valid values
-check_value()
-{
- if [ ! -z "${1}" -a ! -z "${2}" ]
- then
- # Get the first occurance of the setting from the config, strip out whitespace
- VAL=`grep "^${1}" ${CFGF} | head -n 1 | cut -d '=' -f 2 | tr -d ' '`
- VALID="1"
- for i in ${2}
- do
- if [ "$VAL" = "${i}" ]
- then
- VALID="0"
- fi
- done
- if [ "$VALID" = "1" ]
- then
- exit_err "Error: ${1} is set to unknown value $VAL"
- fi
- else
- exit_err "Error: Did we forgot to supply a string to parse and setting to grab?"
- fi
-};
-
-# Checks for the presense of the supplied arguements in the config file
-# 1 = values to confirm exist
-file_sanity_check()
-{
- if [ ! -z "$CFGF" -a ! -z "$1" ]
- then
- for i in $1
- do
- grep "^${i}=" $CFGF >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- LN=`grep "^${i}=" ${CFGF} | head -n 1 | cut -d '=' -f 2 | tr -d ' '`
- if [ -z "${LN}" ]
- then
- echo "Error: Config fails sanity test! ${i}= is empty"
- exit 1
- fi
- else
- echo "Error: Config fails sanity test! Missing ${i}="
- exit 1
- fi
- done
- else
- echo "Error: Missing config file, and / or values to sanity check for!"
- exit 1
- fi
-};
-
-
-# Function which merges the contents of a new config into the specified old one
-# Only works with <val>= type configurations
-merge_config()
-{
- OLDCFG="${1}"
- NEWCFG="${2}"
- FINALCFG="${3}"
-
- # Copy our oldcfg to the new one, which will be used as basis
- cp ${OLDCFG} ${FINALCFG}
-
- # Remove blank lines from new file
- cat ${NEWCFG} | sed '/^$/d' > ${FINALCFG}.tmp
-
- # Set our marker if we've found any
- FOUNDMERGE="NO"
-
- while read newline
- do
- echo ${newline} | grep "^#" >/dev/null 2>/dev/null
- if [ "$?" != "0" ] ; then
- VAL="`echo ${newline} | cut -d '=' -f 1`"
- cat ${OLDCFG} | grep ${VAL} >/dev/null 2>/dev/null
- if [ "$?" != "0" ] ; then
- if [ "${FOUNDMERGE}" = "NO" ] ; then
- echo "" >> ${FINALCFG}
- echo "# Auto-merged values from newer ${NEWCFG}" >> ${FINALCFG}
- FOUNDMERGE="YES"
- fi
- echo "${newline}" >> ${FINALCFG}
- fi
- fi
- done < ${FINALCFG}.tmp
- rm ${FINALCFG}.tmp
-
-};
-
-# Loop to check for a specified mount-point in a list
-check_for_mount()
-{
- MNTS="${1}"
- FINDMNT="${2}"
-
- # Check if we found a valid root partition
- for CHECKMNT in `echo ${MNTS} | sed 's|,| |g'`
- do
- if [ "${CHECKMNT}" = "${FINDMNT}" ] ; then
- return 0
- fi
- done
-
- return 1
-};
-
-# Function which returns the next line in the specified config file
-get_next_cfg_line()
-{
- CURFILE="$1"
- CURLINE="$2"
-
- FOUND="1"
-
- while read line
- do
- if [ "$FOUND" = "0" ] ; then
- VAL="$line" ; export VAL
- return
- fi
- if [ "$line" = "${CURLINE}" ] ; then
- FOUND="0"
- fi
- done <${CURFILE}
-
- # Got here, couldn't find this line or at end of file, set VAL to ""
- VAL="" ; export VAL
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-runcommands.sh b/PCBSD/pc-sysinstall/backend/functions-runcommands.sh
deleted file mode 100644
index 307119d..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-runcommands.sh
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/bin/sh
-# Functions which runs commands on the system
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-run_chroot_cmd()
-{
- CMD="$@"
- echo_log "Running chroot command: ${CMD}"
- echo "$CMD" >${FSMNT}/.runcmd.sh
- chmod 755 ${FSMNT}/.runcmd.sh
- chroot ${FSMNT} sh /.runcmd.sh
- rm ${FSMNT}/.runcmd.sh
-};
-
-run_chroot_script()
-{
- SCRIPT="$@"
- SBASE=`basename $SCRIPT`
-
- cp ${SCRIPT} ${FSMNT}/.$SBASE
- chmod 755 ${FSMNT}/.${SBASE}
-
- echo_log "Running chroot script: ${SCRIPT}"
- chroot ${FSMNT} /.${SBASE}
-
- rm ${FSMNT}/.${SBASE}
-};
-
-
-run_ext_cmd()
-{
- CMD="$@"
- # Make sure to export FSMNT, in case cmd needs it
- export FSMNT
- echo_log "Running external command: ${CMD}"
- echo "${CMD}"> ${TMPDIR}/.runcmd.sh
- chmod 755 ${TMPDIR}/.runcmd.sh
- sh ${TMPDIR}/.runcmd.sh
- rm ${TMPDIR}/.runcmd.sh
-};
-
-
-# Starts the user setup
-run_commands()
-{
- while read line
- do
- # Check if we need to run any chroot command
- echo $line | grep ^runCommand= >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "$line"
- run_chroot_cmd "$VAL"
- fi
-
- # Check if we need to run any chroot script
- echo $line | grep ^runScript= >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "$line"
- run_chroot_script "$VAL"
- fi
-
- # Check if we need to run any chroot command
- echo $line | grep ^runExtCommand= >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "$line"
- run_ext_cmd "$VAL"
- fi
-
- done <${CFGF}
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-unmount.sh b/PCBSD/pc-sysinstall/backend/functions-unmount.sh
deleted file mode 100644
index f47c3fb..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-unmount.sh
+++ /dev/null
@@ -1,175 +0,0 @@
-#!/bin/sh
-# Functions which unmount all mounted disk filesystems
-
-# Script that adds our gmirror devices for syncing
-start_gmirror_sync()
-{
-
- cd ${MIRRORCFGDIR}
- for DISK in `ls *`
- do
- MIRRORDISK="`cat ${DISK} | cut -d ':' -f 1`"
- MIRRORBAL="`cat ${DISK} | cut -d ':' -f 2`"
- MIRRORNAME="`cat ${DISK} | cut -d ':' -f 3`"
-
- # Start the mirroring service
- rc_halt "gmirror insert ${MIRRORNAME} /dev/${MIRRORDISK}"
-
- done
-
-};
-
-# Unmounts all our mounted file-systems
-unmount_all_filesystems()
-{
- # Copy the logfile to disk before we unmount
- cp ${LOGOUT} ${FSMNT}/root/pc-sysinstall.log
- cd /
-
- # Start by unmounting any ZFS partitions
- zfs_cleanup_unmount
-
- # Lets read our partition list, and unmount each
- ##################################################################
- for PART in `ls ${PARTDIR}`
- do
-
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
- PARTLABEL="`cat ${PARTDIR}/${PART} | cut -d ':' -f 4`"
-
- if [ "${PARTENC}" = "ON" ]
- then
- EXT=".eli"
- else
- EXT=""
- fi
-
- #if [ "${PARTFS}" = "SWAP" ]
- #then
- # rc_nohalt "swapoff /dev/${PART}${EXT}"
- #fi
-
- # Check if we've found "/", and unmount that last
- if [ "$PARTMNT" != "/" -a "${PARTMNT}" != "none" -a "${PARTFS}" != "ZFS" ]
- then
- rc_halt "umount -f /dev/${PART}${EXT}"
-
- # Re-check if we are missing a label for this device and create it again if so
- if [ ! -e "/dev/label/${PARTLABEL}" ]
- then
- case ${PARTFS} in
- UFS) glabel label ${PARTLABEL} /dev/${PART}${EXT} ;;
- UFS+S) glabel label ${PARTLABEL} /dev/${PART}${EXT} ;;
- UFS+J) glabel label ${PARTLABEL} /dev/${PART}${EXT}.journal ;;
- *) ;;
- esac
- fi
- fi
-
- # Check if we've found "/" and make sure the label exists
- if [ "$PARTMNT" = "/" -a "${PARTFS}" != "ZFS" ]
- then
- if [ ! -e "/dev/label/${PARTLABEL}" ]
- then
- case ${PARTFS} in
- UFS) ROOTRELABEL="glabel label ${PARTLABEL} /dev/${PART}${EXT}" ;;
- UFS+S) ROOTRELABEL="glabel label ${PARTLABEL} /dev/${PART}${EXT}" ;;
- UFS+J) ROOTRELABEL="glabel label ${PARTLABEL} /dev/${PART}${EXT}.journal" ;;
- *) ;;
- esac
- fi
- fi
- done
-
- # Last lets the /mnt partition
- #########################################################
- # rc_nohalt "umount -f ${FSMNT}"
-
- # If are using a ZFS on "/" set it to legacy
- if [ ! -z "${FOUNDZFSROOT}" ]
- then
- rc_halt "zfs set mountpoint=legacy ${FOUNDZFSROOT}"
- fi
-
- # If we need to relabel "/" do it now
- if [ ! -z "${ROOTRELABEL}" ]
- then
- ${ROOTRELABEL}
- fi
-
- # Unmount our CDMNT
- # rc_nohalt "umount -f ${CDMNT}"
-
- # Check if we need to run any gmirror syncing
- ls ${MIRRORCFGDIR}/* >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Lets start syncing now
- start_gmirror_sync
- fi
-
- # Import any pools, so they are active at shutdown and ready to boot potentially
- zpool import -a
-
-};
-
-# Unmounts any filesystems after a failure
-unmount_all_filesystems_failure()
-{
- cd /
-
- # if we did a fresh install, start unmounting
- if [ "${INSTALLMODE}" = "fresh" ]
- then
-
- # Lets read our partition list, and unmount each
- ##################################################################
- if [ -d "${PARTDIR}" ]
- then
- for PART in `ls ${PARTDIR}`
- do
-
- PARTFS="`cat ${PARTDIR}/${PART} | cut -d ':' -f 1`"
- PARTMNT="`cat ${PARTDIR}/${PART} | cut -d ':' -f 2`"
- PARTENC="`cat ${PARTDIR}/${PART} | cut -d ':' -f 3`"
-
- #if [ "${PARTFS}" = "SWAP" ]
- #then
- # if [ "${PARTENC}" = "ON" ]
- # then
- # rc_nohalt "swapoff /dev/${PART}.eli"
- # else
- # rc_nohalt "swapoff /dev/${PART}"
- # fi
- #fi
-
- # Check if we've found "/" again, don't need to mount it twice
- if [ "$PARTMNT" != "/" -a "${PARTMNT}" != "none" -a "${PARTFS}" != "ZFS" ]
- then
- rc_nohalt "umount -f /dev/${PART}"
- rc_nohalt "umount -f ${FSMNT}${PARTMNT}"
- fi
- done
-
- # Last lets the /mnt partition
- #########################################################
- # rc_nohalt "umount -f ${FSMNT} 2>/dev/null"
-
- fi
- else
- # We are doing a upgrade, try unmounting any of these filesystems
- chroot ${FSMNT} /sbin/umount -a >>${LOGOUT} >>${LOGOUT}
- umount -f ${FSMNT}/usr >>${LOGOUT} 2>>${LOGOUT}
- umount -f ${FSMNT}/dev >>${LOGOUT} 2>>${LOGOUT}
- umount -f ${FSMNT} >>${LOGOUT} 2>>${LOGOUT}
- rc_nohalt "sh ${TMPDIR}/.upgrade-unmount"
- fi
-
- # Unmount our CDMNT
- # rc_nohalt "umount ${CDMNT} 2>/dev/null"
-
- # Import any pools, so they are active at shutdown and ready to boot potentially
- zpool import -a
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-upgrade.sh b/PCBSD/pc-sysinstall/backend/functions-upgrade.sh
deleted file mode 100644
index 08f80e7..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-upgrade.sh
+++ /dev/null
@@ -1,259 +0,0 @@
-#!/bin/sh
-# Functions which perform the mounting / unmount for upgrades
-
-
-mount_target_slice()
-{
- MPART="${1}"
-
- # Import any zpools
- zpool import -a
-
- # Set a variable of files we want to make backups of before doing upgrade
- BKFILES="/etc/rc.conf /boot/loader.conf"
-
- if [ -e "/dev/${MPART}a.journal" ]
- then
- rc_halt "mount /dev/${MPART}.journal ${FSMNT}"
- elif [ -e "/dev/${MPART}a" ]
- then
- mount /dev/${MPART}a ${FSMNT}
- if [ "$?" != "0" ]
- then
- # Try ZFS on this slice
- mount -t zfs ${MPART}a ${FSMNT}
- if [ "${?}" != "0" ]
- then
- exit_err "Failed to mount ${MPART}"
- fi
- fi
- fi
-
- mount -t devfs devfs ${FSMNT}/dev
- chroot ${FSMNT} /sbin/mount -a >>${LOGOUT} 2>>${LOGOUT}
- chroot ${FSMNT} umount /proc >/dev/null 2>/dev/null
- chroot ${FSMNT} umount /compat/linux/proc >/dev/null 2>/dev/null
-
- # Save which partition was mounted, so we may unmount it later
- echo "umount -f /dev/${MPART}a" >>${TMPDIR}/.upgrade-unmount
-
- # Now before we start the upgrade, make sure we set our noschg flags
- echo_log "Cleaning up old filesystem... Please wait..."
- rc_halt "chflags -R noschg ${FSMNT}"
-
- # Make backup copies of some files
- for i in ${BKFILES}
- do
- cp ${FSMNT}${i} ${FSMNT}${i}.preUpgrade >/dev/null 2>/dev/null
- done
-
- # Remove some old dirs
- rm -rf ${FSMNT}/etc/rc.d >/dev/null 2>/dev/null
-
- # If we are doing PC-BSD install, lets cleanup old pkgs on disk
- if [ "$INSTALLTYPE" != "FreeBSD" ]
- then
- echo_log "Removing old packages, this may take a while... Please wait..."
- echo '#/bin/sh
-for i in `pkg_info -E \*`
-do
- echo "Uninstalling package: ${i}"
- pkg_delete -f ${i} >/dev/null 2>/dev/null
-done
-' >${FSMNT}/.cleanPkgs.sh
- chmod 755 ${FSMNT}/.cleanPkgs.sh
- chroot ${FSMNT} /.cleanPkgs.sh
- rm ${FSMNT}/.cleanPkgs.sh
- run_chroot_cmd "pkg_delete -f \*" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /usr/PCBSD" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /PCBSD" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /var/db/pkgs" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /usr/local32" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /usr/sbin" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /usr/lib" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /usr/bin" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /boot/kernel" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /sbin" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /bin" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /lib" >/dev/null 2>/dev/null
- run_chroot_cmd "rm -rf /libexec" >/dev/null 2>/dev/null
- fi
-
-}
-
-# Mount the target upgrade partitions
-mount_upgrade()
-{
-
- # Start with disk0
- disknum="0"
-
- # Make sure we remove the old upgrade-mount script
- rm -rf ${TMPDIR}/.upgrade-unmount >/dev/null 2>/dev/null
-
- # We are ready to start mounting, lets read the config and do it
- while read line
- do
- echo $line | grep "^disk${disknum}=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
-
- # Found a disk= entry, lets get the disk we are working on
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- DISK="$VAL"
-
- # Before we go further, lets confirm this disk really exists
- if [ ! -e "/dev/${DISK}" ]
- then
- exit_err "ERROR: The disk ${DISK} does not exist!"
- fi
- fi
-
- echo $line | grep "^partition=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found a partition= entry, lets read / set it
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- PTYPE="$VAL"
-
- # We are using free space, figure out the slice number
- if [ "${PTYPE}" = "free" -o "${PTYPE}" = "all" ]
- then
- exit_err "ERROR: Invalid upgrade partition=${PTYPE}"
- fi
- fi
-
- echo $line | grep "^commitDiskPart" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found our flag to commit this disk setup / lets do sanity check and do it
- if [ ! -z "${DISK}" -a ! -z "${PTYPE}" ]
- then
- case ${PTYPE} in
- s1|s2|s3|s4) tmpSLICE="${DISK}${PTYPE}a" ;;
- *) exit_err "ERROR: Unknown PTYPE: $PTYPE" ;;
- esac
-
- if [ ! -e "/dev/${tmpSLICE}" ]
- then
- exit_err "ERROR: /dev/${tmpSLICE} does not exist! Mount failed!"
- fi
-
- # Start mounting this slice
- mount_target_slice "${DISK}${PTYPE}"
-
- # Increment our disk counter to look for next disk and unset
- unset PTYPE DISK
- disknum="`expr $disknum + 1`"
- else
- exit_err "ERROR: commitDiskPart was called without procceding disk<num>= and partition= entries!!!"
- fi
- fi
-
- done <${CFGF}
-
-};
-
-copy_skel_files_upgrade()
-{
-
- # Now make sure we fix any user profile scripts, which cause problems from 7.x->8.x
- echo '#!/bin/sh
-
-cd /home
-for i in `ls`
-do
-
- # Backup the old profile dirs
- if [ -d "${i}" ]
- then
- mv /home/${i}/.kde4 /home/${i}/.kde4.preUpgrade >/dev/null 2>/dev/null
- mv /home/${i}/.kde /home/${i}/.kde.preUpgrade >/dev/null 2>/dev/null
- mv /home/${i}/.fluxbox /home/${i}/.fluxbox.preUpgrade >/dev/null 2>/dev/null
-
- # Copy over the skel directories
- tar cv --exclude "./dot.*" -f - -C /usr/share/skel . 2>/dev/null | tar xvf - -C /home/${i} 2>/dev/null
-
- for j in `ls /usr/share/skel/dot*`
- do
- dname=`echo ${j} | sed s/dot//`
- cp /usr/share/skel/${j} /home/${i}/${dname}
- done
-
- chown -R ${i}:${i} /home/${i}
- fi
-
-done
-' >${FSMNT}/.fixUserProfile.sh
- chmod 755 ${FSMNT}/.fixUserProfile.sh
- chroot ${FSMNT} /.fixUserProfile.sh >/dev/null 2>/dev/null
- rm ${FSMNT}/.fixUserProfile.sh
-
-
-
- # if the user wants to keep their original .kde4 profile
- ###########################################################################
- get_value_from_cfg "upgradeKeepDesktopProfile"
- if [ "$VAL" = "YES" -o "$VAL" = "yes" ] ; then
- echo '#!/bin/sh
- cd /home
-for i in `ls`
-do
- # Import the old config again
- if [ -d "${i}/.kde4.preUpgrade" ]
- then
- # Copy over the skel directories
- tar cv -f - -C /home/${i}/.kde4.preUpgrade . 2>/dev/null | tar xvf - -C /home/${i}/.kde4 2>/dev/null
- chown -R ${i}:${i} /home/${i}/.kde4
- fi
-done
-' >${FSMNT}/.fixUserProfile.sh
- chmod 755 ${FSMNT}/.fixUserProfile.sh
- chroot ${FSMNT} /.fixUserProfile.sh >/dev/null 2>/dev/null
- rm ${FSMNT}/.fixUserProfile.sh
-
- fi
-
-};
-
-# Function which merges some configuration files with the new defaults
-merge_old_configs()
-{
-
- # Merge the loader.conf with old
- cp ${FSMNT}/boot/loader.conf ${FSMNT}/boot/loader.conf.new
- merge_config "${FSMNT}/boot/loader.conf.preUpgrade" "${FSMNT}/boot/loader.conf.new" "${FSMNT}/boot/loader.conf"
- rm ${FSMNT}/boot/loader.conf.new
-
- # Merge the rc.conf with old
- cp ${FSMNT}/etc/rc.conf ${FSMNT}/etc/rc.conf.new
- merge_config "${FSMNT}/etc/rc.conf.preUpgrade" "${FSMNT}/etc/rc.conf.new" "${FSMNT}/etc/rc.conf"
- rm ${FSMNT}/etc/rc.conf.new
-
-};
-
-# Function which unmounts all the mounted file-systems
-unmount_upgrade()
-{
-
- # If on PC-BSD, make sure we copy any fixed skel files
- if [ "$INSTALLTYPE" != "FreeBSD" ] ; then
- copy_skel_files_upgrade
- fi
-
- cd /
-
- # Unmount FS
- chroot ${FSMNT} /sbin/umount -a >/dev/null 2>/dev/null
- umount ${FSMNT}/usr >/dev/null 2>/dev/null
- umount ${FSMNT}/var >/dev/null 2>/dev/null
- umount ${FSMNT}/dev >/dev/null 2>/dev/null
- umount ${FSMNT} >/dev/null 2>/dev/null
-
- # Run our saved unmount script for these file-systems
- rc_nohalt "sh ${TMPDIR}/.upgrade-unmount"
-
- umount ${CDMNT}
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions-users.sh b/PCBSD/pc-sysinstall/backend/functions-users.sh
deleted file mode 100644
index e413807..0000000
--- a/PCBSD/pc-sysinstall/backend/functions-users.sh
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/bin/sh
-# Functions which runs commands on the system
-
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-parse.sh
-
-
-# Function which checks and sets up auto-login for a user if specified
-check_autologin()
-{
- get_value_from_cfg autoLoginUser
- if [ ! -z "${VAL}" -a "${INSTALLTYPE}" = "PCBSD" ]
- then
- AUTOU="${VAL}"
- # Add the auto-login user line
- sed -i.bak "s/AutoLoginUser=/AutoLoginUser=${AUTOU}/g" ${FSMNT}/usr/local/kde4/share/config/kdm/kdmrc
-
- # Add the auto-login user line
- sed -i.bak "s/AutoLoginEnable=false/AutoLoginEnable=true/g" ${FSMNT}/usr/local/kde4/share/config/kdm/kdmrc
-
- fi
-};
-
-# Function which actually runs the adduser command on the filesystem
-add_user()
-{
- ARGS="${1}"
-
- if [ -e "${FSMNT}/.tmpPass" ]
- then
- # Add a user with a supplied password
- run_chroot_cmd "cat /.tmpPass | pw useradd ${ARGS}"
- rc_halt "rm ${FSMNT}/.tmpPass"
- else
- # Add a user with no password
- run_chroot_cmd "cat /.tmpPass | pw useradd ${ARGS}"
- fi
-
-};
-
-# Function which reads in the config, and adds any users specified
-setup_users()
-{
-
- # We are ready to start setting up the users, lets read the config
- while read line
- do
-
- echo $line | grep "^userName=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- USERNAME="$VAL"
- fi
-
- echo $line | grep "^userComment=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- USERCOMMENT="$VAL"
- fi
-
- echo $line | grep "^userPass=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- USERPASS="$VAL"
- fi
-
- echo $line | grep "^userShell=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- strip_white_space "$VAL"
- USERSHELL="$VAL"
- fi
-
- echo $line | grep "^userHome=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- USERHOME="$VAL"
- fi
-
- echo $line | grep "^userGroups=" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- get_value_from_string "${line}"
- USERGROUPS="$VAL"
- fi
-
-
- echo $line | grep "^commitUser" >/dev/null 2>/dev/null
- if [ "$?" = "0" ]
- then
- # Found our flag to commit this user, lets check and do it
- if [ ! -z "${USERNAME}" ]
- then
-
- # Now add this user to the system, by building our args list
- ARGS="-n ${USERNAME}"
-
- if [ ! -z "${USERCOMMENT}" ]
- then
- ARGS="${ARGS} -c \"${USERCOMMENT}\""
- fi
-
- if [ ! -z "${USERPASS}" ]
- then
- ARGS="${ARGS} -h 0"
- echo "${USERPASS}" >${FSMNT}/.tmpPass
- else
- ARGS="${ARGS} -h -"
- rm ${FSMNT}/.tmpPass 2>/dev/null 2>/dev/null
- fi
-
- if [ ! -z "${USERSHELL}" ]
- then
- ARGS="${ARGS} -s \"${USERSHELL}\""
- else
- ARGS="${ARGS} -s \"/nonexistant\""
- fi
-
- if [ ! -z "${USERHOME}" ]
- then
- ARGS="${ARGS} -m -d \"${USERHOME}\""
- fi
-
- if [ ! -z "${USERGROUPS}" ]
- then
- ARGS="${ARGS} -G \"${USERGROUPS}\""
- fi
-
- add_user "${ARGS}"
-
- # Unset our vars before looking for any more users
- unset USERNAME USERCOMMENT USERPASS USERSHELL USERHOME USERGROUPS
- else
- exit_err "ERROR: commitUser was called without any userName= entry!!!"
- fi
- fi
-
- done <${CFGF}
-
-
- # Check if we need to enable a user to auto-login to the desktop
- check_autologin
-
-};
diff --git a/PCBSD/pc-sysinstall/backend/functions.sh b/PCBSD/pc-sysinstall/backend/functions.sh
deleted file mode 100644
index a4975c3..0000000
--- a/PCBSD/pc-sysinstall/backend/functions.sh
+++ /dev/null
@@ -1,249 +0,0 @@
-#!/bin/sh
-# functions.sh
-# Library of functions which pc-sysinstall may call upon
-
-# Function which displays the help-index file
-display_help()
-{
- if [ -e "${PROGDIR}/doc/help-index" ]
- then
- cat ${PROGDIR}/doc/help-index
- else
- echo "Error: ${PROGDIR}/doc/help-index not found"
- exit 1
- fi
-};
-
-# Function which displays the help for a specified command
-display_command_help()
-{
- if [ -z "$1" ]
- then
- echo "Error: No command specified to display help for"
- exit 1
- fi
-
- if [ -e "${PROGDIR}/doc/help-${1}" ]
- then
- cat ${PROGDIR}/doc/help-${1}
- else
- echo "Error: ${PROGDIR}/doc/help-${1} not found"
- exit 1
- fi
-};
-
-# Function to convert bytes to megabytes
-convert_byte_to_megabyte()
-{
- if [ -z "${1}" ]
- then
- echo "Error: No bytes specified!"
- exit 1
- fi
-
- expr -e ${1} / 1048576
-};
-
-# Function to convert blocks to megabytes
-convert_blocks_to_megabyte()
-{
- if [ -z "${1}" ] ; then
- echo "Error: No blocks specified!"
- exit 1
- fi
-
- expr -e ${1} / 2048
-};
-
-# Takes $1 and strips the whitespace out of it, returns VAL
-strip_white_space()
-{
- if [ -z "${1}" ]
- then
- echo "Error: No value setup to strip whitespace from!"
-
- exit 1
- fi
-
- VAL=`echo "$1" | tr -d ' '`
- export VAL
-};
-
-# Displays an error message and exits with error 1
-exit_err()
-{
- # Echo the message for the users benefit
- echo "$1"
-
- # Save this error to the log file
- echo "${1}" >>$LOGOUT
-
- # Check if we need to unmount any file-systems after this failure
- unmount_all_filesystems_failure
-
- echo "For more details see log file: $LOGOUT"
-
- exit 1
-};
-
-# Run-command, don't halt if command exits with non-0
-rc_nohalt()
-{
- CMD="$1"
-
- if [ -z "${CMD}" ]
- then
- exit_err "Error: missing argument in rc_nohalt()"
- fi
-
- echo "Running: ${CMD}" >>${LOGOUT}
- ${CMD} >>${LOGOUT} 2>>${LOGOUT}
-
-};
-
-# Run-command, halt if command exits with non-0
-rc_halt()
-{
- CMD="$1"
-
- if [ -z "${CMD}" ]
- then
- exit_err "Error: missing argument in rc_halt()"
- fi
-
- echo "Running: ${CMD}" >>${LOGOUT}
- ${CMD} >>${LOGOUT} 2>>${LOGOUT}
- STATUS="$?"
- if [ "${STATUS}" != "0" ]
- then
- exit_err "Error ${STATUS}: ${CMD}"
- fi
-};
-
-# Run-command w/echo to screen, halt if command exits with non-0
-rc_halt_echo()
-{
- CMD="$1"
-
- if [ -z "${CMD}" ]
- then
- exit_err "Error: missing argument in rc_halt_echo()"
- fi
-
- echo "Running: ${CMD}" >>${LOGOUT}
- ${CMD} 2>&1 | tee -a ${LOGOUT}
- STATUS="$?"
- if [ "$STATUS" != "0" ]
- then
- exit_err "Error ${STATUS}: $CMD"
- fi
-
-};
-
-# Run-command w/echo, don't halt if command exits with non-0
-rc_nohalt_echo()
-{
- CMD="$1"
-
- if [ -z "${CMD}" ]
- then
- exit_err "Error: missing argument in rc_nohalt_echo()"
- fi
-
- echo "Running: ${CMD}" >>${LOGOUT}
- ${CMD} 2>&1 | tee -a ${LOGOUT}
-
-};
-
-# Echo to the screen and to the log
-echo_log()
-{
- STR="$1"
-
- if [ -z "${STR}" ]
- then
- exit_err "Error: missing argument in echo_log()"
- fi
-
- echo "${STR}" | tee -a ${LOGOUT}
-};
-
-# Function which uses "fetch" to download a file, and display a progress report
-fetch_file()
-{
-
-FETCHFILE="$1"
-FETCHOUTFILE="$2"
-EXITFAILED="$3"
-
-SIZEFILE="${TMPDIR}/.fetchSize"
-EXITFILE="${TMPDIR}/.fetchExit"
-
-rm ${SIZEFILE} 2>/dev/null >/dev/null
-rm ${FETCHOUTFILE} 2>/dev/null >/dev/null
-
-fetch -s "${FETCHFILE}" >${SIZEFILE}
-SIZE="`cat ${SIZEFILE}`"
-SIZE="`expr ${SIZE} / 1024`"
-echo "FETCH: ${FETCHFILE}"
-echo "FETCH: ${FETCHOUTFILE}" >>${LOGOUT}
-
-( fetch -o ${FETCHOUTFILE} "${FETCHFILE}" >/dev/null 2>/dev/null ; echo "$?" > ${EXITFILE} ) &
-PID="$!"
-while
-z=1
-do
-
- if [ -e "${FETCHOUTFILE}" ]
- then
- DSIZE=`du -k ${FETCHOUTFILE} | tr -d '\t' | cut -d '/' -f 1`
- echo "SIZE: ${SIZE} DOWNLOADED: ${DSIZE}"
- echo "SIZE: ${SIZE} DOWNLOADED: ${DSIZE}" >>${LOGOUT}
- fi
-
- # Check if the download is finished
- ps -p ${PID} >/dev/null 2>/dev/null
- if [ "$?" != "0" ]
- then
- break;
- fi
-
- sleep 2
-done
-
-echo "FETCHDONE"
-
-EXIT="`cat ${EXITFILE}`"
-if [ "${EXIT}" != "0" -a "$EXITFAILED" = "1" ]
-then
- exit_err "Error: Failed to download ${FETCHFILE}"
-fi
-
-return $EXIT
-
-};
-
-# Function to return a the zpool name for this device
-get_zpool_name()
-{
- DEVICE="$1"
-
- # Set the base name we use for zpools
- BASENAME="tank"
-
- if [ ! -d "${TMPDIR}/.zpools" ] ; then
- mkdir -p ${TMPDIR}/.zpools
- fi
-
- if [ -e "${TMPDIR}/.zpools/${DEVICE}" ] ; then
- cat ${TMPDIR}/.zpools/${DEVICE}
- return 0
- else
- # Need to generate a zpool name for this device
- NUM=`ls ${TMPDIR}/.zpools/ | wc -l | sed 's| ||g'`
- NEWNAME="${BASENAME}${NUM}"
- echo "$NEWNAME" >${TMPDIR}/.zpools/${DEVICE}
- echo "${NEWNAME}"
- return
- fi
-};
diff --git a/PCBSD/pc-sysinstall/backend/parseconfig.sh b/PCBSD/pc-sysinstall/backend/parseconfig.sh
deleted file mode 100755
index a86d583..0000000
--- a/PCBSD/pc-sysinstall/backend/parseconfig.sh
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/bin/sh
-# Main install configuration parsing script
-#
-
-# Source our functions scripts
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-bsdlabel.sh
-. ${BACKEND}/functions-cleanup.sh
-. ${BACKEND}/functions-disk.sh
-. ${BACKEND}/functions-extractimage.sh
-. ${BACKEND}/functions-installcomponents.sh
-. ${BACKEND}/functions-localize.sh
-. ${BACKEND}/functions-mountdisk.sh
-. ${BACKEND}/functions-networking.sh
-. ${BACKEND}/functions-newfs.sh
-. ${BACKEND}/functions-parse.sh
-. ${BACKEND}/functions-runcommands.sh
-. ${BACKEND}/functions-unmount.sh
-. ${BACKEND}/functions-upgrade.sh
-. ${BACKEND}/functions-users.sh
-
-# Check that the config file exists
-if [ ! -e "${1}" ]
-then
- echo "ERROR: Install configuration $1 does not exist!"
- exit 1
-fi
-
-# Set our config file variable
-CFGF="$1"
-
-# Check the dirname of the provided CFGF and make sure its a full path
-DIR="`dirname ${CFGF}`"
-if [ "${DIR}" = "." ]
-then
- CFGF="`pwd`/${CFGF}"
-fi
-export CFGF
-
-# Start by doing a sanity check, which will catch any obvious mistakes in the config
-file_sanity_check "installMode disk0 partition bootManager installType installMedium packageType"
-
-# We passed the Sanity check, lets grab some of the universal config settings and store them
-check_value installMode "fresh upgrade"
-check_value bootManager "bsd none"
-check_value installType "PCBSD FreeBSD"
-check_value installMedium "dvd usb ftp rsync LiveCD"
-check_value packageType "uzip tar rsync split cpdup"
-check_value partition "all ALL s1 s2 s3 s4 free FREE"
-if_check_value_exists mirrorbal "load prefer round-robin split"
-
-# We passed all sanity checks! Yay, lets start the install
-echo "File Sanity Check -> OK"
-
-# Lets load the various universal settings now
-get_value_from_cfg installMode
-INSTALLMODE="${VAL}" ; export INSTALLMODE
-
-get_value_from_cfg installType
-INSTALLTYPE="${VAL}" ; export INSTALLTYPE
-
-get_value_from_cfg installMedium
-INSTALLMEDIUM="${VAL}" ; export INSTALLMEDIUM
-
-get_value_from_cfg packageType
-PACKAGETYPE="${VAL}" ; export PACKAGETYPE
-
-# Check if we are doing any networking setup
-start_networking
-
-# If we are not doing an upgrade, lets go ahead and setup the disk
-if [ "${INSTALLMODE}" = "fresh" ]
-then
-
- # Lets start setting up the disk slices now
- setup_disk_slice
-
- # Disk setup complete, now lets parse WORKINGSLICES and setup the bsdlabels
- setup_disk_label
-
- # Now we've setup the bsdlabels, lets go ahead and run newfs / zfs
- # to setup the filesystems
- setup_filesystems
-
- # Lets mount the partitions now
- mount_all_filesystems
-
- # We are ready to begin extraction, lets start now
- init_extraction
-
- # Check if we have any optional modules to load
- install_components
-
- # Do any localization in configuration
- run_localize
-
- # Save any networking config on the installed system
- save_networking_install
-
- # Now add any users
- setup_users
-
- # Now run any commands specified
- run_commands
-
- # Do any last cleanup / setup before unmounting
- run_final_cleanup
-
- # Unmount and finish up
- unmount_all_filesystems
-
- echo_log "Installation finished!"
- exit 0
-
-else
- # We're going to do an upgrade, skip all the disk setup
- # and start by mounting the target drive/slices
- mount_upgrade
-
- # Start the extraction process
- init_extraction
-
- # Do any localization in configuration
- run_localize
-
- # Now run any commands specified
- run_commands
-
- # Merge any old configuration files
- merge_old_configs
-
- # All finished, unmount the file-systems
- unmount_upgrade
-
- echo_log "Upgrade finished!"
- exit 0
-fi
-
diff --git a/PCBSD/pc-sysinstall/backend/startautoinstall.sh b/PCBSD/pc-sysinstall/backend/startautoinstall.sh
deleted file mode 100755
index a7103fb..0000000
--- a/PCBSD/pc-sysinstall/backend/startautoinstall.sh
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/sh
-# Script which reads the pc-autoinstall.conf directive, and begins the install
-#
-
-# Source our functions scripts
-. ${BACKEND}/functions.sh
-. ${BACKEND}/functions-networking.sh
-. ${BACKEND}/functions-parse.sh
-
-# Check that the config file exists
-if [ ! -e "${1}" ]
-then
- echo "ERROR: Install configuration $1 does not exist!"
- exit 1
-fi
-
-# Set our config file variable
-CONF=${1}
-INSTALL_CFG="/tmp/pc-sysinstall.cfg"
-
-# Check if the config file is on disk as well
-PCCFG=`grep "pc_config:" ${CONF} | grep -v "^#" | sed "s|pc_config: ||g" | sed "s|pc_config:||g"`
-SHUTDOWN_CMD=`grep "shutdown_cmd:" ${CONF} | grep -v "^#" | sed "s|shutdown_cmd: ||g" | sed "s|shutdown_cmd:||g"`
-CONFIRM_INS=`grep "confirm_install:" ${CONF} | grep -v "^#" | sed "s|confirm_install: ||g" | sed "s|confirm_install:||g"`
-
-# Check that this isn't a http / ftp file we need to fetch later
-echo "${PCCFG}" | grep -e "^http" -e "^ftp" > /dev/null 2>/dev/null
-if [ "$?" != "0" ]
-then
- # Copy over the install cfg file, if not done already
- if [ ! -e "${INSTALL_CFG}" ]
- then
- cp ${PCCFG} ${INSTALL_CFG}
- fi
- # Make sure we have the file which was copied into /tmp previously
- if [ ! -e "${INSTALL_CFG}" ]
- then
- echo "Error: ${INSTALL_CFG} is missing! Exiting in 10 seconds..."
- sleep 10
- exit 150
- fi
-else
- # We need to fetch a remote file, check and set any nic options before doing so
- NICCFG=`grep "nic_config:" ${CONF} | grep -v "^#" | sed "s|nic_config: ||g" | sed "s|nic_config:||g"`
- if [ "${NICCFG}" = "dhcp-all" -o "${NICCFG}" = "DHCP-ALL" ]
- then
- # Try to auto-enable dhcp on any nics we find
- enable_auto_dhcp
- else
- echo "Running command \"ifconfig ${NICCFG}\""
- ifconfig ${NICCFG}
- WRKNIC="`echo ${NICCFG} | cut -d ' ' -f 1`"
- NICDNS=`grep "nic_dns:" ${CONF} | grep -v "^#" | sed "s|nic_dns: ||g" | sed "s|nic_dns:||g"`
- NICGATE=`grep "nic_gateway:" ${CONF} | grep -v "^#" | sed "s|nic_gateway: ||g" | sed "s|nic_gateway:||g"`
-
- echo "nameserver ${NICDNS}" >/etc/resolv.conf
-
- echo "Running command \"route add default ${NICGATE}\""
- route add default ${NICGATE}
- fi
-
- get_nic_mac "$WRKNIC"
- nic_mac="${FOUNDMAC}"
-
- PCCFG=`echo ${PCCFG} | sed "s|%%NIC_MAC%%|${nic_mac}|g"`
-
- # Now try to fetch the remove file
- echo "Fetching cfg with: \"fetch -o ${INSTALL_CFG} ${PCCFG}\""
- fetch -o "${INSTALL_CFG}" "${PCCFG}"
- if [ "$?" != "0" ]
- then
- echo "ERROR: Failed to fetch ${PCCFG}, install aborted"
- exit 150
- fi
-
-fi
-
-# If we end up with a valid config, lets proccede
-if [ -e "${INSTALL_CFG}" ]
-then
-
- if [ "${CONFIRM_INS}" != "no" -a "${CONFIRM_INS}" != "NO" ]
- then
- echo "Type in 'install' to begin automated installation. Warning: Data on target disks may be destroyed!"
- read tmp
- case $tmp in
- install|INSTALL) ;;
- *) echo "Install canceled!" ; exit 150 ;;
- esac
- fi
-
- ${PROGDIR}/pc-sysinstall -c ${INSTALL_CFG}
- if [ "$?" = "0" ]
- then
- if [ ! -z "$SHUTDOWN_CMD" ]
- then
- ${SHUTDOWN_CMD}
- else
- echo "SUCCESS: Installation finished! Press ENTER to rebooot."
- read tmp
- shutdown -r now
- fi
- else
- echo "ERROR: Installation failed, press ENTER to drop to shell."
- read tmp
- /bin/csh
- fi
-else
- echo "ERROR: Failed to get /tmp/pc-sysinstall.cfg for automated install..."
- exit 150
-fi
OpenPOWER on IntegriCloud