[Guide] How To Set Up a Raspberry Pi 4 running Archlinux 64-bit (AArch64) with Full Disk Encryption, USB Boot (No SD-Card) and btrfs root
gist.github.com/XSystem252/d274cd0af836a72ff4...Posted Dec 20, 2020, 6:06 PM UTC
183
Posted Dec 20, 2020, 6:06 PM UTC
Is it possible to set things up so that the boot filesystem stays on the SD card but when (or after) it boots the root is on a USB disk? After it's booted it wouldn't use the boot filesystem except like it does for now, which I'm assuming is only during updates/upgrades. The boot filesystem would be mounted on /boot on the USB disk, and / would be the USB disk.
I've spent the last few days setting up 64-bit Archlinux (AArch64) on my Raspberry Pi 4 Model B with Full USB Boot (no SD card necessary for boot), Encryption for the root filesystem (local and remote ssh unlock) as well as using btrfs as the root filesystem.
Putting it all together took quite some effort, and I decided to put together a comprehensive step-by-step guide on how to get there, including the EEPROM update.
Even if you're only interested in parts of this setup, I hope this guide will prove useful.
I only skimmed but if you are installing to the SD card first in order to by running from AArch64 to do the rest, note that https://aur.archlinux.org/packages/qemu-user-static/ with on of the binfmt packages lets you chroot into the aarch64 image.
I don't bother with external USB (I prefer using the sdcard, some of the newer ones are quite snappy). I can deploy an sdcard from my x86_64 desktop that's 100% ready. I also like to install to a series of btrfs subvols (all but the last marked as ro), so I can check what's changed since I built the image. The subvols are
@0-image,@1-update,@2-puppet,@3-live, the the final being marked as the default.