Install

One command

Boot the ISO. Wired networking comes up on its own; for wireless:

iwctl station wlan0 connect YOUR-NETWORK

Then edit the config and run the installer:

nano /etc/arctic/install.conf
arctic-strap

That is the whole procedure. There are no menus, no prompts and no arguments — arctic-strap takes none. Which disk to use is something the config says, not something you type.

nano, vim and nvim are all on the ISO. vi is vim.

The config is checked first

Before anything is written, the whole config is validated. Either:

Config file accepted
  /etc/arctic/install.conf
  disk           /dev/sda (whole disk - everything on it is destroyed)
  filesystem     btrfs
  kernel         Arctic-kernel
  hostname       arctic
  desktop        xfce

or the full list of what is wrong:

Config file has errors
  /etc/arctic/install.conf

  A_ROOT_FS=reiserfs is not valid (try: ext4 ext3 ext2 btrfs xfs f2fs zfs)
  A_SNAPSHOT=btrfs needs A_ROOT_FS=btrfs (this config has ext4)
  A_ENCRYPT=yes but A_ENCRYPT_PASS is empty

Nothing has been changed. Fix the config and run arctic-strap again.

Errors are reported all at once, not one per run, and nothing has been touched when they are. To check without installing:

arctic-strap -n

Choosing a disk

Two ways. Pick one — setting both is an error.

A whole disk

Arctic partitions and formats it. Everything on it is destroyed.

A_DISK=/dev/sda
A_ROOT_FS=btrfs

Partitions you made yourself

Partition with cfdisk first, then point Arctic at the results. Nothing is formatted unless you ask.

A_ROOT_PART=/dev/sda2
A_BOOT_PART=/dev/sda1
A_HOME_PART=/dev/sda3
A_FORMAT=no

With A_FORMAT=no Arctic mounts them as they are and installs into whatever is already there — which is how you keep an existing /home. An existing btrfs is detected and its @ subvolume layout used, rather than the top level.

Filesystems

ext4the default
btrfssubvolumes, snapshots, transparent compression
xfslarge files
f2fsflash
ext3, ext2older
zfsneeds an out-of-tree module; least tested

btrfs gets @, @home, @snapshots and @log subvolumes, so root can roll back without taking your home directory with it. That split is what A_SNAPSHOT=btrfs needs:

A_ROOT_FS=btrfs
A_SNAPSHOT=btrfs
A_BTRFS_OPTS="rw,noatime,compress=zstd:3,space_cache=v2"

Encryption

LUKS2, under whichever filesystem you chose:

A_ENCRYPT=yes
A_ENCRYPT_PASS=your-passphrase

An initramfs with cryptsetup and the dm-crypt modules is generated automatically, and the passphrase prompt appears before anything else at boot. Works with every filesystem except zfs, which encrypts itself.

Boot

A_BOOT_FW=efi          # or bios; detected if unset
A_BOOTLOADER=limine    # or grub
A_BOOT_MOUNT=/boot/efi
A_BOOT_TIMEOUT=3
A_KERNEL_ARGS=""
A_GENERATIONS=5

A_GENERATIONS is how many previous configurations appear in the boot menu — see generations.

Everything else

The shipped install.conf documents every setting inline, all commented out with defaults shown. The rest, in brief:

A_KERNELwhich kernel — see kernels
A_INITPID 1 — see init systems
A_DESKTOP, A_DM, A_AUDIO see desktops and audio
A_USER, A_USERPASS, A_ROOTPASS accounts; empty root password means the account is locked
A_NEToffline, dhcp, wifi, static
A_HOSTNAME, A_TZ, A_LOCALE, A_KEYMAP the usual
A_SWAPnone, file, partition
A_PKGS, A_FONTS, A_SERVICES extra things to install and enable
A_PKGITinstall pkgit alongside alpm

What the installer does

In order: validate the config, partition or mount, unpack the base system, install the kernel and firmware, install everything the config asked for, create accounts, write /etc/fstab from the real mount table, install the bootloader, seed /etc/arctic/system.conf from what it just did, and record generation 1.

The fstab is generated from /proc/mounts, not from the config — whatever the install actually ended up with is what gets recorded, with UUID= throughout so disk reordering does not break the next boot.

After it finishes, system.conf already describes the machine, and generation 1 is the machine as installed. Both of those matter from the first rebuild onward.

More: arctic linux docs · declarative configuration · generations and rollback · init systems · kernels · packages (alpm) · desktops and audio · ephemeral shells · musl · building from source