Update install.sh
This commit is contained in:
parent
0d435e36a8
commit
5c607126ff
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue