GingerOS v1.0.0-stable
Release date: 2026-08-01
Codename: stable
GingerOS is a complete Linux distribution built from source following the
Linux From Scratch 13.0 (systemd edition) book, packaged as a bootable
installer ISO and verified to install and boot cleanly end-to-end.
Highlights
- From-scratch LFS 13.0 system — nothing copied from a host distro.
- Bootable installer ISO (
gingeros-installer.iso) with a single static
Go installer binary — no Python/runtime dependencies on the ISO or target. - systemd-based runtime: networkd (DHCP), logind, journald, dbus all
activeon a fresh install. - Zero-host-pollution build: all LFS work happens inside an isolated
QEMU disk image; the host only needs QEMU, debootstrap, and Python/Go tools. - Two control surfaces: Go HUD terminal client and React web dashboard
(FastAPI backend on:8087).
Included software
| Component | Version |
|---|---|
| LFS base | 13.0 (systemd edition) |
| Linux kernel | 6.18.10 (x86_64-lfs-linux-gnu) |
| glibc | 2.43 |
| GCC | 15.2.0 |
| Binutils | 2.46.0 |
| systemd | 259 |
| Init system | systemd (networkd / logind / journald / dbus) |
| Target | x86_64, merged-/usr layout |
Installer (on the ISO)
The Go installer (lfs/iso/installer/main.go) performs 5 steps:
- Partitioning — target wipe, GPT table, ext4 root partition.
- Extract Filesystem — streaming extraction of the purged rootfs.
- Hardware Sync — kernel install, merged-
/usrsymlinks, and rewriting
/etc/fstabwith the target's real root UUID. - User Setup — user account creation and password setup.
- Bootloader — GRUB installation, hostname, and network config.
The installed system boots directly to a login prompt on both VGA and the
serial console (console=ttyS0).
Verification
Tested headlessly in QEMU/KVM on a fresh 20 GB disk:
- Full install completes (all 5 steps, exit 0).
- System boots to
gingeros login:onttyS0. gingeraccount logs in;rootpassword works viasu.systemctl is-system-running→ running (not degraded).systemd-networkdactive (running)with DHCP10.0.2.15/24.systemd-logindanddbusactive (running).- eth0
UP, DHCP lease acquired.
Bug fixes in this release
- Installer fstab UUID: the installed
/etc/fstabnow uses the target
partition's real UUID (was the build disk's UUID), fixing a first-boot
systemd-remount-fs.servicefailure anddegradedstate. - LFS systemd users/groups: full LFS 13.0
/etc/passwd+/etc/group
entries added sosystemd-network,systemd-resolve,systemd-logind,
etc. start correctly. - LFS libraries misplaced in
/usr/lib64: kmod/udev/systemd/dbus meson
builds now use-D libdir=/usr/lib, so libs are loadable at runtime and
dbus builds with systemd support (no more "compiled without systemd support"). - Rootfs purge over-filtering:
purge-rootfs.pynow preserves the genuine
LFS dbus systemd units (KEEP_EXACT) while still stripping Ubuntu/build-tree
contamination. - Installer merged-
/usrsymlinks: relative symlink targets prevent any
later host traversal (chroot,os.RemoveAll, ldconfig) from escaping into
the live initrd root. - Serial console enabled in the installed GRUB config for headless
install/boot testing.
Known limitations
- Installer targets BIOS/legacy boot on a single ext4 root partition; UEFI is
not yet supported. - Parallel Phase 3 builds are experimental (
PARALLEL_PHASE3inginger.conf). - The build host must be Ubuntu 24.04 (or a compatible distro with
debootstrap).
Build from source
# 1. Build the LFS system (13 steps) via the orchestrator
./run.sh
# 2. Produce the ISO
./make-iso.sh
# 3. Test install
./test-installer.sh
./test-boot.shSee docs/WORKFLOW.md for the full workflow and
README.md for architecture.
What's Changed
- Ginger OS v1.0.0-stable by @codewithwest in #3
Full Changelog: 1.0.0-beta...v1.0.0