home / install / walkthrough

Installer walkthrough

Every screen, in order, with the logic behind it.

0 — Boot

The live init starts installer/install.sh automatically on the console. If the installer ever exits (say you decline to build), it drops you into an emergency shell rather than stranding you.

1 — Network gate

Because the ISO carries only the installer, connectivity is checked first. The probe hits a few hosts (1.1.1.1, github.com) with ping; if ping isn't there, it falls back to a TCP connect via nc.

keru@live:~$
[ keru ] network: connected     ← online, straight to choices
or, if offline:
[ keru ] warning: network: not connected
Connect to the network now (runs nmtui)? [Y/n] y
(nmtui opens; you connect; press ok)
[ keru ] network: connected

If you press n at the prompt, the installer exits with a network connection is required to install Keru. If you run nmtui and don't actually connect, the loop simply asks again — it never fakes success.

2 — Choose your system

Each swappable is presented as a numbered menu. Pressing enter keeps the default; typing a number picks the option.

keru@live:~$
[ keru ] Keru OS — craft your system
== Init system ==
  1) runit
  2) s6
  3) openrc
  4) systemd
  5) busybox-init
  6) sysvinit
  7) dinit
  8) shepherd
Select [runit]: 

The same pattern repeats for C library, filesystem, kernel, privilege elevation, and network tools.

3 — Stability check

After the last pick, known-risky combinations are flagged. This is a warning, never a block — the philosophy of stable-on-what's-offered, never-lock-you-out.

keru@live:~$
[ keru ] warning: uclibc-ng + runit: not yet proven to build and boot together
[ keru ] warning: this combination is unstable. Keru won't stop you — build at your own risk.

4 — make.conf

Your selections are written to a profile and shown back to you before anything builds:

keru@live:~$
[ keru ] writing /tmp/keru/make.conf
[ keru ] profile complete:
# Generated by keru-install — hand-tune then rebuild if you like.
INIT=runit
LIBC=glibc
TARGET_FS=btrfs
KERNEL=linux
SUDO=doas
NET=nmtui
LICENSE_ACCEPT=(*)

Build now? [y/N] y

5 — Build

Confirming hands the profile to the build pipeline, which runs in three stages:

  1. Stage 0 — bootstrap. binutils, gcc, your chosen libc, then the toolchain package. This is the from-scratch toolchain.
  2. Stage 1 — base system. The BASE_PACKAGES set from your make.conf.
  3. Stage 2 — the swappables. Kernel, init, sudo-alternative, and network tools — exactly the ones you picked.
  4. Stage 3 — finalize. mkfs-root.sh writes the chosen filesystem to the target root.
Result: a rootfs at /tmp/keru/root matching your profile, ready to boot. Fixed at first boot — the system you designed.

← Back to install overview · The build pipeline in full