Update install.sh
This commit is contained in:
		
							
								
								
									
										144
									
								
								install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								install.sh
									
									
									
									
									
										Normal 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 | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user