Update install.sh

This commit is contained in:
proledatarian 2022-02-13 15:18:55 +00:00
parent 0d435e36a8
commit 5c607126ff
1 changed files with 144 additions and 0 deletions

144
install.sh Normal file
View File

@ -0,0 +1,144 @@
#!/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
# Get variable from filesystem.
part=$(</tmp/disk)2
# Encrypting partition.
echo "Encrypting system partition."
echo -e
cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/$part &&
echo "Partition successfully encrypted."
echo -e
# Opening encrypted partition and mounting at /dev/mapper/lvm.
echo "Opening and mounting encrypted partition."
echo -e
cryptsetup luksOpen /dev/$part lvm &&
echo "Partition opened and mounted:"
echo -e
disk="${part%?}"
lsblk | grep "$disk"
echo -e
# Creating physical volume.
echo "Creating physical volume."
pvcreate /dev/mapper/lvm &&
echo -e
# Creating volume group "main".
echo "Creating volume group."
vgcreate main /dev/mapper/lvm &&
echo -e
# Creating logical volumes.
echo "Creating logical volumes for root and home."
echo -e
# Lol, this part:
part=$(</tmp/disk)2 && i=( $(lsblk | grep "$part" | tail -n+1 | awk '{print $4}') ) && size="${i%?}"
echo "Your system partition has a size of $size GB."
echo "What size should your root partition have?"
read root
echo "Creating a $root GB root volume."
echo -e
lvcreate -L ${root}G -n root main &&
lvcreate -l 100%FREE -n home main &&
echo -e
echo "Logical volumes successfully created."
echo -e
echo "Creating the filesystem."
echo -e
boot=$(</tmp/disk)1
mkfs.fat -F 32 -n UEFI /dev/$boot &&
echo "Filesystem for boot successfully created."
echo -e
mkfs.ext4 -L root /dev/mapper/main-root &&
echo "Filesystem for root successfully created."
echo -e
mkfs.ext4 -L home /dev/mapper/main-home &&
echo "Filesystem for home successfully created."
echo -e
echo "Mounting.."
echo -e
mount /dev/mapper/main-root /mnt
mkdir /mnt/boot
mkdir /mnt/home
mount /dev/$boot /mnt/boot
mount /dev/mapper/main-home /mnt/home
echo "Mounting complete."
echo -e
lsblk
echo -e