59 lines
1.0 KiB
Bash
59 lines
1.0 KiB
Bash
#!/bin/bash
|
|
|
|
#PS3="Please select a disk to partition:"
|
|
echo "Please select a disk to partition:"
|
|
|
|
# Don't separate values by space.
|
|
IFS=$'\n'
|
|
|
|
# Set variable containing name and size of all disks.
|
|
disks=( $(lsblk -d | tail -n+2 | awk '{print $1" "$4}') )
|
|
|
|
# Declare the array.
|
|
declare -a disks
|
|
|
|
# Select value on array.
|
|
select disk in ${disks[*]}
|
|
do
|
|
|
|
# Separate values by spaces.
|
|
IFS=' '
|
|
|
|
# Create new variable of selection.
|
|
array=($disk)
|
|
dev="${array[0]}"
|
|
echo -e
|
|
|
|
# Starting partitioning.
|
|
echo "Partitioning /dev/$dev.."
|
|
echo -e
|
|
|
|
# Clearing partition table of selected disk.
|
|
echo "Clearing existing partitioning table."
|
|
sgdisk -Z /dev/$dev &&
|
|
echo -e
|
|
|
|
# Creating boot partition.
|
|
size="${array[1]%?}"
|
|
echo "Creating boot partition of 256 MB."
|
|
sgdisk -n 1:0:+256M /dev/$dev &&
|
|
|
|
# Setting type for EFI.
|
|
sgdisk -t 1:ef00 /dev/$dev &&
|
|
echo -e
|
|
|
|
# Creating system partition.
|
|
echo "Creating system partition of $size GB."
|
|
sgdisk -n 2:0:0 /dev/$dev
|
|
echo -e
|
|
|
|
# Print partitions.
|
|
echo "This is your new partition table:"
|
|
lsblk | grep "$dev"
|
|
|
|
echo $dev > /tmp/disk
|
|
|
|
# Exit.
|
|
break
|
|
done
|