Gibt es eine Möglichkeit, Ext-Dateisysteme in Linux weniger Speicherplatz verbrauchen zu lassen?

Gibt es eine Möglichkeit, Ext-Dateisysteme in Linux weniger Speicherplatz verbrauchen zu lassen?

Ich habe eine Reihe externer und interner Festplatten, die ich auf einem Linux-System verwende. Ich habe nur Linux-Systeme, also wäre die Verwendung eines Linux-Dateisystems nur sinnvoll, oder? Allerdings verwende ich derzeit überall NTFS, weil ich damit den meisten nutzbaren Speicherplatz auf den Festplatten habe.

Ich würde jetzt allerdings gerne auf Linux-Dateisysteme umsteigen, hauptsächlich wegen der Berechtigungen und der Kompatibilität (ich kann beispielsweise die Größe meiner mit LUKS verschlüsselten NTFS-Partition unter Linux nicht ändern, unter Windows werde ich ständig aufgefordert, chkdsk auszuführen).

Als ich diese Festplatten jedoch formatierte, probierte ich eine Reihe verschiedener Dateisysteme aus und jedes Linux-Dateisystem, sogar ext2, das meines Wissens kein Journaling hat, verbrauchte viel Platz für sich selbst. Ich erinnere mich nicht an genaue Werte, aber es waren über 100 GB, die ich mit NTFS auf einer 2-TB-Festplatte mehr bekam, was viel ist.

Meine Frage ist also: Gibt es eine Möglichkeit, Ext-Dateisysteme weniger Speicherplatz verbrauchen zu lassen? Oder gibt es ein anderes Dateisystem (ich habe Ext2, Ext3, Ext4, NTFS und vfat ausprobiert – keines davon kam auch nur annähernd an den nutzbaren Speicherplatz heran, den mir NTFS bot) mit perfekter Linux-Unterstützung und viel nutzbarem Speicherplatz?

Ich würde gerne erfahren, wie und warum Dateisysteme (insbesondere Ext2, das kein Journaling hat) so viel mehr Speicherplatz verbrauchen als NTFS, und ich weiß nicht, wo ich sonst fragen soll. Am liebsten wäre mir eine Möglichkeit, Ext4 ohne Journaling und alles andere zu verwenden, was so viel Speicherplatz verbraucht, wenn das möglich ist.

Antwort1

Standardmäßig reservieren ext2 und seine Nachfolger 5 % des Dateisystems für den Root-Benutzer. Dies reduziert die Fragmentierung und verringert die Wahrscheinlichkeit, dass dem Administrator oder Root-Daemons kein Platz mehr zum Arbeiten bleibt.

Diese reservierten Blöcke verhindern, dass Programme, die nicht als Root ausgeführt werden, Ihre Festplatte füllen. Ob diese Überlegungen den Kapazitätsverlust rechtfertigen, hängt davon ab, wofür das Dateisystem verwendet wird.

Der Wert von 5 % wurde in den 1980er Jahren festgelegt, als die Festplatten noch viel kleiner waren, wurde aber einfach so belassen. Heutzutage reicht 1 % wahrscheinlich für die Systemstabilität aus.

-mDie Reservierung kann mit der Option des Befehls geändert werden tune2fs:

tune2fs -m 0 /dev/sda1

Dadurch wird der Prozentsatz der reservierten Blöcke auf 0 % (0 Blöcke) gesetzt.

Um unter anderem den aktuellen Wert abzurufen, verwenden Sie den folgenden Befehl:

tune2fs -l <device> 

Antwort2

Ein weiterer Punkt, über den noch nicht gesprochen wurde, ist die Anzahl der Inodes, die Sie auf Ihrem Dateisystem reservieren.

Standardmäßig erstellt mkfs eine Anzahl von Inodes, die es ermöglichen sollten, eine ganze Menge sehr kleiner Dateien in Ihr Dateisystem zu legen. Wenn Sie wissen, dass die Dateien sehr groß sein werden und Sie nur eine kleine Anzahl von Dateien in das FS legen, können Sie die Anzahl der Inodes reduzieren.

Achtung! Diese Zahl (bzw. das Verhältnis zwischen Speicherplatz und Anzahl der Inodes) kann nur beim Anlegen des Dateisystems festgelegt werden. Auch beim Erweitern des FS bleibt das Verhältnis gleich.

Antwort3

Wenn die Daten, die Sie darauf speichern möchten, komprimierbar sind, benötigt ein mit compress=zstd(oder compress-force=zstd) gemountetes btrfs wahrscheinlich deutlich weniger Speicherplatz als ext*

  • dadurch komprimiert btrfs Ihre Daten transparent, bevor sie auf die Festplatte geschrieben werden, und dekomprimiert sie transparent beim Rücklesen. Außerdem reserviert ext4 alle Inodes bei der Erstellung des Dateisystems vorab, btrfs erstellt sie nach Bedarf, ich denke, das könnte auch etwas Speicherplatz sparen.

verwandte Informationen