
Generatore di initramfs veloce e sicuro

Booster rende l'avvio iniziale più leggero, veloce e affidabile. Costruisce immagini initramfs compatte che portano il tuo sistema Linux dal firmware al filesystem root reale con il minimo sforzo e un forte supporto per l'avvio crittografato.
Invece di impacchettare un ampio userspace generico iniziale, Booster scopre ciò di cui la tua macchina ha realmente bisogno e costruisce un'immagine focalizzata su di esso. Il risultato è un'immagine di avvio snella con i driver, gli strumenti di sblocco, il supporto per i filesystem e i percorsi di ripristino di cui il tuo host necessita, senza portare un intero armamentario in ogni riavvio.
Booster è costruito attorno a una semplice promessa: l'avvio iniziale dovrebbe essere rapido, chiaro, sicuro e piacevole da utilizzare.
Punti salienti:
systemd-cryptenroll, incluso il supporto nativo FIDO2 tramite il percorso plugin di Booster.Booster è una scelta eccellente per laptop crittografati, workstation di sviluppo, server con esigenze di ripristino remoto, sistemi Linux minimali e configurazioni di avvio che dovrebbero rimanere comprensibili anni dopo averle configurate.
Booster tratta la crittografia dell'intero disco come un flusso di lavoro di prima classe, non come un'aggiunta. Può sbloccare i dispositivi LUKS da parametri del kernel, /etc/crypttab, autodiscovery GPT, riferimenti diretti root= a container LUKS, file di chiave, header distaccati e token hardware.
Gli stili di sblocco supportati includono:
systemd-cryptenroll token TPM2 e FIDO2.L'orchestrazione dei token di Booster è progettata per rendere l'avvio crittografato raffinato. I token non interattivi possono competere in background, i token basati su PIN vengono richiesti in un ordine deterministico, e il prompt della passphrase regolare appare come fallback invece di bloccare l'intero avvio per sempre.
I recenti miglioramenti FIDO2 rendono l'esperienza più fluida:
enable_fido2: true.crypttab con fido2-device= può far sì che Booster includa automaticamente il plugin FIDO2.Per impostazione predefinita, Booster costruisce un'immagine specifica per l'host. Guarda il sistema corrente, include i moduli e gli strumenti necessari per avviarlo, e lascia fuori i pezzi non necessari. Ciò mantiene l'immagine più facile da verificare, più veloce da generare e più veloce da eseguire durante l'avvio.
Quando hai bisogno di un'immagine più ampia, --universal include un set più ampio di moduli per scenari di ripristino, supporti portatili o sistemi in cui l'hardware può cambiare.
Booster supporta layout di avvio pratici del mondo reale, tra cui:
UUID=, LABEL=, PARTUUID=, PARTLABEL=, HWPATH=, WWID= o /dev/..../etc/crypttab.Quando qualcosa va storto, Booster ti fornisce modi utili per vedere cosa è successo. Usa booster.log=debug,console per log di avvio dettagliati, aggiungi busybox per una shell di emergenza, o abilita il supporto di rete per recuperare i log da una macchina non avviabile.
Booster include anche comandi di ispezione delle immagini in modo da poter verificare cosa è stato costruito prima di riavviare:
booster ls /boot/booster-linux.img
booster cat /boot/booster-linux.img /init
booster unpack /boot/booster-linux.img /tmp/booster-image
Installa il pacchetto ufficiale:
pacman -S booster
Il pacchetto crea immagini Booster in /boot/:
$ ls -lh /boot/booster-*.img
-rwxr-xr-x 1 root root 3.9M Dec 10 20:51 /boot/booster-linux.img
Installa Booster con:
xbps-install -S booster
Quindi rigenera l'initramfs per un kernel già installato:
xbps-reconfigure -f linux
Installa Booster con:
apk add booster
Quindi leggi /usr/share/doc/booster/README.alpine per istruzioni specifiche sul bootloader di configurazione.
Puoi anche costruire un'immagine direttamente:
booster build /boot/booster-linux.img
Per un'immagine più portabile con un set hardware più ampio:
booster build --universal /boot/booster-linux.img
Dopo aver creato l'immagine, punta il tuo bootloader verso di essa. Per i dettagli completi sulla configurazione, consulta la pagina del manuale di Booster.
Crea un'immagine specifica per l'host:
booster build booster.img
Crea un'immagine per un kernel specifico:
booster build --kernel-version 6.8.9-arch1-1 /boot/booster-linux.img
Ispeziona l'immagine generata:
booster ls /boot/booster-linux.img
Rigenera le immagini impacchettate dopo aver modificato /etc/booster.yaml:
/usr/lib/booster/regenerate_images
Genera un'Immagine Kernel Unificata quando la tua distribuzione fornisce systemd-ukify:
/usr/lib/booster/regenerate_uki build /boot/EFI/Linux
Booster è intenzionalmente piccolo da configurare. Un semplice laptop crittografato spesso non ha bisogno di un file di configurazione grande. Aggiungi solo le funzionalità di cui il tuo percorso di avvio necessita:
compression: zstd
vconsole: true
enable_fido2: true
enable_lvm: true
enable_mdraid: true
Per lo sblocco remoto via SSH:
network:
dhcp: on
ssh_host_key: /etc/booster/ssh_host_ed25519_key
ssh_authorized_keys: /etc/booster/authorized_keys
ssh_listen: :22
Per un ordinamento dei token più fluido quando sono registrati più metodi di sblocco hardware:
serialize_tokens:
enabled: true
clevis_timeout: 45s
tpm2_timeout: 15s
fido2_timeout: 30s
Per il supporto splash di Plymouth:
enable_plymouth: true
modules_force_load: amdgpu
Usa quiet splash nella riga di comando del kernel ed evita booster.log=console quando vuoi lo splash grafico.
La documentazione completa per l'utente è nella pagina del manuale di Booster. Copre:
/etc/booster.yaml./etc/crypttab.Booster opera nello stesso spazio problematico di mkinitcpio e dracut. Il suo focus è un generatore initramfs veloce, compatto, basato su Go, con una forte ergonomia per l'avvio crittografato e scoperta automatica dell'host.
Il progetto ha tre parti principali:
init - il programma dell'userspace iniziale che viene eseguito durante l'avvio.generator - lo strumento che costruisce l'immagine initramfs.tests - test di integrazione basati su QEMU per le immagini generate.Compila con gli strumenti Go standard:
go build ./...
Esegui i test unitari:
go test ./generator ./init
Esegui la suite di test completa:
go test ./...
Il pacchetto ./tests contiene test di integrazione QEMU e richiede che l'host abbia installati gli strumenti di boot e virtualizzazione necessari.
Il lavoro su questo progetto è iniziato durante la hack week di Twitter. Un enorme ringraziamento a Twitter per aver supportato lo sviluppo open-source, e un ringraziamento speciale a Ian Brown.
L'architettura di Booster è stata ispirata da distri di Michael Stapelberg, e la versione iniziale ha preso in prestito molte idee dal generatore initramfs di distri.
Vedi LICENSE.