easy-arch is a bash script made in order to boostrap a basic but modern Arch Linux environment, with a few cherry-picked features:
- BTRFS bootable snapshots from GRUB
- LUKS2 encryption
- ZRAM as swap
- systemd-oomd
- Autodetect VMs and provide guest tools (if available)
- Download an Arch Linux ISO from here
- Flash the ISO onto an USB Flash Drive
- Boot the live environment
- Set the keyboard layout by using
loadkeys <kblayout>
- Connect to the internet
- Run this
bash <(curl -sL bit.ly/easy-arch)
Partition Number | Label | Size | Mountpoint | Filesystem |
---|---|---|---|---|
1 | ESP | 512 MiB | /boot/ | FAT32 |
2 | Cryptroot | Rest of the disk | / | BTRFS Encrypted (LUKS2) |
The partitions layout is simple and it's inspired by this section of the Arch Linux Wiki. As you can see there're only two partitions:
- A FAT32, 512MiB sized, mounted at
/boot/
for the ESP. - A LUKS2 encrypted container, which takes the rest of the disk space, mounted at
/
for the rootfs.
Subvolume Number | Subvolume Name | Mountpoint |
---|---|---|
1 | @ | / |
2 | @home | /home |
3 | @root | /root |
4 | @srv | /srv |
5 | @snapshots | /.snapshots |
6 | @var_log | /var/log |
7 | @var_pkgs | /var/cache/pacman/pkg |
The BTRFS subvolumes layout follows the traditional and suggested layout used by Snapper, you can find it here. Here's a brief explanation of the BTRFS layout I chose:
@
mounted at/
@home
mounted at/home
@root
mounted at/root
@srv
mounted at/srv
@snapshots
mounted at/.snapshots
@var_log
mounted at/var/log
@var_pkgs
mounted at/var/cache/pacman/pkg