#!/bin/bash
# ---------------------------------------------------------------------------- #
## \file parted.sh
## \author Sebastien Beaugrand
## \sa http://beaugrand.chez.com/
## \copyright CeCILL 2.1 Free Software license
# ---------------------------------------------------------------------------- #
# parted.sh 4 40 8 8
# sudo parted /dev/sdb rm 1
# sudo parted /dev/sdb unit s mkpart primary ext2 2048 8388607
# sudo parted /dev/sdb unit s mkpart primary ext2 8388608 92274687
# sudo parted /dev/sdb unit s mkpart primary ext2 92274688 109051903
# sudo parted /dev/sdb unit s mkpart primary ext2 109051904 125927423
# max = 125927423
# ---------------------------------------------------------------------------- #
dev=/dev/sdb
n=`sudo parted $dev print | grep -c "^ [1-9]"`
m=`sudo parted /dev/sdb unit s print | grep "Disk /" | sed 's/[^0-9]//g'`
((m--))
for ((i = n; i > 0; i--)); do
echo "sudo parted $dev rm $i"
done
i=2048
k=0
for a in $*; do
j=`echo $k $a | awk '{ print ($1 + $2) * 1024 * 2048 - 1 }'`
if ((j > m)); then
echo "sudo parted $dev unit s mkpart primary ext2 $i $j"
echo "error: max = $m"
exit 1
fi
if ((j + 1024 * 2048 > m)); then
j=$m
fi
echo "sudo parted $dev unit s mkpart primary ext2 $i $j"
((i = j + 1))
((k = k + a))
done
echo "max = $m"
if ((j < m)); then
echo "reste = $((m - j))"
fi
exit 0