Installer bootstrap (curl | sh install-os) — SPEC §13.10
keyboot’s installer normally runs from keyboot’s own rescue mode (PXE/USB/ISO), where all tools are already present. When you’re instead sitting in some other live environment (Alpine live, a Debian/Ubuntu rescue shell, Gentoo/SystemRescue, a Hetzner rescue, …) and don’t want to reboot, the bootstrap sets keyboot’s installer up in place:
curl -fsSL https://packages.osterman.co/keyboot/install-os | sh
# or drive it in one shot:
curl -fsSL https://packages.osterman.co/keyboot/install-os | sh -s -- \
--run debian --disk <serial> <serial> --hostname newhost --confirm
# or from a profile (SPEC §13.7):
curl -fsSL .../install-os | sh -s -- --run debian --profile profile.yaml --confirm
What it does (§13.10):
- Detects the package manager (
apk/apt-get/emerge/pacman/dnf) and installs keyboot’s install-time deps:cryptsetup, the ZFS userland,sgdisk/gdisk,mdadm,jq,dosfstools,minisign. - Fetches + minisign-verifies (against the pinned key, same as
install) thekeyboot-install+keybootbinaries and thekeyboot-install-os.tar.gztoolkit (orchestrator + per-distro plugins). - Installs them and either drops you into
keyboot-install install-osor, with--run, runs it directly.
Same code paths and UX as keyboot rescue mode; the only difference is that the ZFS userland came from the live env’s package manager rather than keyboot’s bundle.
Acceptable starting environments
The binding constraint is ZFS in the live env’s package manager. Known-good:
| Environment | ZFS source | Notes |
|---|---|---|
| Alpine live | apk add zfs | first CI-tested target |
| Debian / Ubuntu rescue | zfsutils-linux (contrib) | Hetzner rescue works |
| Gentoo / SystemRescue | sys-fs/zfs | SystemRescue ships ZFS |
| Arch | zfs-utils (+ AUR/dkms for the module) | module may need dkms |
| Fedora / RHEL | zfs (after the zfs-release repo) | repo must be enabled |
Bare-bones rescue shells with no ZFS in their package manager are not acceptable starting points — reboot into keyboot’s own rescue mode (which bundles ZFS) or install ZFS by hand first. The bootstrap fails loudly (rather than half-installing) when it can’t get the ZFS userland.