diff options
-rwxr-xr-x | etc/rc.d/growfs | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/etc/rc.d/growfs b/etc/rc.d/growfs index d296050..33cfc5f 100755 --- a/etc/rc.d/growfs +++ b/etc/rc.d/growfs @@ -46,6 +46,20 @@ start_cmd="growfs_start" stop_cmd=":" rcvar="growfs_enable" +growfs_get_diskdev () +{ + sysctl -b kern.geom.conftxt | + while read line + do + local _type=$(echo ${line} | awk '{printf $2}') + local _dev=$(echo ${line} | awk '{printf $3}') + if [ "${_type}" = "DISK" -a -n "$(echo ${1} | grep ${_dev})" ]; then + echo -n ${_dev} + break + fi + done +} + growfs_start () { echo "Growing root partition to fill device" @@ -67,6 +81,11 @@ growfs_start () search=$rawdev fi + diskdev=$(growfs_get_diskdev ${search}) + if [ -z "${diskdev" ]; then + diskdev=${rootdev} + fi + sysctl -b kern.geom.conftxt | awk ' { lvl=$1 @@ -96,7 +115,7 @@ growfs_start () exit 0 } }' dev="$search" - gpart commit "$rootdev" + gpart commit "$diskdev" growfs -y /dev/"$rootdev" } |