summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas Affonso Xavier de Morais2014-07-11 17:13:19 +0200
committerMichael Pereira Neves2014-10-28 14:14:49 +0100
commit5e57195dfd036ba97ca05c1145eb592674ea6639 (patch)
tree72c6fb3a7c195ee69b8d746555fccb1e128c1e1b
parent[partitioner] adapting script to the new config file. not working yet. (diff)
downloadtm-scripts-5e57195dfd036ba97ca05c1145eb592674ea6639.tar.gz
tm-scripts-5e57195dfd036ba97ca05c1145eb592674ea6639.tar.xz
tm-scripts-5e57195dfd036ba97ca05c1145eb592674ea6639.zip
[partitioner] lacking NO_OVERRIDE option and AUTOMATIC_PARTITIONING
-rw-r--r--remote/modules/partitioner/config19
-rwxr-xr-xremote/modules/partitioner/partitioner.sh145
2 files changed, 88 insertions, 76 deletions
diff --git a/remote/modules/partitioner/config b/remote/modules/partitioner/config
index 2d547e1e..f2e20ca8 100644
--- a/remote/modules/partitioner/config
+++ b/remote/modules/partitioner/config
@@ -1,10 +1,17 @@
#Partitions
-SLX_PARTITION_TYPE={GPT|msdos} #Create GPT or msdos style partition table
-SLX_CHOOSEN_DISK={sda} #Choose disk to partition
-SLX_AUTOMATIC_PARTITIONING={yes|no} #Don't be interactive, use carefully
-SLX_OVERRIDE_PARTITIONS={yes|no} #Override existing partitions
-SLX_PARTITION_TABLE=' #Partition table in the format: ID,Size,Mountpoint,Bootable
+#SLX_PARTITION_TYPE='GPT'
+#SLX_CHOOSEN_DISK='sda'
+SLX_AUTOMATIC_PARTITIONING='no'
+SLX_OVERRIDE_PARTITIONS='no'
+SLX_PARTITION_TABLE='
44,10G,/tmp
43,10G,/boot,bootable
42,10G,/cache
-41,10G,/home' \ No newline at end of file
+41,10G,/home
+40,5G,/teste'
+
+#Create GPT or msdos style partition table
+#Choose disk to partition
+#Don't be interactive, use carefully
+#Override existing partitions
+#Partition table in the format: ID,Size,Mountpoint,Bootable \ No newline at end of file
diff --git a/remote/modules/partitioner/partitioner.sh b/remote/modules/partitioner/partitioner.sh
index 6f0a76e1..f03a8b76 100755
--- a/remote/modules/partitioner/partitioner.sh
+++ b/remote/modules/partitioner/partitioner.sh
@@ -1,4 +1,6 @@
-#!/bin/sh
+#!/bin/bash
+
+set -e
PARTITIONSPATH="/proc/partitions"
CONFIGPATH="./config"
@@ -9,24 +11,6 @@ BLOCKSIZE=1024
. $CONFIGPATH
# testing if the sizes and ID's of the disk is defined in the config file
-declare -A PARTTBL
-COUNTER=1
-if [ -n "$SLX_PARTITION_TABLE" ]; then
- for PARTITION in $SLX_PARTITION_TABLE; do
- IFS=,
- set $PARTITION
- if [ $COUNTER -eq 4 ]; then
- COUNTER=$((COUNTER+1))
- fi
- PARTTBL["$SLX_CHOOSEN_DISK$COUNTER/id"]=$1
- PARTTBL["$SLX_CHOOSEN_DISK$COUNTER/size"]=$(echo $2 | egrep -o "[0-9]*")
- PARTTBL["$SLX_CHOOSEN_DISK$COUNTER/mountpoint"]=$3
- PARTTBL["$SLX_CHOOSEN_DISK$COUNTER/bootable"]=$4
- COUNTER=$(($COUNTER+1))
- done
-fi
-
-NPARTS=$(($COUNTER-1))
# picking disk that will be used
DISKS=$(cat $PARTITIONSPATH | tr -s ' ' | cut -d ' ' -f5 | grep -e "[a-z]$")
@@ -82,14 +66,37 @@ if [ -z "$SLX_CHOOSEN_DISK" ]; then
fi
fi
+declare -A PARTTBL
+COUNTER=1
+if [ -n "$SLX_PARTITION_TABLE" ]; then
+ for PARTITION in $SLX_PARTITION_TABLE; do
+ IFS=,
+ set $PARTITION
+ if [ $COUNTER -eq 4 ]; then
+ COUNTER=$(($COUNTER+1))
+ fi
+ PARTTBL["$SLX_CHOOSEN_DISK$COUNTER/id"]=$1
+ PARTTBL["$SLX_CHOOSEN_DISK$COUNTER/size"]=$(echo $2 | egrep -o "[0-9]*")
+ PARTTBL["$SLX_CHOOSEN_DISK$COUNTER/mountpoint"]=$3
+ if [ -e $4 ]; then
+ PARTTBL["$SLX_CHOOSEN_DISK$COUNTER/bootable"]=0
+ else
+ PARTTBL["$SLX_CHOOSEN_DISK$COUNTER/bootable"]=1
+ fi
+ COUNTER=$(($COUNTER+1))
+ done
+fi
+unset IFS
+
+
DISKSIZE=$(($(cat $PARTITIONSPATH | grep -e $SLX_CHOOSEN_DISK$ | tr -s ' ' | cut -d ' ' -f4)*$BLOCKSIZE))
PARTSSIZE=0
-for (( i = 1; i <= $NPARTS; i++ )); do
- PARTSSIZE=$PARTSSIZE+$PARTTBL["$SLX_CHOOSEN_DISK$i/size"]
+for (( i = 1; i < $COUNTER; i++ )); do
+ PARTSSIZE=$PARTSSIZE+${PARTTBL["$SLX_CHOOSEN_DISK$i/size"]}
done
-echo "$DISKSIZE -lt $(($PARTSSIZE*1024*1024*1024+$NPARTS*1024*1024))"
-if [ $DISKSIZE -lt $(($PARTSSIZE*1024*1024*1024+$NPARTS*1024*1024)) ]; then
+echo "$DISKSIZE -lt $(($PARTSSIZE*1024*1024*1024+$COUNTER*1024*1024))"
+if [ $DISKSIZE -lt $(($PARTSSIZE*1024*1024*1024+$COUNTER*1024*1024)) ]; then
dialog --msgbox "ERROR: Insufficient space in disk /dev/$SLX_CHOOSEN_DISK." 6 40
return 1
fi
@@ -140,73 +147,71 @@ SECTORSIZE=512
# delete partition table
if [ $SLX_OVERRIDE_PARTITIONS = "yes" ]; then
- sgdisk -Z /dev/$SLX_CHOOSEN_DISK > /dev/null 2> /dev/null
+ :
+ # sgdisk -Z /dev/$SLX_CHOOSEN_DISK > /dev/null 2> /dev/null
fi
# constructing the sfdisk input file
-START2=$(($START1+$SIZE1))
-SIZE2=$(($HOMESIZE/$SECTORSIZE))
-
echo "unit: sectors
-
"> /tmp/partitiontable.tmp
START=$((1*1024*1024/$SECTORSIZE))
-for (( i = 1; i < $NPARTS; i++ )); do
+for (( i = 1; i < $COUNTER; i++ )); do
if [ $i -ne 4 ]; then
SIZE=$((${PARTTBL["$SLX_CHOOSEN_DISK$i/size"]}*1024*1024*1024/$SECTORSIZE))
- ID=${PARTTBL["$SLX_CHOOSEN_DISK$i/size"]}
- if [ -n ${PARTTBL["$SLX_CHOOSEN_DISK$i/bootable"]} ]; then
- echo "/dev/"$SLX_CHOOSEN_DISK$i" : start= "$START", size= "$SIZE", Id= "$ID", bootable
- " >> /tmp/partitiontable.tmp
+ ID=${PARTTBL["$SLX_CHOOSEN_DISK$i/id"]}
+ if [ ${PARTTBL["$SLX_CHOOSEN_DISK$i/bootable"]} -eq 1 ]; then
+ echo "/dev/"$SLX_CHOOSEN_DISK$i" : start= "$START", size= "$SIZE", Id= "$ID", bootable " >> /tmp/partitiontable.tmp
else
- echo "/dev/"$SLX_CHOOSEN_DISK$i" : start= "$START", size= "$SIZE", Id= "$ID"
- " >> /tmp/partitiontable.tmp
+ echo "/dev/"$SLX_CHOOSEN_DISK$i" : start= "$START", size= "$SIZE", Id= "$ID >> /tmp/partitiontable.tmp
fi
START=$(($START+$SIZE+1*1024*1024/$SECTORSIZE))
else
- echo "/dev/"$SLX_CHOOSEN_DISK$i" : start= "$START", size= "$(($DISKSIZE/$SECTORSIZE-1))", Id= "5"
- " >> /tmp/partitiontable.tmp
+ echo "/dev/"$SLX_CHOOSEN_DISK$i" : start= "$START", size= "$(($DISKSIZE/$SECTORSIZE-1))", Id= 5" >> /tmp/partitiontable.tmp
START=$(($START+1*1024*1024/$SECTORSIZE))
fi
done
-sfdisk -q -f /dev/$SLX_CHOOSEN_DISK < /tmp/partitiontable.tmp > /dev/null
+# sfdisk -q -f /dev/$SLX_CHOOSEN_DISK < /tmp/partitiontable.tmp > /dev/null
rm -f /tmp/partitiontable.tmp
+DIALOGSTR="New partitions created:\n\n"
if [ $SLX_PARTITION_TYPE = GPT ]; then
- sgdisk -g /dev/$SLX_CHOOSEN_DISK\
- -t 1:"$SCRATCHID"000000-0000-0000-0000-000000000000\
- -t 2:"$HOMEID"000000-0000-0000-0000-000000000000\
- -t 3:"$DNBD3ID"000000-0000-0000-0000-000000000000\
- -t 4:"$BOOTID"000000-0000-0000-0000-000000000000 > /dev/null
-
- DIALOGSTR="New partitions created:\n\n"
- DIALOGSTR=$DIALOGSTR"SCRATCH ("/dev/$SLX_CHOOSEN_DISK"1)\n"
- DIALOGSTR=$DIALOGSTR" GUID: "$SCRATCHID"000000-0000-0000-0000-000000000000\n"
- DIALOGSTR=$DIALOGSTR" Size: $SCRATCHSIZE Bytes ($SCRATCHSIZEGB GB)\n"
- DIALOGSTR=$DIALOGSTR"HOME ("/dev/$SLX_CHOOSEN_DISK"2)\n"
- DIALOGSTR=$DIALOGSTR" GUID: "$HOMEID"000000-0000-0000-0000-000000000000\n"
- DIALOGSTR=$DIALOGSTR" Size: $HOMESIZE Bytes ($HOMESIZEGB GB)\n"
- DIALOGSTR=$DIALOGSTR"DNBD3 ("/dev/$SLX_CHOOSEN_DISK"3)\n"
- DIALOGSTR=$DIALOGSTR" GUID: "$DNBD3ID"000000-0000-0000-0000-000000000000\n"
- DIALOGSTR=$DIALOGSTR" Size: $DNBD3SIZE Bytes ($DNBD3SIZEGB GB)\n"
- DIALOGSTR=$DIALOGSTR"BOOT ("/dev/$SLX_CHOOSEN_DISK"4)\n"
- DIALOGSTR=$DIALOGSTR" GUID: "$BOOTID"000000-0000-0000-0000-000000000000\n"
- DIALOGSTR=$DIALOGSTR" Size: $BOOTSIZE Bytes ($BOOTSIZEGB GB)\n"
+ # sgdisk -g /dev/$SLX_CHOOSEN_DISK\
+ # -t 1:"$SCRATCHID"000000-0000-0000-0000-000000000000\
+ # -t 2:"$HOMEID"000000-0000-0000-0000-000000000000\
+ # -t 3:"$DNBD3ID"000000-0000-0000-0000-000000000000\
+ # -t 4:"$BOOTID"000000-0000-0000-0000-000000000000 > /dev/null
+
+ for (( i = 1; i < $COUNTER; i++ )); do
+ if [ $i -ne 4 ]; then
+ SIZE=$((${PARTTBL["$SLX_CHOOSEN_DISK$i/size"]}*1024*1024*1024))
+ ID=${PARTTBL["$SLX_CHOOSEN_DISK$i/id"]}
+ MOUNTPOINT=${PARTTBL["$SLX_CHOOSEN_DISK$i/mountpoint"]}
+ DIALOGSTR=$DIALOGSTR$MOUNTPOINT" (/dev/"$SLX_CHOOSEN_DISK$i")\n"
+ DIALOGSTR=$DIALOGSTR" GUID: "$ID"000000-0000-0000-0000-000000000000\n"
+ DIALOGSTR=$DIALOGSTR" Size: "$SIZE" Bytes ("${PARTTBL["$SLX_CHOOSEN_DISK$i/size"]}" GB)\n"
+ fi
+ done
else
- DIALOGSTR="New partitions created:\n\n"
- DIALOGSTR=$DIALOGSTR"SCRATCH ("/dev/$SLX_CHOOSEN_DISK"1)\n"
- DIALOGSTR=$DIALOGSTR" ID: $SCRATCHID\n"
- DIALOGSTR=$DIALOGSTR" Size: $SCRATCHSIZE Bytes ($SCRATCHSIZEGB GB)\n"
- DIALOGSTR=$DIALOGSTR"HOME ("/dev/$SLX_CHOOSEN_DISK"2)\n"
- DIALOGSTR=$DIALOGSTR" ID: $HOMEID\n"
- DIALOGSTR=$DIALOGSTR" Size: $HOMESIZE Bytes ($HOMESIZEGB GB)\n"
- DIALOGSTR=$DIALOGSTR"DNBD3 ("/dev/$SLX_CHOOSEN_DISK"3)\n"
- DIALOGSTR=$DIALOGSTR" ID: $DNBD3ID\n"
- DIALOGSTR=$DIALOGSTR" Size: $DNBD3SIZE Bytes ($DNBD3SIZEGB GB)\n"
- DIALOGSTR=$DIALOGSTR"BOOT ("/dev/$SLX_CHOOSEN_DISK"4)\n"
- DIALOGSTR=$DIALOGSTR" ID: $BOOTID\n"
- DIALOGSTR=$DIALOGSTR" Size: $BOOTSIZE Bytes ($BOOTSIZEGB GB)\n"
+ for (( i = 1; i < $COUNTER; i++ )); do
+ if [ $i -lt 4 ]; then
+ SIZE=$((${PARTTBL["$SLX_CHOOSEN_DISK$i/size"]}*1024*1024*1024))
+ ID=${PARTTBL["$SLX_CHOOSEN_DISK$i/id"]}
+ MOUNTPOINT=${PARTTBL["$SLX_CHOOSEN_DISK$i/mountpoint"]}
+ DIALOGSTR=$DIALOGSTR$MOUNTPOINT" (/dev/"$SLX_CHOOSEN_DISK$i")\n"
+ DIALOGSTR=$DIALOGSTR" Type: Primary\n"
+ DIALOGSTR=$DIALOGSTR" ID: "$ID"\n"
+ DIALOGSTR=$DIALOGSTR" Size: "$SIZE" Bytes ("${PARTTBL["$SLX_CHOOSEN_DISK$i/size"]}" GB)\n"
+ elif [ $i -gt 4 ]; then
+ SIZE=$((${PARTTBL["$SLX_CHOOSEN_DISK$i/size"]}*1024*1024*1024))
+ ID=${PARTTBL["$SLX_CHOOSEN_DISK$i/id"]}
+ MOUNTPOINT=${PARTTBL["$SLX_CHOOSEN_DISK$i/mountpoint"]}
+ DIALOGSTR=$DIALOGSTR$MOUNTPOINT" (/dev/"$SLX_CHOOSEN_DISK$i")\n"
+ DIALOGSTR=$DIALOGSTR" Type: Logical\n"
+ DIALOGSTR=$DIALOGSTR" ID: "$ID"\n"
+ DIALOGSTR=$DIALOGSTR" Size: "$SIZE" Bytes ("${PARTTBL["$SLX_CHOOSEN_DISK$i/size"]}" GB)\n"
+ fi
+ done
fi
dialog --msgbox "$DIALOGSTR" 0 0 \ No newline at end of file