
Générateur d'initramfs rapide et sécurisé

Booster rend le démarrage précoce plus léger, plus rapide et plus fiable. Il construit des images initramfs compactes qui font passer votre système Linux du firmware au vrai système de fichiers racine avec un minimum d'effort et un solide support du démarrage chiffré.
Au lieu d'embarquer un vaste espace utilisateur précoce générique, Booster découvre ce dont votre machine a réellement besoin et construit une image ciblée autour de cela. Le résultat est une image de démarrage légère avec les pilotes, les outils de déverrouillage, le support des systèmes de fichiers et les chemins de récupération dont votre hôte a besoin, sans transporter tout l'arsenal à chaque redémarrage.
Booster repose sur une promesse simple : le démarrage précoce doit être rapide, clair, sûr et agréable à utiliser.
Points forts :
systemd-cryptenroll, y compris le support FIDO2 natif via le chemin de plugins de Booster.Booster est un excellent choix pour les ordinateurs portables chiffrés, les postes de travail de développeurs, les serveurs avec besoins de récupération à distance, les systèmes Linux minimaux et les configurations de démarrage qui doivent rester compréhensibles des années après leur configuration.
Booster traite le chiffrement complet du disque comme un flux de travail de première classe, et non comme une extension.
Il peut déverrouiller des périphériques LUKS à partir des paramètres du noyau, de /etc/crypttab, de l'auto-découverte GPT, de références root= directes vers des conteneurs LUKS, de fichiers de clés, d'en-têtes détachés et de jetons adossés au matériel.
Les styles de déverrouillage pris en charge incluent :
systemd-cryptenroll.L'orchestration des jetons de Booster est conçue pour rendre le démarrage chiffré agréable. Les jetons non interactifs peuvent s'exécuter en arrière-plan, les jetons à code PIN sont invités dans un ordre déterministe, et l'invite de phrase de passe habituelle apparaît comme solution de repli au lieu de bloquer tout le démarrage indéfiniment.
Les améliorations récentes de FIDO2 rendent l'expérience plus fluide :
enable_fido2: true.crypttab avec fido2-device= peut amener Booster à inclure automatiquement le plugin FIDO2.Par défaut, Booster construit une image spécifique à l'hôte. Il examine le système actuel, inclut les modules et outils nécessaires à son démarrage et laisse de côté les éléments superflus. Cela rend l'image plus facile à auditer, plus rapide à générer et plus rapide à exécuter au démarrage.
Lorsque vous avez besoin d'une image plus large, --universal inclut un ensemble plus étendu de modules pour les scénarios de secours, les supports portables ou les systèmes dont le matériel peut changer.
Booster prend en charge les configurations de démarrage pratiques du monde réel, notamment :
UUID=, LABEL=, PARTUUID=, PARTLABEL=, HWPATH=, WWID= ou /dev/..../etc/crypttab.Quand quelque chose tourne mal, Booster vous offre des moyens utiles de voir ce qui s'est passé.
Utilisez booster.log=debug,console pour des journaux de démarrage détaillés, ajoutez busybox pour un shell de secours, ou activez le support réseau pour récupérer les journaux d'une machine qui ne démarre pas.
Booster inclut également des commandes d'inspection d'image pour vérifier ce qui a été construit avant de redémarrer :
booster ls /boot/booster-linux.img
booster cat /boot/booster-linux.img /init
booster unpack /boot/booster-linux.img /tmp/booster-image
Installez le paquet officiel :
pacman -S booster
Le paquet crée des images Booster dans /boot/ :
$ ls -lh /boot/booster-*.img
-rwxr-xr-x 1 root root 3.9M Dec 10 20:51 /boot/booster-linux.img
Installez Booster avec :
xbps-install -S booster
Régénérez ensuite l'initramfs pour un noyau déjà installé :
xbps-reconfigure -f linux
Installez Booster avec :
apk add booster
Lisez ensuite /usr/share/doc/booster/README.alpine pour les instructions de configuration du chargeur de démarrage spécifiques.
Vous pouvez aussi construire une image directement :
booster build /boot/booster-linux.img
Pour une image plus portable avec un ensemble matériel plus large :
booster build --universal /boot/booster-linux.img
Après avoir créé l'image, pointez votre chargeur de démarrage dessus. Pour tous les détails de configuration, consultez la page de manuel de Booster.
Créez une image spécifique à l'hôte :
booster build booster.img
Créez une image pour un noyau spécifique :
booster build --kernel-version 6.8.9-arch1-1 /boot/booster-linux.img
Inspectez l'image générée :
booster ls /boot/booster-linux.img
Régénérez les images empaquetées après avoir modifié /etc/booster.yaml :
/usr/lib/booster/regenerate_images
Générez une image de noyau unifiée lorsque votre distribution fournit systemd-ukify :
/usr/lib/booster/regenerate_uki build /boot/EFI/Linux
Booster est volontairement simple à configurer. Un ordinateur portable chiffré simple n'a souvent besoin d'aucun fichier de configuration volumineux. N'ajoutez que les fonctionnalités dont votre chemin de démarrage a besoin :
compression: zstd
vconsole: true
enable_fido2: true
enable_lvm: true
enable_mdraid: true
Pour le déverrouillage à distance via SSH :
network:
dhcp: on
ssh_host_key: /etc/booster/ssh_host_ed25519_key
ssh_authorized_keys: /etc/booster/authorized_keys
ssh_listen: :22
Pour un ordonnancement plus fluide des jetons lorsque plusieurs méthodes de déverrouillage matériel sont enregistrées :
serialize_tokens:
enabled: true
clevis_timeout: 45s
tpm2_timeout: 15s
fido2_timeout: 30s
Pour le support de l'écran de démarrage Plymouth :
enable_plymouth: true
modules_force_load: amdgpu
Utilisez quiet splash dans votre ligne de commande du noyau et évitez booster.log=console lorsque vous voulez l'écran graphique.
La documentation utilisateur complète se trouve dans la page de manuel de Booster. Elle couvre :
/etc/booster.yaml./etc/crypttab.Booster évolue dans le même espace problématique que mkinitcpio et dracut. Son objectif est un générateur d'initramfs rapide, compact et basé sur Go, avec une ergonomie solide pour le démarrage chiffré et la découverte automatique de l'hôte.
Le projet comporte trois parties principales :
init – le programme de l'espace utilisateur précoce qui s'exécute au démarrage.generator – l'outil qui construit l'image initramfs.tests – les tests d'intégration basés sur QEMU pour les images générées.Compilez avec l'outillage Go standard :
go build ./...
Exécutez les tests unitaires :
go test ./generator ./init
Exécutez la suite de tests complète :
go test ./...
Le paquet ./tests contient des tests d'intégration QEMU et nécessite que l'hôte dispose de l'outillage de démarrage et de virtualisation requis.
Le travail sur ce projet a commencé pendant la semaine de hack de Twitter. Un immense merci à Twitter pour son soutien au développement open source, et un merci spécial à Ian Brown.
L'architecture de Booster a été inspirée par distri de Michael Stapelberg, et la version initiale a emprunté de nombreuses idées au générateur d'initramfs de distri.
Voir LICENSE.