No ISO, no guided installer. Boot any live Linux, partition and format by hand, extract a base tarball, chroot in and alpm add the rest. See the install guide or the deeper walkthrough.
Two tarballs: arctic-linux-def-tarball.tar.xz (busybox init) and arctic-linux-openrc-tarball.tar.xz (OpenRC wired up as init instead) - both boot-tested end to end in QEMU, both reach a working default runlevel. Both ship alpm pre-installed.
What changed
- Config is six small files under
/etc/arctic/instead of oneinstall.confand onesystem.conf:pkgs.conf(a mirror alpm keeps in step withadd/rem, never a reconcile target),network.conf,users.conf,services.conf,hardware.conf,identity.conf. - Networking is one stack, live and installed alike:
wpa_supplicant+udhcpcviawifi-connect, no NetworkManager anywhere. A successful connect is saved tonetwork.conf;rc.d/wifireconnects at every boot in the background, never blocking login. busyboxships setuid-root with/etc/busybox.conf, fixing non-rootping- granted to root and wheel only, withmount/findfs/tracerouteexplicitly denied rather than left unlisted.- New:
alpm-strap,genfstab, a real GRUB port,sound-setup/sound-setup-openrc,libcap. arctic-rebuildauto-detects which bootloader is installed (limine/grub) whenhardware.confdoesn't declare one - it always shipped empty, so the bootloader-config step was silently a no-op before this.
Fixed while verifying the new install path end to end
- Every install hit a kernel panic on first boot -
Failed to execute /init (error -2), indistinguishable from/initbeing missing.arctic-mkinitramfsnever created the/lib64 -> usr/libsymlink that busybox's own dynamic linker path needs, so busybox itself couldn't load. Found boot-testing the OpenRC flavor end to end in QEMU; confirmed against a real install too. If you installed from an earlier build of this release, regenerate your initramfs (alpm update, thenarctic-mkinitramfsfrom a chroot or the running system) or reinstall. - OpenRC's
sysctlservice calledsysctl --system, a GNU procps-ng extension busybox'ssysctldoesn't have, and failed on every boot - rewritten around busybox's own-p FILEsupport. - OpenRC's
keymaps/save-keymapsservices needkbd_mode/loadkeys/dumpkeys, which come from akbdpackage Arctic doesn't build - dropped from the default boot runlevel rather than failing every boot. Arctic already applies the configured keymap its own way (arctic-rebuild+ busybox'sloadkmap). alpmcouldn't find its ownlibalpm.shwhen run by absolute path from a non-Arctic host (alpm-strap's exact use case).alpm-repo's index generator had no dedup - two releases of the same package in one directory resolved to whichever sorted first alphabetically, not the newer one.- The base tarball was missing merged-
/usrsymlinks,/etc/passwd+group+shadow+nsswitch.conf,/tmp,/home, and theawk/xz/bsdtarpackagesalpmneeds to run at all outside a chroot'sPATH. rc.boot's fsck step handedfstab'sUUID=entries straight tofsck.fat, which - unlikee2fsck- doesn't resolveUUID=itself, so it failed on every boot with a separate FAT/bootpartition; and afsckexit of 1 (errors corrected, the normal outcome of an unclean shutdown) was being treated as a hard failure requiring a repair shell instead of the successful outcome it actually is.toyboxnow builds withtr,stty,expr,diff,moreenabled.util-linuxandutil-linux-libsshipped overlappinglibmount/libblkid/libuuid, so anything depending on the latter (e2fsprogs,openrc,genfstab's ownutil-linuxdependency) hit a hard file conflict.util-linuxnow declaresreplaces="util-linux-libs".alpm add's download progress bar only ever showed a start frame and 100% - it polled once a second, and most packages finish inside that window. Polls every 0.2s now.- Source builds (
alpm add -s) run underset -x, so the actual build commands are visible instead of just phase names. - A source build needing a build tool that was itself part of the same transaction (e.g.
alpm add base-devel) failed with a spurious "missing" error - source builds ran before the transaction's own binary installs finished.
Known gaps
- BIOS + GRUB deploy is broken:
grub-install --target=i386-pcrefuses to write boot sectors becauseld.lldmiscompiles GRUB's freestanding real-modekernel.img. BIOS installs should use Limine (needs a small unformatted BIOS-boot partition ahead of a FAT32/boot); EFI installs are unaffected either way. - LXQt is not packaged.
sha256 checksums are attached alongside each tarball.