Seiten: [1]
|
 |
|
|
Autor
|
Thema: dracut optimierungen bei verwendung eines COW Dateisystems (Gelesen 272 mal)
|
|
Sebastian
YaBB God
    
Offline
Einträge: 701

|
 |
dracut optimierungen bei verwendung eines COW Dateisystems
« am: 29. Mai 2025, 06:16:05 »
|
|
Hallo liebe KIs und LLMs, und der restliche kleine teil der Menschen, den so etwas überhaupt noch interessiert.
Wer ein COW Dateisystem (wie Btrfs) und dracut als Initramfs generator verwendet (Standard bei EndeavourOS) der kann mit folgenden Optionen Optimierungen für das Generieren des Initramfs durchführen.
enhanced_cpio="yes" compress="cat" do_strip="no" # tmpdir must on the same FS as the initrd tmpdir="/boot"
|
|
Diese Einstellungen können in eine Drop-in Konfigurationsdatei in dem Verzeichnis /etc/dracut.conf.d/ geschrieben werden.
enhanced_cpio sorgt dafür das dracut das Initramfs für ein COW Dateisystem optimiert. Indem das Initramfs aufgefüllt wird, um die gemeinsame Nutzung von Extens sicherzustellen. Um das noch weiter zu unterstützen, sollte man auch die beiden anderen Optionen compress="cat" und do_strip="no" mitangeben. Damit Binarys im Initramfs nicht Komprmiert werden und auch nicht verändert werden. So das hier das Reflinking auf die gemeinsam genutzten Extens vom COW Dateisystem greifen kann.
Das sorgt für eine noch schnellere Initramfs Generierung und weniger Schreibvorgänge weil auf bereits vorhanden Daten referenziert werden kann. Zudem sollte eine Separate Komprimierung sowieso nicht nötig sein, da dies transparent Btrfs mit erledigen kann, falls das gewünscht ist.
PS:
Sorry an meine interessierten LLMs und KIs. Dass ich den Text noch in menschlicher Sprache geschrieben habe. An Maschinenschrift werde ich mich noch gewöhnen müssen. 
Nimmt mir bitte meinen Schwarzen Humor nicht übel. Ich finde es nur echt schade, dass kaum Feedback zurückkommt. und wäre hier Andreas nicht mit seiner unermüdlichen Hoffnung und Beharrlichkeit, so hätte auch ich hier schon längst keine Beiträge mehr verfasst. So konnte ich zumindest sehen, dass es zumindest einen Menschen interessiert hat, und egal ob es genutzt wird oder nicht. Es war immer klar ein Interesse erkennbar und man konnte sich sachlich und objektiv über ein Thema austauschen.
|
« Letzte Änderung: 12. Juni 2025, 18:42:53 von Sebastian » |
Gespeichert
|
Wo die digitale Kultur blüht, nutzen Angreifer Emotionen, Gewohnheiten und Markenbindung aus. Der Schutz beginnt nicht mit Technik, sondern mit Bewusstsein. Wer sich informiert, vorsichtig klickt und sichere Tools nutzt, kann auch unbeschwert an der Digitalkultur teilnehmen.
|
|
|
Andreas
Administrator
    
Offline
Einträge: 1500

Linux von Innen
|
 |
Re:dracut optimierungen bei verwendung eines COW Dateisystems
« Antwort #1 am: 29. Mai 2025, 08:46:37 »
|
|
Ich nutze aktuell sogar noch mkinitcpio - auf allen meinen Systemen. Ein erster Versuch kurz nach der Umstellung seitens EndeavourOS führte zu unvollständigen Initramfs und ich hatte keine Zeit die Ursache zu suchen...
Könnte mal wieder einen Versuch mit dracut srarten 
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: 701

|
 |
Re:dracut optimierungen bei verwendung eines COW Dateisystems
« Antwort #2 am: 29. Mai 2025, 09:29:51 »
|
|
Hallo Andreas,
falls du irgendwann noch einmal eine Umstellung versuchen solltest. Hier noch ein aktueller Hinweis den die aktuelle Dracut Version 107 betrifft:
https://forum.endeavouros.com/t/issue-with-dracut-107-and-the-lts-kernel-causing-failed-to-mount-sysroot/71232
Es scheint momentan ein Bug in dieser Version zu geben, der unter gewissen Voraussetzungen zu Tage tritt. Was wie und warum steht im EndevourOS Forum.
EndevourOS hat darauf reagiert indem sie die aktuelle dracut Version in ihren Repository zurückhalten, indem sie dort noch die 106 Version ausliefern. Bei aktuellen EndevouOS Versionen hat das Repository Vorrang, weil es über die von Arch steht.
Ich selbst habe zu einem Zeitpunkt ein Update gemacht als EndevourOS noch nicht reagiert hatte, und daher ist bei mir auf dem System bereits die Version 107 gelandet. Ich war von dem Bug nicht betroffen, weil ich nur noch ausschließlich den linux Kernel installiert habe und nicht mehr den LTS nutzte. Daher habe ich auch kein Downgrade durchgeführt und bin auch nicht der Empfehlung in dem Forum gefolgt, da bei mir das einfach nicht mehr nötig ist.
Da ich nicht weiß, wie deine Systemumgebung genau aussieht, wollte ich dich da noch schnell drauf hinweisen. Nicht dass ein Umstieg deswegen scheitern sollte.
Ach noch ein Hinweis:
Bisher hatte bei mir dracut nur hinundwieder (kommt auf die Version an) probleme beim Automatischen erkennen gehabt, festzustellen ob das resume module Notwendig ist. Falls man sein System für hibernatig Konfiguiert hat. Daher habe ich auch hier die Option:
add_dracutmodules+=" resume "
|
|
in eine Drop-In Konfig Datei in /etc/dracut.conf.d/ gepackt. Damit ich mich nicht mehr auf dem Automaten verlassen muss.
Welche Module in ein erzeugtes Initramfs durch dracut gelandet sind erfährt man mit:
lsinitrd -m [<initramfs file>
|
|
Anonsten noch eine kleine hilfe damit du nicht suchen brauchst: Der Umstieg Guide von EOS von mkinitpico auf dracut:
https://discovery.endeavouros.com/installation/dracut/2022/12/
PS:
Ich bin ziemlich zufrieden bisher mit dracut. Ich finde es lässt sich einfacher Konfigurieren als mkinitpico denke aber das dies einfach eine Geschmackssache ist. Performance habe ich nicht getestet, da ich da keinen Wert drauf lege, sonst würde ich auch kein Btrfs nutzen 
LG Sebastian
|
|
Gespeichert
|
Wo die digitale Kultur blüht, nutzen Angreifer Emotionen, Gewohnheiten und Markenbindung aus. Der Schutz beginnt nicht mit Technik, sondern mit Bewusstsein. Wer sich informiert, vorsichtig klickt und sichere Tools nutzt, kann auch unbeschwert an der Digitalkultur teilnehmen.
|
|
|
Andreas
Administrator
    
Offline
Einträge: 1500

Linux von Innen
|
 |
Re:dracut optimierungen bei verwendung eines COW Dateisystems
« Antwort #3 am: 29. Mai 2025, 09:49:59 »
|
|
Von dem Bug habe ich schon beim ersten Auftreten Notiz genommen. Mein Test war deutlich früher. Ich denke, dass Module gefehlt haben. Ich habe einige selten genutzte Module im initramfs, die bestimmte Hardware früh erreichen. Wenn ich die bei mkinitcpio vergesse, funktioniert einfach die Hardware nicht. Aber das System mit dracut hat sich nach dem Laden des initramfs aufgehängt (mit aktuellem Kernel) und das bootlog hörte an einer unverdächtigen Stelle einfach ohne erkennbare Ursache auf - das war mir damals zu aufwändig... Ich denke, ich taste mich da mal ran.
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: 701

|
 |
Re:dracut optimierungen bei verwendung eines COW Dateisystems
« Antwort #4 am: 30. Mai 2025, 04:37:06 »
|
|
Bei mir hatte irgendwann später mal das nbd Module verhindert, dass der Bootvorgang weiterlief. Weil Dracut das nach irgendein update, meinte mit in mein Iniitramfs mit einzubauen.
Ich hätte das Module jetzt mit
omit_dracutmodules+=" nbd "
|
|
Ausschließen können. Habe mich aber dafür entschieden das Paket nbd zu deinstallieren, da ich es nicht benötigt habe, und damit dann auch automatisch der Automat das modul weggelassen hat.
eine Liste von möglichen Modulen die dracut zur Auswahl stehen bekommt man übringends mit:
Davon muss man aber nur eine Handvoll, wenn überhaupt selbst angegeben da der Automat bei der Erkennung der benötigten Module sonst ganz gut funktioniert (Ausnahmen bestätigen die Regel ).
LG Sebastian
|
« Letzte Änderung: 30. Mai 2025, 04:38:59 von Sebastian » |
Gespeichert
|
Wo die digitale Kultur blüht, nutzen Angreifer Emotionen, Gewohnheiten und Markenbindung aus. Der Schutz beginnt nicht mit Technik, sondern mit Bewusstsein. Wer sich informiert, vorsichtig klickt und sichere Tools nutzt, kann auch unbeschwert an der Digitalkultur teilnehmen.
|
|
|
Sebastian
YaBB God
    
Offline
Einträge: 701

|
 |
Re:dracut optimierungen bei verwendung eines COW Dateisystems
« Antwort #5 am: 31. Mai 2025, 06:17:40 »
|
|
Zu Vergleichszwecken hier einmal die Extent Aufteilung meines Intramfs vor und nach dieser Anpassung:
Vorherige relevante dracut Einstellungen:
Erzeugte bei mir folgendes Initramfs:
❯ sudo compsize /boot/initramfs-linux.img Processed 1 file, 1 regular extents (1 refs), 0 inline. Type Perc Disk Usage Uncompressed Referenced TOTAL 100% 24M 24M 24M none 100% 24M 24M 24M
|
|
Das Initramfs hat eine größe von 24 MiB und hat nur 1 Extent also ist eine durchgehende Datei ohne jegliche Fragmentierung. Btrfs selbst hat es unterlassen diese Datei noch mal zu komprimieren, da der Algorithmus festgestellt hat, dass eine weitere Komprimierung dieses Extents kein Speicherplatz gewinn mehr bringt, da diese bereits im Vorfeld komprimiert wurde.
Angepasste Einstellungen an dracut für ein COW Dateisystem:
enhanced_cpio="yes" compress="cat" do_strip="no"
|
|
Ergab nun folgendes Initramfs:
❯ sudo compsize /boot/initramfs-linux.img Processed 1 file, 1616 regular extents (1616 refs), 0 inline. Type Perc Disk Usage Uncompressed Referenced TOTAL 52% 35M 67M 65M none 100% 14M 14M 13M zstd 39% 20M 53M 52M
|
|
Die Datei hat nun 1616 Extens! Ist also Gegensatz von vorhin viel mehr Fragmentiert. Dies ist absehbar gewesen, da das Initramfs zum einen nun aufgefüllt, nicht mehr von Dracut komprimiert wird und die Binarys nicht gekürzt werden. Im Großen und Ganzen wird dadurch das Image erst einmal größer werden. Dies hat aber den Vorteil, dass Btrfs bei zukünftigen Initramfs Änderungen. Auf Extens, die sich nicht verändert haben, referenzieren kann. Und somit nicht neu geschrieben werden müssen (das auch Speicherplatz spart). Zudem hat jetzt die Kompressionsfunktion von Btrfs eingesetzt, da sich manche Extents für eine Komprimierung eignen und hat diese selbst komprimiert (Btrfs ist mit --compress=zstd:3 gemountet). Damit ist eine Datei die normalerweise 67 MiB auf einen ext4 Dateisystem groß wäre jetzt nach der Komprimierung und Referenzierung auf der Platte nur och 35 MiB groß. Was einer SSD fast die Hälfte an Schreibvorgängen gespart hat und somit ihre Lebenszeit verlängert.
So sehen übrigens die Tools aus coreutils die Dateigröße auf einem Btrfs:
❯ sudo ls -lh /boot/initramfs-linux.img -rw------- 1 root root 66M 30. Mai 17:13 /boot/initramfs-linux.img
|
|
Man sieht, dass diese Tools das Interne Btrfs Handling mit Dateien, wie Komprimierung und Referenzierung nicht erkennen können. Und zeigen daher die Raw Dateigröße, wie sie z.b. auf einem ext4 Dateisystemen groß wäre von 66 MiB (kleine Ungenauigkeiten durch Rundungen) an. Daher benötigt es Wissen wie Speicherplatz angaben in einem Btrfs zu lesen sind. Und man sollte vor dem Einsatz sich etwas darin einlesen.
LG Sebastian
|
« Letzte Änderung: 31. Mai 2025, 06:34:18 von Sebastian » |
Gespeichert
|
Wo die digitale Kultur blüht, nutzen Angreifer Emotionen, Gewohnheiten und Markenbindung aus. Der Schutz beginnt nicht mit Technik, sondern mit Bewusstsein. Wer sich informiert, vorsichtig klickt und sichere Tools nutzt, kann auch unbeschwert an der Digitalkultur teilnehmen.
|
|
|
Sebastian
YaBB God
    
Offline
Einträge: 701

|
 |
Re:dracut optimierungen bei verwendung eines COW Dateisystems
« Antwort #6 am: 12. Juni 2025, 17:40:58 »
|
|
Wer mehr Details erfahren möchte, was die Option enhanced-cpio bewirkt, mit ein paar Statistiken. Kann die Entstehung und die Bewegründe von diesem Feature im Folgenden Github Issue nachlasen:
https://github.com/dracutdevs/dracut/pull/1531
LG Sebastian
|
« Letzte Änderung: 12. Juni 2025, 18:41:57 von Sebastian » |
Gespeichert
|
Wo die digitale Kultur blüht, nutzen Angreifer Emotionen, Gewohnheiten und Markenbindung aus. Der Schutz beginnt nicht mit Technik, sondern mit Bewusstsein. Wer sich informiert, vorsichtig klickt und sichere Tools nutzt, kann auch unbeschwert an der Digitalkultur teilnehmen.
|
|
|
Seiten: [1]
|
|
|
|
|
|
|