Platz bei ext4 freigeben – wo sind meine 200 GByte?

Kein Kommentar Autor: Jürgen (jdo)

Ausnahmsweise mal raus aus der Krypto-Welt und zurück ins Linux-Unsiversum! Ich habe schon relativ lange eine externe USB-Festplatte mit 4 TByte an meinem Serverchen hängen. Sie ist mit dem Dateisystem ext4 formatiert und auf dem Datenträger liegt alles mögliche Zeugs drauf, plus diverse Backups und so weiter. Gestern hatte mir das System auf jeden Fall einen Fehler ausgeworfen, dass die Festplatte voll sei. Unglaublich, was sich alles so ansammelt und es ist definitiv Zeit für einen Frühjahrsputz.

Interessant fand ich es trotzdem, dass von 3,6 TByte nur 3,4 TByte genutzt wurden. Da fehlen also irgendwie gute 200 GByte, richtig? Die Frage ist nun, wie kann ich den reservierten Platz freigeben?

Irgendwer hat mir zirka 200 GByte geklaut

Irgendwer hat mir zirka 200 GByte geklaut

ext4 klaut nicht, ext4 reserviert (gilt übrigens auch für ext3 und ext2) und das will ich freigeben

Das Problem an dieser Stelle ist ganz einfach, dass bei der Erstellung des Dateisystems ext4 zirka 5 Prozent des gesamten Platzes reserviert werden. Das ist auch in gewisser Weise sinnvoll. Sollte Dir der Platz auf einem System ausgehen oder das root-System eben volllaufen, kann sich der Administrator root aber immer noch anmelden. Auch System Services profitieren von dem Mechanismus.

Man könnte natürlich darüber diskutieren, ob das System oder root für ein anmelden 200 GByte benötigt. Das scheint mir etwas sehr großzügig gerechnet. Die 5 Prozent stammen aus der digitalen Steinzeit und wurden nie angepasst. Modern ist die Zahl wirklich nicht mehr.

Darüber hinaus kommt hinzu, dass ich für meine externe Festplatte so eine Reservierung überhaupt nicht brauche. Die interne Festplatte mit dem Betriebssystem ist ebenfalls mit ext4 formatiert und da ist die Reserver ja schon drin. Deswegen sind die verschwundenen 200 GByte in meinem Fall wirklich reine Platzverschwendung.

tune2fs spendiert mehr Platz

Zum Glück lässt sich mit dem enthaltenen Tool tune2fs einiges anpassen.

Zunächst einmal kannst Du nachsehen, wie viel Blocks tatsächlich reserviert sind (also in meinem Fall ist /dev/sdb1 die Festplatte, mit der ich hantiere)

tune2fs -l /dev/sdb1

Bei der Ausgabe suchst Du einfach nach Reserved block count und dahinter steht eine Zahl. Die ist ganz schön saftig bei mir, 5 Prozent eben.

Nun kann ich mit

tune2fs -m 0 /dev/sdb1

bestimmen, dass der reservierte Platz auf 0 gesetzt wird. Dafür ist der Parameter -m 0 zuständig. In meinem Fall sollte das kein Problem sein, da sich auf der Festplatte nicht so viel ändert. Da ich aber gerne immer etwas konservativer bin, wenn es um meine produktiven Systeme geht, lasse ich der Festplatte 1 GByte als Reserve. Das sollte immer noch dicke reichen.

Im Fall meiner externen USB-Festplatte mit 4 TByte sind das ungefähr 0,025 Prozent des gesamten Storage.

tune2fs -m 0.025 /dev/sdb1

Nun gefällt mir die Sache schon besser:

Aha! Mein Datensystem mit ext4 hat knapp 200 GByte herausgerückt!

Aha! Mein Datensystem mit ext4 hat knapp 200 GByte herausgerückt!

Möchtest Du keine Prozent verwenden, sondern direkt eine Anzahl an Block, funktioniert das mit dem Parameter -r Blöcke. In meinem Fall würde der nachfolgende Befehl zum gleichen Ergebnis führen:

tune2fs -r 244188 /dev/sdb1

Wie soll ich das einstellen?

Wie die meisten Entscheidungen im Leben musst Du diese selbst treffen. In der Ruhe liegt die Kraft. Lass Dir die Zahlen Deines Systems oder Deiner Datenträger einfach durch den Kopf gehen. Ich würde zu konservativen Maßnahmen raten, weil man immer noch nach unten korrigieren kann.

Hast Du mehrere Datenträger oder Partitionen und willst Anpassungen an den Einstellungen für ext4 vornehmen, ist es vielleicht schlau, sie Schritt für Schritt durchzuführen. Das gilt vor allen Dingen für produktive Systeme. Ändere einfach eine Partition und lasse das System einige Tage laufen. Setze es vielleicht sogar ein bisschen unter Stress. Wenn Du keine Einbußen bei der Performance siehst (und die Patches gegen Meltdown und Spectre schon eingespielt sind 😉 ), nimm Dir den nächsten Brocken vor.

Änderst Du viele Sachen auf einmal, ist es wesentlich schwieriger, das Problemkind im Nachhinein zu lokalisieren.

Ich hoffe, Dir mit diesem kleinen aber feinen Hack einige GByte zusätzlich zur Verfügung gestellt zu haben. Storage kostet zwar nicht mehr die Welt, aber wenn es sowieso schon vorhanden ist … Mehr Platz schadet nie!




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.