We're going to use Arch Linux ARM not because we like to move fast and break things, but because it is a minimal base that will let us make the most of the diminuitive hardware and learn more about Linux, the operating system, and commonly used programs.

Initial Install

Raspberry Pi versions 1 - 3B+ (all of them, circa 2018) does not support hardware encryption, meaning full disk encryption will use significant CPU % and decrease disk performance.

  • [ ] Test.

The initial installation is carried out on our computer following the correct variant of instructions:

See File System Variations. It's easier to vary this now rather than later.

bla bla bla.

This is your opportunity to encrypt the root partition (excluding the boot drive) or use f2fs with the root partition. I did neither at this point.

Encryption is tricky because you'll need to physically enter the password if you reboot.

Encryption after SSH? Worth looking into:

Create an image for easy future use... (after initial setup... hmm)

Note: badblocks -wsv /dev/... can be used to check each storage device you are using is okay.

WARNING -w = destructive read-write test.

List bad blocks: dumpe2fs -b /dev/sdX1

Find new bad blocks: fsck -vcck /dev/sdX1


  1. Follow the instructions on the wiki page, using 250 MB for boot, 16 GB for root, and keeping the rest as spare.

Hardware Optimisation and Issues

Raspberry Pi 3

Edit /boot/config.txt

# Reduce memory allocation to unused GPU, increasing RAM available to OS

# Disable unused WiFi and Bluetooth hardware to save power

# Disable unused HDMI port to save power (undocumented - need source link)

# Improve the boot time

# Reduce minimum frequency of processor (to save power?)

Note that the status of the HDMI port can be checked at /opt/vc/bin/tvservice.

Booting up with HDMI plugged in

This likely affects ARMv6 devices including the Raspberry Pi, Raspberry Pi Zero, and Raspberry Pi Zero W.

Some Raspberry Pi boards including the Raspberry Pi Zero W will not boot up properly without an HDMI display plugged in. To fix this, add this line to /boot/config.txt


File System Variations

There is a lot of flexibility in how we configure the partitions.

The /boot partition is fairly inflexible (confirm encryption?), it must be FAT32. It is possible to boot over the network, or from a USB flash drive.

The root / partition is more flexible, and you can install with other file systems from the get-go, e.g. f2fs or btrfs. Edit cmdline.txt.

It is easy to use RAID, LUKS, LVM and whatever file system you want on pure data devices.

It is much more tricky to install if you want to do those things on your main root / partition.

We will probably use 3-4 GB on / for programs and config files, and all data will be on a separate partition. I would recommend 4x this for / , i.e. 16GB, to leave room for future growth, and significant spare space to extend the longevity of this part of the SD card.


Could be useful if you have externally-powered USB storage devices.

Note LVM can actually raid, but the tooling is more opaque and there is less community support - lvmraid.


Well we're using Arch, so why not a slightly dodgy filesystem? It has cool features like copy-on-write, snapshots, fast backups, and... RAID5 corrupting your data.


f2fs encryption info:

Per-Directory. Encrypt file + filename. Not file size, timestamps, permissions, extended attributes. Uses fscrypt, kernel-tool.

results matching ""

    No results matching ""