logo

Suletuxe.de
Linux - Nutzer
helfen
Linux - Nutzern

Willkommen, Gast. Bitte Login oder Registrieren.
17. Juni 2025, 08:14:45
Übersicht Hilfe Suche Login Registrieren

Amateurfunk Sulingen
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Installation, Einrichtung und Systempflege  |  Thema: dracut optimierungen bei verwendung eines COW Dateisystems « zurück vorwärts »
Seiten: [1] nach unten Drucken
   Autor  Thema: dracut optimierungen bei verwendung eines COW Dateisystems  (Gelesen 272 mal)
Sebastian
YaBB God
*****

Offline

Einträge: 701





Profil anzeigen
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.

Code:

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

Profil anzeigen
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





Profil anzeigen
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:

Code:

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:

Code:

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

Profil anzeigen
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





Profil anzeigen
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

Code:

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:

Code:

dracut --list-modules


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





Profil anzeigen
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:

Zitat:
compress="zstd"

Erzeugte bei mir folgendes Initramfs:

Code:

❯ 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:

Zitat:
enhanced_cpio="yes"
compress="cat"
do_strip="no"

Ergab nun folgendes Initramfs:

Code:

❯ 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:

Code:

❯ 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





Profil anzeigen
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] nach oben Drucken 
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Installation, Einrichtung und Systempflege  |  Thema: dracut optimierungen bei verwendung eines COW Dateisystems « zurück vorwärts »
Gehe zu: 


Login mit Username, Passwort und Session Länge

 Es wird die Verwendung "Blink"-basierter Browser und mindestens 1024x768 Pixel Bildschirmauflösung
für die beste Darstellung empfohlen
 
freie Software für freie Menschen!
Powered by MySQL Powered by PHP Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Valid XHTML 1.0! Valid CSS!