Seiten: [1]
|
 |
|
|
Autor
|
Thema: Optimierter Linux-Start mit Booster (Gelesen 310 mal)
|
|
Sebastian
YaBB God
    
Offline
Einträge: 663

|
 |
Optimierter Linux-Start mit Booster
« am: 28. Dezember 2024, 14:07:51 »
|
|
Einleutung:
Hallo Suletuxe,
ich bin die Tage auf Booster, einen Initrd Generator gestoßen, der mich von der Generierung der Initrd (unter 2 Sekunden) und auch von der Bootgeschwindigkeit voll überzeugt hat. Ein Booster Inird ist auch grade mal auf mein System zugeschnitten, 10 MiB groß. Und das will schon was heißen, da ich sehr viele Kernel Module benötige, weil ich so was wie LUKS, LVM, etc. einsetzte. Aber alles weiter erkläre ich weiter unten.
Was ist Booster?
Booster ist ein schneller und sicherer Initramfs-Generator, der designt wurde, um Initramfs-Images für das frühe Stadium des Linux-Bootprozesses zu erstellen. Er zielt darauf ab, einfach, sicher und schnell zu sein, was ihn für Anwendungsfälle mit Voll-Disk-Verschlüsselung und automatischer Host-Konfigurations-Erkennung geeignet macht.
Funktionen und Fähigkeiten:
- Schnelle Initrd-Erstellung: Booster ist für Geschwindigkeit optimiert und ermöglicht die schnelle Erstellung von Initramfs-Images. (In den meisten fällen unter 2 Sekunden)
- Voll-Disk-Verschlüsselung Unterstützung:Booster unterstützt LUKS-basierte Voll-Disk-Verschlüsselungen out of the box, einschließlich Clevis-Style-Datenbindung und automatischer Entsperrung mit TPM2-Chips oder Netzwerkdiensten.
- Systemd-Cryptenroll-Unterstützung: Booster kann systemd-Cryptenroll nutzen, um z.b. fido2 und tpm2 zu erkennen und zum Entsperren von Partitionen zu nutzen.
- Automatische Host-Konfigurations-Erkennung: Booster kann minimale Images für den aktuellen Host erstellen, indem es Netzwerkeinstellungen, IP-Adressen und andere host-spezifische Details automatisch erkennt und konfiguriert.
- Konfigurierbar: Die Konfigurationsdatei von Booster befindet sich unter /etc/booster.yaml und ermöglicht es Benutzern, den Initrd-Erstellungsprozess anzupassen.
- Unterstützung für verschiedene Kernel-Module: Booster kann Kernel-Module ein- oder ausschließen, wie z.B. proprietäre Treiber wie amdgpu.
Zusammenfassung:
Booster ist ein vielseitiger und effizienter Initramfs-Generator, der robuste Unterstützung für Voll-Disk-Verschlüsselung, automatische Host-Konfiguration und anpassbare Kernel-Modul-Einbindung bietet, was es zu einer geeigneten Wahl für eine breite Palette von Linux-Systemen und Anwendungsfällen macht. Speziell für Arch Linux basierende Distributionen, bringt booster pacman Hooks mit, die den Initrd Erstellungsprozess bei einem Kernel Update Automatisieren.
Nachtrag:
Nachfolgend von mir noch warum ich auf Booster als mein Initrd Generator umgestiegen bin:
- mkinitcpio: Der Standard Arch Linux Initrd Generator. Muss vollständig von Hand konfiguriert werden und bietet keine Automatische Host-Konfigurations-Erkennung. Dies ist einer der Gründe, warum beim Erstellen auch so viele Warnungen generiert werden. Da die meisten ihn nicht vollständig konfigurieren und überflüssige Module mit ins Image packen lassen.
- dracut: Der Standard unter EndeavourOS. Schon mit Automatische Host-Konfigurations-Erkennung, aber benötigt für die Erstellung einer Initrd viel länger als booster. Das unteraderem daran liegt das in der Initrd ein systemd startet.
- booster: Schnell, kleine initrd und Verschlüsselung Out of the box
Was ich Konfigurieren musste:
Booster Konfiguration:
In der /etc/booster.yaml habe ich folgende Eintragungen gemacht:
universal: false compression: zstd strip: true extra_files: /crypto_keyfile.bin
|
|
Was die Optionen bewirken entnimmt, bitte dem Handbuch booster(1). Falls ihr LVM oder ein mdraid in Einsatz habt, wären die Optionen enable_lvm, enable_mdraid für euch intressant.
Bootloader Konfiguration:
Für einen Bootloader (GRUB) habe ich dann noch neue Menü Einträge generieren lassen. Wo auf der Kernel commandline folgende Parameter an booster übergeben werden:
rd.luks.name=$UUID=$NAME rd.luks.key=$PATH rd.luks.options=discard
|
|
Entfernung der crypttab
Zum Schluss musste ich dann noch die /etc/crypttab Datei entfernen, damit mein systemd nicht nocheinmal versucht die Root Partition aufzuschließen. Diese wurde von Booster bereits geöffnet.
Was habe ich gelernt?:
- Umgang und Konfiguration von booster
- Kernel Commandline Parameter sind nicht konsistent: Besonders die Paramter die mit rd. anfangen, sind auf den Initrd Generator zugeschnitten. Es wird unter den Entwicklern zwar versucht, einen Standard zu wahren, aber man darf sich nicht darauf verlassen.
- crypttab nur bei systemd: Diese wird nur bei initrd generatoren benötigt die ein systemd im initrd image einsetzten um die Root Partition zu öffnen.
Ich hoffe wie immer, das jemand meinen Beitrag auf irgendeiner Art und Weise nützlich fand.
LG Sebastian
|
« Letzte Änderung: 28. Dezember 2024, 14:08:41 von Sebastian » |
Gespeichert
|
Richtig um Hilfe bitten
|
|
|
Andreas
Administrator
    
Offline
Einträge: 1474

Linux von Innen
|
 |
Re:Optimierter Linux-Start mit Booster
« Antwort #1 am: 28. Dezember 2024, 14:36:00 »
|
|
Fand ich zunächst höchst interessant. Ich habe schon vor Jahren mittels bootchart meine Systeme auf "schnellstes Booten" optimiert... Also habe ich "booster" probiert. Das Ergebnis war ernüchternd: Die initramsfs war nur 200K kleiner als die zuvor mittels mkinitcpio erstellte, und der Bootvorgang war nicht objektiv schneller als vorher... Offenbar ist eine schon optimierte initramfs mittels booster nicht signifikant zu verbessern. Die 200K Plattenplatzersparnis lasse ich mal außer acht...
LG Andreas
|
|
Gespeichert
|
Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es teilen, und es Menschen gibt, die bereit sind, dieses Geschenk auch mit eigenem Einsatz anzunehmen.
Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
Ohne IT-Kompetenz ist man heutzutage ein willkommenes Opfer und Spielball anderer, egal, welches System oder Gerät man nutzt. Nur Wissen schützt vor Schaden!
|
|
|
Sebastian
YaBB God
    
Offline
Einträge: 663

|
 |
Re:Optimierter Linux-Start mit Booster
« Antwort #2 am: 28. Dezember 2024, 16:42:30 »
|
|
Irgendwann ist halt auch nicht mehr herauszuholen, falls man da schon dran gefeilt hat. Aber was ich draus lese ist, das du einiges von Hand Optimieren musstest. Die Autoerkennung von booster hatte bei mir schon einiges ausgemacht, entgegen der Autoerkennung von dracut.
Mit mkinitpico habe ich kein vergleich, da ich diesen schon lange nicht mehr nutze.
Was vielleicht unter dem Teppich gefallen ist, (weil nicht ganz so wichtig) ist die Zeit zum erstellen der Initrd. Wie gesagt booster Schaft ein image innerhalb von unter 2 Sekunden bei mir zu bauen. Dracut hatte da ca 40 Sekunden gebraucht. mkinitpico ist schon bei mir lange her, aber ich weis das dieser auch nicht in 2 Sekunden fertig war sondern auch wesentlich länger gebraucht hat. Dadurch ist ein Update dann auch schneller fertig wenn ein Kernel Update dabei ist.
Das soll hier aber auch nur von mir eine Anregung sein, weil ich gerne öfter auch was neues Ausprobiere und keinen falls einen weg beschreibt, dass es nichts Besseres gibt. Denn wir sprechen hier immer noch von Sekunden Zeitersparnis. Selbst wenn das bauen eines Images oder Booten 30-60 Sekunden dauern würde, spielt das für mich auch nicht wirklich eine Rolle (und ist mir noch schnell genug). Solange das keine Bootzeiten wie mit einer HDD wird ist alles gut.
Dafür hat ja auch jeder einen ganz anderen Bedarf. Mir kommen z.b. die ganzen Verschlüsselungssachen zugute, die für dich keine Rolle spielen, denke ich. Ja mkinitpico kann das auch aber wieder nur nach manueller Konfiguration. (Sprich Hooks in der Richtigen rein Folge einarbeiten etc.). Aber das ist halt für mich auch nur ein komfort Feature, das ich hier gerne mitnehme, weil ich viel mit Verschlüsselung mache.
LG Sebastian
|
« Letzte Änderung: 28. Dezember 2024, 16:48:40 von Sebastian » |
Gespeichert
|
Richtig um Hilfe bitten
|
|
|
Sebastian
YaBB God
    
Offline
Einträge: 663

|
 |
Booster hat Probleme mit btrfs
« Antwort #3 am: 30. Dezember 2024, 14:11:17 »
|
|
Hallo Suletuxe,
Leider ist mir das erst später aufgefallen, da das System augenscheinlich ohne Probleme läuft. Booster hat, anscheint ein Problem wenn btrfs im Einsatz ist. Und zwar zeigt mir lsblk -f nicht mehr vernünftig, alle mount Punkte von einem btrfs an. Es ist zwar alles ordentlich gemountet und funktioniert aber die Anzeige spinnt. So das bei jedem neuen Boot nur ein zufälliger Mount Punkt der Subvolumes angezeigt wird und nicht mehr alle.
Besonders, weil ich wert drauflege, dass der Intramfs Automat die meisten Dinge erkennen soll. So das ich nicht mehr viel Konfigurieren muss, ist booster bei mir erst einmal raus. Schade da mir besonders die Erzeugung eines Images innerhalb von 2 Sekunden sehr gefallen hatte.
LG Sebastian
|
|
Gespeichert
|
Richtig um Hilfe bitten
|
|
|
Seiten: [1]
|
|
|
|
|
|
|