archinstall/prep-BTRFS-UEFI-Encrypted.sh

73 lines
2.1 KiB
Bash

#!/bin/bash
#variable=$(dialog --title "" 3>&1 1>&2 2>&3 3>&-)
#pacman -S dialog
#device_to_install_to=$(dialog --title "Device" --inputbox "Write the Path to the device to install to (eg. /dev/vda)" 3>&1 1>&2 2>&3 3>&-)
localectl set-keymap de-latin1-nodeadkeys
timedatectl set-timezone Europe/Berlin
timedatectl set-ntp yes
echo "Choose Device: 1) /dev/sda 2) /dev/vda 3) Other Path"
read choise
if [ $choise == 1 ];then
path="/dev/sda"
part1="/dev/sda1"
part2="/dev/sda2"
elif [ $choise == 2 ];then
path="/dev/vda"
part1="/dev/vda1"
part2="/dev/vda2"
elif [ $choise == 3 ];then
read -p "Enter Device-Path: " path
part1="$path"1
part2="$path"2
else
echo "Path not recognized, aborting"
exit 1
fi
cryptrootname="cryptroot"
parted --script $path \
mklabel gpt \
mkpart "efi" fat32 1MiB 501MiB \
set 1 esp on \
mkpart "root" btrfs 501MiB 100%
mkfs.vfat $part1 -n EFI
cryptsetup --cipher aes-xts-plain64 --hash sha512 --use-random --verify-passphrase luksFormat $part2
cryptsetup luksOpen $part2 $cryptrootname
mkfs.btrfs /dev/mapper/$cryptrootname -L arch
mount /dev/mapper/$cryptrootname /mnt
cd /mnt
btrfs subvolume create @
btrfs subvolume create @home
btrfs subvolume create @var
btrfs subvolume create @log
btrfs subvolume create @cache
cd ~
umount -R /mnt
mount -o noatime,compress=zstd,space_cache=v2,discard=async,subvol=@ /dev/mapper/$cryptrootname /mnt
mkdir -p /mnt/{home,boot,var}
mount -o noatime,compress=zstd,space_cache=v2,discard=async,subvol=@home /dev/mapper/$cryptrootname /mnt/home
mount -o noatime,compress=zstd,space_cache=v2,discard=async,subvol=@var /dev/mapper/$cryptrootname /mnt/var
mkdir -p /mnt/var/{cache,log}
mount -o noatime,compress=zstd,space_cache=v2,discard=async,subvol=@log /dev/mapper/$cryptrootname /mnt/var/log
mount -o noatime,compress=zstd,space_cache=v2,discard=async,subvol=@cache /dev/mapper/$cryptrootname /mnt/var/cache
mount $part1 /mnt/boot
pacstrap /mnt base linux-firmware vim git btrfs-progs
genfstab -U /mnt >> /mnt/etc/fstab
ln -sf /run/systemd/resolve/stub-resolv.conf /mnt/etc/resolv.conf
arch-chroot /mnt