it-swarm.com.de

Gibt es eine Möglichkeit, dass ext-Dateisysteme unter Linux weniger Speicherplatz für sich beanspruchen?

Ich habe eine Reihe von externen und internen 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, da ich dadurch den größtmöglichen Speicherplatz auf Festplatten habe.

Ich würde jetzt jedoch gerne zu Linux-Dateisystemen wechseln, hauptsächlich wegen der Berechtigungen und der Kompatibilität (z. B. kann ich meine LUKS-verschlüsselte NTFS-Partition nicht zur Größenänderung unter Linux veranlassen, was mir immer wieder sagt, dass ich unter Windows auf chkdsk umsteigen soll).

Als ich diese Festplatten formatierte, habe ich eine Reihe verschiedener Dateisysteme ausprobiert und jedes Linux-Dateisystem, sogar ext2, das meines Wissens kein Journaling hat, hat viel Platz für sich beansprucht. Ich kann mich nicht an exakte Werte erinnern, aber NTFS brachte mir mehr als 100 GB auf eine 2-TB-Festplatte, was sehr viel ist.

Meine Frage lautet also: Gibt es eine Möglichkeit, dass ext-Dateisysteme weniger Speicherplatz für sich beanspruchen? Oder gibt es ein anderes Dateisystem (ich habe ext2, ext3, ext4, NTFS und vfat ausprobiert - keines kam dem von NTFS angebotenen nutzbaren Speicherplatz überhaupt nahe) mit perfekter Linux-Unterstützung und großartigem nutzbarem Speicherplatz?

Ich würde gerne erfahren, wie und warum Dateisysteme (insbesondere ext2 ohne Journaling) so viel mehr Speicherplatz belegen als NTFS, und ich weiß nicht, wo ich sonst nachfragen soll. Ich bevorzuge meistens eine Möglichkeit, ext4 ohne Journaling zu verwenden, und alles andere, das so viel Platz beansprucht, wenn das möglich ist.

48
confetti

Standardmäßig reservieren ext2 und seine Nachfolger 5% des Dateisystems für den Root-Benutzer. Dies verringert die Fragmentierung und verringert die Wahrscheinlichkeit, dass dem Administrator oder Daemons, die sich im Root-Besitz befinden, kein Platz zum Arbeiten zur Verfügung steht.

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 Betrag von 5% wurde in den 1980er Jahren festgelegt, als die Festplatten viel kleiner waren, wurde aber so belassen, wie sie waren. Heutzutage ist 1% wahrscheinlich genug für die Systemstabilität.

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

tune2fs -m 0 /dev/sda1

Dies setzt den Prozentsatz der reservierten Blöcke auf 0% (0 Blöcke).

Verwenden Sie den folgenden Befehl, um (unter anderem) den aktuellen Wert abzurufen:

tune2fs -l <device> 
94
harrymc

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

Standardmäßig erstellt mkfs eine Reihe von Inodes, die es ermöglichen sollen, viele sehr kleine Dateien in Ihr Dateisystem zu kopieren. Wenn Sie wissen, dass die Dateien sehr groß sind und Sie nur eine kleine Anzahl von Dateien auf dem FS ablegen, können Sie die Anzahl der Inodes reduzieren.

Sich kümmern! Diese Anzahl (bzw. das Verhältnis zwischen Leerzeichen und Anzahl der Inodes) kann nur zum Zeitpunkt der Dateisystemerstellung festgelegt werden. Auch bei Verlängerung des FS bleibt das Verhältnis gleich.

3
glglgl

wenn die Daten, die Sie speichern möchten, komprimierbar sind, verbraucht btrfs, das mit compress=zstd (oder compress-force=zstd) geladen wurde, wahrscheinlich erheblich weniger Speicherplatz als ext *

  • dadurch komprimiert btrfs Ihre Daten transparent, bevor sie auf die Festplatte geschrieben werden, und dekomprimiert sie beim Zurücklesen transparent. Außerdem reserviert ext4 alle Inodes bei der Dateisystemerstellung im Voraus, btrfs erstellt sie nach Bedarf, was möglicherweise auch Platz spart.
3
hanshenrik