#!/bin/sh if [ $(id -u) -ne 0 ] then echo "Please run as root" exit fi SCRIPTPATH=$(dirname "$(readlink -f "$0")") if [ -z $1 ]; then echo "Which drive?" read DRIVE else export DRIVE=$1 fi export BASE=$(basename $DRIVE) export PART="/dev/$(basename $(echo /sys/class/block/$BASE/$BASE* | \ xargs -n1 echo | sed 1q | rev | cut -c 2- | rev ))" # List all partitions of device, get first one, remove last char. umount $DRIVE* if [ ! -e installed ]; then parted $DRIVE mklabel gpt parted $DRIVE mkpart fat32 0 512M parted $DRIVE set 1 esp on parted $DRIVE mkpart ext4 512M -30G parted $DRIVE mkpart ntfs -30G -0 yes | mkfs.vfat ${PART}1 yes | mkfs.ntfs ${PART}3 cryptsetup luksFormat ${PART}2 cryptsetup open ${PART}2 cryptlvm pvcreate /dev/mapper/cryptlvm vgcreate Crypt /dev/mapper/cryptlvm lvcreate -L 16G Crypt -n swap mkswap /dev/Crypt/swap lvcreate -L 32G Crypt -n root mkfs.ext4 /dev/Crypt/root mount /dev/Crypt/root /mnt mkdir /mnt/efi mount ${PART}1 /mnt/efi swapon /dev/Crypt/swap pacstrap /mnt base || exit 1 genfstab -U /mnt >> /mnt/etc/fstab cp -r . /mnt sed "s|%%UUID%%|$(blkid ${PART}2)|" src/etc/default/grub.orig > src/etc/default/grub touch installed else cryptsetup open ${PART}2 cryptlvm mount /dev/Crypt/root /mnt mount ${PART}1 /mnt/efi fi arch-chroot /mnt << EOF cd dotfiles sh build.sh EOF echo "DONE! You should set passwords, move around ssh keys, etc."