Environment Setup

Once you have booted the archiso, follow the instructions, and use iwctl to set up the network (station list to see the available devices, then station <wlan0> connect <network-name> to connect).

Change the keyboard to the one that matches your machine as per the archlinux instructions.

Disk setup

Using parted we are going to create the following layout:

Partition Num Description Size Format
1 EFI Boot 512MB fat32
2 Boot 600MB
3 Root The Rest LVM

The final partition will be encrypted and split into a system partition, a swap partion, and a home partition:

Volume Num Description Size Format
1 Swap 8GB swap
2 Root 100GB btrfs
3 Home Rest btrfs

Use parted to partition the disk with a boot partition and a large partition for everything else (to be encrypted):

parted /dev/nvme0n1
mklabel gpt
# EFI boot partition
mkpart eps fat32 1MiB 200MiB
set 1 boot on
name 1 efi
# Boot partition
mkpart primary 200MiB 800MiB
name 2 boot
# Root partition
mkpart primary 800MiB 100%
set 3 lvm on
name 3 lvm
# check it's all right
print
# quit
quit

And now we start encryption and create the filesystems

cryptsetup luksFormat /dev/nvme0n1p3
cryptsetup open /dev/nvme0n1p3 cryptlvm
# prepare volume group
pvcreate /dev/mapper/cryptlvm
vgcreate MainVolGroup /dev/mapper/cryptlvm
# prepare logical volumes (partitions)
lvcreate -L 8G MainVolGroup -n swap
lvcreate -L 100G MainVolGroup -n root
lvcreate -l 100%FREE MainVolGroup -n home # NB small "l"
# format filesystems
mkfs.btrfs -L root /dev/MainVolGroup-root
mkfs.btrfs -L home /dev/MainVolGroup-home
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mkswap /dev/MainVolGroup-swap
# mount FS and create home link
swapon /dev/MainVolGroup/swap
mount /dev/MainVolGroup-root /mnt
mkdir -p /mnt/{home,boot}
mount /dev/MainVolGroup-home /mnt/home
mount /dev/nvme0n1p2 /mnt/boot
mkdir /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi

Bootstrap the installation process

pacstrap -K /mnt base base-devel linux linux-firmware \\
								 sof-firmware iwd lvm2 btrfs-progs \\
							   vim man-db man-pages texinfo \\
                 polkit efibootmgr grub

Setting up the bootloader