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/boomstick-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/boomstick-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/boomstick-usb-<date>-x86_64+rpi5.img of=/dev/rdiskN bs=4m

Everything that makes the stick yours is configuration, and changing that later never requires another build – so this is the only time you have to think about the image at all for a good while. (It is not quite “once, ever”: see Changing it later for the handful of things that are frozen into an image.) Configuration starts on the next page, SSH keys, WiFi and the webhook.

// settings
theme:
fx: