install
# Prepare the MicroSD Card
# - use DOS MBR not GPT
cfdisk /dev/sdX ## get drive letter from fdisk -l
# make 2 partitions for /boot and /root
# Partition 1 Type Fat32 - 512M bootable
# Partition 2 Type Linux - remaining space
mkdir /mnt/root ## if needed
mkfs.vfat /dev/sdX1 ## /boot
mkfs.ext4 /dev/sdX2 -L <LABEL> ## /root
# mount the MicroSD Card
mount -L <LABEL> /mnt/root
mkdir /mnt/root/boot
mount -t vfat /dev/sdX1 /mnt/root/boot
# copy the files
tar xzf <image>.tar.gz ~/ ## if needed
cp -a ~/<image>/* /mnt/root/ ## ignore errors
# configure /mnt/root/boot - see notes*
# not needed if using <LABEL>
# cd /mnt/root/boot
# chmod a+x mkscr ## if needed
# blkid /dev/sdX ## copy the UUID of Partition 2
# nano boot.txt ## fix boot line to use your UUID
# ./mkscr ## run mkscr when done
cd ~/
umount /mnt/root/boot
umount /mnt/root
# the MicroSD Card is now ready for use
backup
# to create a tar.gz backup of the filesystem,
# start as root while booted into the RPI and
# make any preliminary changes - including:
rm /var/log/journal/<long-number>/* ## no idea why
## but needed
iwctl known-networks forget "<hotspot>" ## optional
pacman -Scc ## to clear the package cache for space
echo '' > /home/<user>/.bash_history
echo '' > /root/.bash_history
shutdown now
# then mount the MicroSD Card the same
# as it was installed on /mnt/root
# and copy the filesystem to ~/
mount -L <LABEL> /mnt/root
mount -t vfat /dev/sdX1 /mnt/root/boot
mkdir ~/<new-image>
cp -a /mnt/root/* ~/<new-image>/
# create tar.gz ## if needed
tar czf <new-image>.tar.gz <new-image>
umount /mnt/root/boot
umount /mnt/root
notes
The archlinuxarm.org directions use bsdtar – this is the same as the tar command.
If partitions are automatically mounted, they will need to be unmounted before mounting as root or /boot will be read-only. Even still, vfat doesn’t handle permissions so there may be errors on copying files that can be ignored as long as the folder is read-write and mkscr is executable.
Deviating from the official instructions, I can see no good reason to use a swap partition on fixed media – if it’s needed at a later point, a swap file is the way to go.
The install image from archlinuxarm.org is supposed to auto boot, but on my device it doesn’t. This is probably the result of UEFI which started in 2020 while my Rasberry Pi was made in 2015. The Pi does not recognize a GPT partition table, only DOS MBR or a Hybrid MBR (which I didn’t try). One way to fix this is to use UUID and edit boot.txt directly, then run ./mkscr – instead, I use LABEL and boot.txt works fine if partitions are correctly labeled. I left notes about this change in the boot.txt file. If the LABEL or UUID doesn’t match a partition, you’ll boot to a blank screen.
The current release is 20260107 and the labels for partitioning are ‘streamer-base’ and ‘streamer-console’, respectively. In the future, a more generic label of ‘streamer’ may be used for all images but different names allows for more than one image to coexist in a multiboot environment. Both filesystems use the same kernel and variations can share a boot partition – however, when updating the kernel it’s necessary to use arch-chroot to update all filesystems.
