Download and verify installation media Download the installation media You should obtain the appropriate install media as well as sha256 and GnuPG signatures for that media.
Partitioning on the Linux command line Partitioning information in the official Alpine Linux User’s Handbook
For this guide we only consider two types of install: BIOS to ‘msdos’-type partition table (disklabel) and UEFI to gpt partition table.
Add and use filesystem tools Overview You need to add the tools that will let you format/create one or more additional volumes/filesystems of your choice.
Copy tarball to boot under Gnome Steps Screenshots are from GNOME but most GUI desktops are similar.
Select install tarball wherever you have it downloads (often in your Downloads directory), right-click and select ‘Extract To…’ Browse to the boot partition of the SD card Select the boot partition of the SD card as extraction destination The result will be a directory containing the boot files on the boot partition; we actually want the files in the top-level (root) of the boot partition.
Prepare SD card using GNOME Disks Procedure Start with an empty (unpartitioned, unformatted) SD card. If you disk is not empty, you will need to do a search on how to clean the disk and create an msdos disklabel (aka partition table).
Daniel’s documentation for using Alpine Linux for local servers on x86-64 and Raspberry Pi family. These documents use only the ‘main’ repository, except in one or more optional HowTo guides.
Important post-install configuration Overview The following are not part of the base install, but either can be essential to system function (like adding boot entropy for some headless systems like the Raspberry Pi) or are widely accepted best practices (like creating a non-root admin user and limiting time spent as root).
Obtain and verify install tarball Obtain the official Alpine Linux image Choose tarball to download based on the model of Pi you have
Partial table of model of Raspberry Pi to Linux kernel max architecture available (where aarch64 > armv7 > armhf).
Prepare your SD card Partition the SD card On Windows 10 Using built-in GUI ‘Disk Management’ feature TBD
Using diskpart TBD
Using PowerShell TBD
On Linux (many distros) GUI Using Gnome ‘Disks’ applet
Setup network required for package installation Use Alpine Linux setup sub-scripts for network/DNS Execute setup-keymap # To make sure you can successfully do keyboard input Execute setup-hostname.
Use Alpine Linux on Raspberry Pi as a server Special Notes NOTE: For boot to succeed /media/mmcblk0p1/usercfg.txt must exist. See kernel parameters and device-tree settings for information on what you can set in that file.
Create a non-root admin user Avoid operating as root, where possible It is generally considered an administrative best practise to avoid logging in and/or operating with elevated privileges, to the extent reasonable to do so.
Create semi-data/semi-diskless install Overview This guide presumes you are booted into a fresh install media (no stored configuration). It further presumes that neither the pure diskless configuration from the Alpine wiki, the data configuration from the Alpine wiki, nor the system disk (classic) configuration from the Alpine wiki suits your situation.
For headless systems, add boot entropy Overview As mentioned in Raspberry Pi - Alpine Linux under ‘Troubleshooting: Long boot time when running headless’, some systems might take an excessively long time to boot when no peripherals are attached (not only with the Pi series).
Recommended tweaks and configuration Overview Assuming the reboot was successful, it is time to make your system more useful.
Otherwise see Firstboot troubleshooting
Commit changes at your preferred granularity Don’t forget that these changes will not survive reboot unless you commit your changes.
Server install & configure Overview This set of guides and recommendations is aimed at the use of Alpine as your local servers on physical hardware where you have access to the console on boot.
Use modified ‘setup-alpine’ procedure Overview You’ll want to be careful during the LBU configuration and APK cache configuration sections using the default setup-alpine script. You also need to have pre-mounted the partition(s) that will hold the LBU and APK cache (see Create semi-data/semi-diskless install).
Most blog entries on SystemD timers give trivial samples. This article takes a different approach and provides the full details of two examples of using SystemD timers that are in active use on my systems.