
Generador de initramfs rápido y seguro

Booster hace que el arranque temprano se sienta más ligero, rápido y fiable. Crea imágenes initramfs compactas que llevan tu sistema Linux desde el firmware hasta el sistema de archivos raíz real con mínimas complicaciones y un sólido soporte de arranque cifrado.
En lugar de empaquetar un gran espacio de usuario temprano genérico, Booster descubre lo que tu máquina realmente necesita y crea una imagen centrada en ello. El resultado es una imagen de arranque ligera con los controladores, las herramientas de desbloqueo, el soporte de sistemas de archivos y las rutas de recuperación que tu host necesita, sin cargar con todo lo superfluo en cada reinicio.
Booster se construye sobre una promesa simple: el arranque temprano debe ser rápido, claro, seguro y agradable de operar.
Aspectos destacados:
systemd-cryptenroll, incluido el soporte nativo de FIDO2 a través de la ruta de plugins de Booster.Booster es ideal para portátiles cifrados, estaciones de trabajo de desarrollo, servidores con necesidades de recuperación remota, sistemas Linux mínimos y configuraciones de arranque que deberían seguir siendo comprensibles años después de configurarlas.
Booster trata el cifrado de disco completo como un flujo de trabajo de primera clase, no como un complemento.
Puede desbloquear dispositivos LUKS desde parámetros del kernel, /etc/crypttab, autodetección GPT, referencias directas root= a contenedores LUKS, archivos de clave, cabeceras separadas y tokens respaldados por hardware.
Los estilos de desbloqueo admitidos incluyen:
systemd-cryptenroll.La orquestación de tokens de Booster está diseñada para que el arranque cifrado se sienta pulido. Los tokens no interactivos pueden ejecutarse en segundo plano, los tokens basados en PIN se solicitan en un orden determinista y la solicitud normal de frase de contraseña aparece como respaldo en lugar de bloquear todo el arranque para siempre.
Las mejoras recientes de FIDO2 hacen que la experiencia sea más fluida:
enable_fido2: true.crypttab con fido2-device= puede hacer que Booster incluya el plugin de FIDO2 automáticamente.Por defecto, Booster crea una imagen específica del host. Examina el sistema actual, incluye los módulos y herramientas necesarios para arrancarlo y deja fuera las piezas innecesarias. Eso hace que la imagen sea más fácil de auditar, más rápida de generar y más rápida de ejecutar durante el arranque.
Cuando necesitas una imagen más amplia, --universal incluye un conjunto más amplio de módulos para escenarios de rescate, medios portátiles o sistemas donde el hardware puede cambiar.
Booster admite diseños de arranque prácticos del mundo real, incluyendo:
UUID=, LABEL=, PARTUUID=, PARTLABEL=, HWPATH=, WWID= o /dev/..../etc/crypttab.Cuando algo sale mal, Booster te ofrece formas útiles de ver lo que ha pasado.
Usa booster.log=debug,console para obtener registros de arranque detallados, añade busybox para un shell de emergencia o habilita el soporte de red para recuperar registros desde una máquina que no arranca.
Booster también incluye comandos de inspección de imágenes para que puedas verificar lo que se ha creado antes de reiniciar:
booster ls /boot/booster-linux.img
booster cat /boot/booster-linux.img /init
booster unpack /boot/booster-linux.img /tmp/booster-image
Instala el paquete oficial:
pacman -S booster
El paquete crea imágenes de Booster en /boot/:
$ ls -lh /boot/booster-*.img
-rwxr-xr-x 1 root root 3.9M Dec 10 20:51 /boot/booster-linux.img
Instala Booster con:
xbps-install -S booster
A continuación, regenera el initramfs para un kernel ya instalado:
xbps-reconfigure -f linux
Instala Booster con:
apk add booster
Luego lee /usr/share/doc/booster/README.alpine para obtener instrucciones específicas del gestor de arranque.
También puedes crear una imagen directamente:
booster build /boot/booster-linux.img
Para una imagen más portátil con un conjunto de hardware más amplio:
booster build --universal /boot/booster-linux.img
Después de crear la imagen, apunta tu gestor de arranque hacia ella. Para conocer todos los detalles de configuración, consulta la página man de Booster.
Crea una imagen específica del host:
booster build booster.img
Crea una imagen para un kernel específico:
booster build --kernel-version 6.8.9-arch1-1 /boot/booster-linux.img
Inspecciona la imagen generada:
booster ls /boot/booster-linux.img
Regenera las imágenes empaquetadas después de cambiar /etc/booster.yaml:
/usr/lib/booster/regenerate_images
Genera una Unified Kernel Image cuando tu distribución proporcione systemd-ukify:
/usr/lib/booster/regenerate_uki build /boot/EFI/Linux
Booster es intencionadamente sencillo de configurar. Un portátil cifrado simple a menudo no necesita ningún archivo de configuración grande. Añade solo las funciones que tu ruta de arranque necesita:
compression: zstd
vconsole: true
enable_fido2: true
enable_lvm: true
enable_mdraid: true
Para desbloqueo remoto por SSH:
network:
dhcp: on
ssh_host_key: /etc/booster/ssh_host_ed25519_key
ssh_authorized_keys: /etc/booster/authorized_keys
ssh_listen: :22
Para un orden de tokens más fluido cuando hay varios métodos de desbloqueo por hardware registrados:
serialize_tokens:
enabled: true
clevis_timeout: 45s
tpm2_timeout: 15s
fido2_timeout: 30s
Para soporte de pantalla de bienvenida de Plymouth:
enable_plymouth: true
modules_force_load: amdgpu
Usa quiet splash en tu línea de comandos del kernel y evita booster.log=console cuando quieras la pantalla de bienvenida gráfica.
La documentación completa de usuario está en la página man de Booster. Cubre:
/etc/booster.yaml./etc/crypttab.Booster se mueve en el mismo espacio de problemas que mkinitcpio y dracut. Su enfoque es un generador de initramfs rápido, compacto y basado en Go, con una ergonomía sólida para el arranque cifrado y detección automática del host.
El proyecto tiene tres partes principales:
init - el programa de espacio de usuario temprano que se ejecuta durante el arranque.generator - la herramienta que crea la imagen initramfs.tests - pruebas de integración basadas en QEMU para las imágenes generadas.Compila con las herramientas estándar de Go:
go build ./...
Ejecuta las pruebas unitarias:
go test ./generator ./init
Ejecuta la suite de pruebas completa:
go test ./...
El paquete ./tests contiene pruebas de integración con QEMU y requiere que el host tenga instaladas las herramientas de arranque y virtualización necesarias.
El trabajo en este proyecto comenzó durante la hack week de Twitter. Muchas gracias a Twitter por apoyar el desarrollo de código abierto, y un agradecimiento especial a Ian Brown.
La arquitectura de Booster se inspiró en distri de Michael Stapelberg, y la versión inicial tomó prestadas muchas ideas del generador de initramfs de distri.
Consulta LICENSE.