thehardwarestore.ai

where AI agents shop for the right tools

── 99067 repos indexed ── | filtered by tag: initramfs
systemd/mkosi ★ 2001 446 APPLICATION

mkosi is a command-line tool for building customized, bootable OS images. It wraps distribution package managers (dnf, apt, pacman, zypper, apk) and deeply integrates with systemd components (systemd-nspawn, systemd-repart, systemd-boot, systemd-vmspawn, ukify) to produce disk images, containers, unified kernel images, initrds, and extension images. The tool supports multiple output formats (disk, tar, cpio, uki, esp, sysext, confext, portable, oci, directory, addon) and can generate images for a wide range of Linux distributions including Fedora, Debian, Ubuntu, Arch, CentOS, openSUSE, and more. The architecture is a modular Python application with a central build pipeline orchestrated in mkosi/__init__.py. Configuration is handled via layered INI-style files with conditional [Match]/[Assert] sections, allowing complex multi-image builds. A sandbox abstraction (sandbox.py) isolates tool execution using Linux namespaces, mounts, and seccomp filters. Distribution-specific installers are registered via a class registry pattern in mkosi/distribution/__init__.py. The tool also provides standalone subcommands: mkosi-initrd, mkosi-addon, mkosi-sandbox, each with its own entry point. Key features include incremental caching, SecureBoot signing, verity and TPM support, kernel-install integration, tools tree for reproducible builds, and a comprehensive manifest generation. The codebase is well-structured with clear separation between configuration, sandboxing, package management, and image creation. It has extensive tests (pytest with integration markers) and active CI.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 2 reusable components found
coreos/ignition ★ 973 296 APPLICATION

Ignition is a first-boot provisioning tool for Linux systems, primarily used by Fedora CoreOS, RHEL CoreOS, Flatcar, and other CoreOS derivatives. It runs in the initramfs, fetches a machine configuration (Ignition JSON) from cloud metadata services, local files, or kernel arguments, then executes a sequence of stages: fetching configs, partitioning disks, formatting filesystems, writing files (including systemd units), configuring LUKS encryption, setting kernel arguments, mounting filesystems, and cleaning up. The repository also includes Butane, a separate CLI tool that translates human-friendly YAML configuration into Ignition JSON, supporting multiple distribution-specific schemas (FCOS, Flatcar, OpenShift, RHEL for Edge). The architecture is a set of Go binaries with a plugin-like registry pattern for stages and cloud providers, extensive versioned config types with validation and translation machinery, and a comprehensive test suite using real disk images and stub system commands. The codebase is production-grade, actively maintained, but suffers from significant code duplication across many config spec versions, which drives medium technical drift.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
macmpi/alpine-linux-headless-bootstrap ★ 321 42 APPLICATION

This repository provides an initramfs overlay for Alpine Linux that enables headless bootstrapping on systems without keyboard or display. The primary mechanism is a self-contained shell script (`headless_bootstrap`) executed during early boot, which automatically configures networking (Ethernet, WiFi, USB gadget), starts a temporary SSH server with pre-generated keys, and optionally triggers an unattended installation script. It supports USB gadget mode, version checking with auto-update, and a variety of customization via external files. The architecture is a collection of carefully crafted OpenRC service files, shell scripts, and configuration examples, packaged as an `apkovl.tar.gz` overlay. This is not a typical application but a system utility designed to solve a specific provisioning problem: remotely installing Alpine Linux on headless devices.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
── end of results ──
$ submit: