
Schneller und sicherer initramfs-Generator

Booster lässt den frühen Bootvorgang leichter, schneller und zuverlässiger wirken. Es erstellt kompakte Initramfs-Images, die Ihr Linux-System mit minimalem Aufwand von der Firmware zum eigentlichen Root-Dateisystem bringen und eine starke Unterstützung für verschlüsselte Bootvorgänge bieten.
Anstatt ein großes, generisches frühes Userspace zu packen, erkennt Booster, was Ihre Maschine tatsächlich benötigt, und baut ein fokussiertes Image darum herum. Das Ergebnis ist ein schlankes Boot-Image mit den Treibern, Entsperrwerkzeugen, Dateisystemunterstützung und Wiederherstellungspfaden, die Ihr Host benötigt, ohne bei jedem Neustart die gesamte Küchenspüle mitzunehmen.
Booster basiert auf einem einfachen Versprechen: Der frühe Bootvorgang sollte schnell, klar, sicher und angenehm zu bedienen sein.
Highlights:
systemd-cryptenroll TPM2- und FIDO2-Token, einschließlich nativer FIDO2-Unterstützung über Boosters Plugin-Pfad.Booster ist eine gute Wahl für verschlüsselte Laptops, Entwickler-Workstations, Server mit Remote-Wiederherstellungsbedarf, minimale Linux-Systeme und Boot-Konfigurationen, die auch Jahre nach der Einrichtung noch verständlich bleiben sollen.
Booster behandelt die vollständige Festplattenverschlüsselung als erstklassigen Workflow, nicht als nachträgliches Add-on.
Es kann LUKS-Geräte aus Kernel-Parametern, /etc/crypttab, GPT-Automatik, direkten root=-Verweisen auf LUKS-Container, Schlüsseldateien, abgetrennten Headern und hardwaregestützten Token entsperren.
Unterstützte Entsperrstile umfassen:
systemd-cryptenroll TPM2- und FIDO2-Token.Boosters Token-Orchestrierung ist darauf ausgelegt, den verschlüsselten Bootvorgang gepflegt wirken zu lassen. Nicht-interaktive Token können im Hintergrund laufen, PIN-basierte Token werden in einer deterministischen Reihenfolge abgefragt, und die reguläre Passphrase-Eingabe erscheint als Fallback, anstatt den gesamten Bootvorgang für immer zu blockieren.
Aktuelle FIDO2-Verbesserungen machen die Erfahrung geschmeidiger:
enable_fido2: true aktiviert werden.crypttab-Eintrag mit fido2-device= kann bewirken, dass Booster das FIDO2-Plugin automatisch einbindet.Standardmäßig erstellt Booster ein host-spezifisches Image. Es betrachtet das aktuelle System, enthält die Module und Werkzeuge, die zum Booten benötigt werden, und lässt unnötige Teile weg. Das hält das Image leichter zu prüfen, schneller zu generieren und während des Bootvorgangs schneller auszuführen.
Wenn Sie ein breiteres Image benötigen, enthält --universal eine größere Modulauswahl für Rettungsszenarien, portable Medien oder Systeme, bei denen sich die Hardware ändern kann.
Booster unterstützt praktische reale Boot-Layouts, einschließlich:
UUID=, LABEL=, PARTUUID=, PARTLABEL=, HWPATH=, WWID= oder /dev/..../etc/crypttab.Wenn etwas schiefgeht, gibt Booster Ihnen nützliche Möglichkeiten, um zu sehen, was passiert ist.
Verwenden Sie booster.log=debug,console für detaillierte Boot-Protokolle, fügen Sie busybox für eine Notfall-Shell hinzu, oder aktivieren Sie Netzwerkunterstützung, um Protokolle von einer nicht bootfähigen Maschine abzurufen.
Booster enthält auch Image-Inspektionsbefehle, damit Sie vor dem Neustart überprüfen können, was erstellt wurde:
booster ls /boot/booster-linux.img
booster cat /boot/booster-linux.img /init
booster unpack /boot/booster-linux.img /tmp/booster-image
Installieren Sie das offizielle Paket:
pacman -S booster
Das Paket erstellt Booster-Images in /boot/:
$ ls -lh /boot/booster-*.img
-rwxr-xr-x 1 root root 3.9M Dec 10 20:51 /boot/booster-linux.img
Installieren Sie Booster mit:
xbps-install -S booster
Generieren Sie dann das Initramfs für einen bereits installierten Kernel neu:
xbps-reconfigure -f linux
Installieren Sie Booster mit:
apk add booster
Lesen Sie dann /usr/share/doc/booster/README.alpine für setupspezifische Bootloader-Anweisungen.
Sie können auch ein Image direkt erstellen:
booster build /boot/booster-linux.img
Für ein portableres Image mit einem breiteren Hardwaresatz:
booster build --universal /boot/booster-linux.img
Nach der Erstellung des Images weisen Sie Ihren Bootloader darauf hin. Einzelheiten zur vollständigen Konfiguration finden Sie im Booster-Manual.
Erstellen Sie ein host-spezifisches Image:
booster build booster.img
Erstellen Sie ein Image für einen bestimmten Kernel:
booster build --kernel-version 6.8.9-arch1-1 /boot/booster-linux.img
Überprüfen Sie das generierte Image:
booster ls /boot/booster-linux.img
Generieren Sie gepackte Images nach Änderungen an /etc/booster.yaml neu:
/usr/lib/booster/regenerate_images
Generieren Sie ein Unified Kernel Image, wenn Ihre Distribution systemd-ukify bereitstellt:
/usr/lib/booster/regenerate_uki build /boot/EFI/Linux
Booster ist absichtlich klein zu konfigurieren. Ein einfacher verschlüsselter Laptop benötigt oft überhaupt keine große Konfigurationsdatei. Fügen Sie nur die Funktionen hinzu, die Ihr Boot-Pfad benötigt:
compression: zstd
vconsole: true
enable_fido2: true
enable_lvm: true
enable_mdraid: true
Für Remote-Entsperrung über SSH:
network:
dhcp: on
ssh_host_key: /etc/booster/ssh_host_ed25519_key
ssh_authorized_keys: /etc/booster/authorized_keys
ssh_listen: :22
Für geschmeidigere Token-Reihenfolge, wenn mehrere Hardware-Entsperrmethoden registriert sind:
serialize_tokens:
enabled: true
clevis_timeout: 45s
tpm2_timeout: 15s
fido2_timeout: 30s
Für Plymouth-Splash-Unterstützung:
enable_plymouth: true
modules_force_load: amdgpu
Verwenden Sie quiet splash in Ihrer Kernel-Befehlszeile und vermeiden Sie booster.log=console, wenn Sie den grafischen Splash wünschen.
Die vollständige Benutzerdokumentation finden Sie im Booster-Manual. Es behandelt:
/etc/booster.yaml./etc/crypttab.Booster bewegt sich im selben Problembereich wie mkinitcpio und dracut. Sein Fokus liegt auf einem schnellen, kompakten, Go-basierten Initramfs-Generator mit starker Benutzerfreundlichkeit für verschlüsselte Bootvorgänge und automatischer Host-Erkennung.
Das Projekt hat drei Hauptteile:
init – das frühe Userspace-Programm, das während des Bootvorgangs läuft.generator – das Werkzeug, das das Initramfs-Image erstellt.tests – QEMU-basierte Integrationstests für generierte Images.Erstellen Sie mit den Standard-Go-Werkzeugen:
go build ./...
Führen Sie Unittests aus:
go test ./generator ./init
Führen Sie die vollständige Testsuite aus:
go test ./...
Das Paket ./tests enthält QEMU-Integrationstests und erfordert, dass der Host die benötigten Boot- und Virtualisierungswerkzeuge installiert hat.
Die Arbeit an diesem Projekt begann während der Hack-Woche von Twitter. Großer Dank an Twitter für die Unterstützung der Open-Source-Entwicklung und besonderer Dank an Ian Brown.
Boosters Architektur wurde von Michael Stapelbergs distri inspiriert, und die erste Version entlehnte viele Ideen von distris Initramfs-Generator.
Siehe LICENSE.