Build the image

Everything on this page runs on your own workstation.

You do not need archiso, or any Arch packages at all: the build runs inside an archlinux container, so the host’s own distribution does not matter. You need rootless Podman, just, about 8 GB of free disk space, and an internet connection.

Because the image holds both an x86_64 and an ARM system, whichever half does not match your own machine is built under qemu-user emulation, so you also need the static qemu-user emulators registered with binfmt_misc. On Arch Linux, that is all of:

[bash]: Run this on your workstation:
sudo pacman -S --needed podman just git qemu-user-static qemu-user-static-binfmt

On Debian, Ubuntu or Fedora, the emulator package is called qemu-user-static.

Building on macOS

Because the work happens inside a container, a Mac builds the image too – this is tested, not theoretical. Install the tools and start a Podman VM with enough memory to do the build:

brew install podman just
podman machine init --cpus 4 --memory 3072
podman machine start

On Apple Silicon the two halves swap roles: the Raspberry Pi image builds natively and the x86_64 one runs under emulation, which is the reverse of what happens on a Linux PC. The rest of this page is unchanged, except for writing the image to the stick.

Build

[bash]: Run this on your workstation:
git clone https://github.com/EnigmaCurry/boomstick.git
cd boomstick
just build-usb

The build takes no input, because there is nothing to configure yet: the result is the same for everybody. The first run pulls the archlinux container image and downloads about 1 GB of packages; later builds reuse a package cache and finish in a few minutes. You end up with out/arch-usb-<date>-x86_64+rpi5.img, about 2.7 GB.

tip

If you only ever install one kind of machine, just build (x86_64 only) and just build-rpi5 (Raspberry Pi 5 only) produce smaller images that need no emulation on a matching host.

Write it to a USB stick

Find your stick with lsblk, then write the image to it. Double check the device name, because this erases the whole stick:

[bash]: Run this on your workstation:
sudo dd if=out/arch-usb-<date>-x86_64+rpi5.img \
  of=/dev/sdX bs=4M status=progress oflag=sync

On macOS the device names and flags differ: find the disk with diskutil list, then unmount and write it to the raw device, which is much faster than the buffered one:

diskutil unmountDisk /dev/diskN
sudo dd if=out/arch-usb-<date>-x86_64+rpi5.img of=/dev/rdiskN bs=4m

The image only has to be built and written once. Everything that makes the stick yours is configuration, and changing it later never requires another build. That starts on the next page, SSH keys, WiFi and the webhook.

// settings
theme:
fx: