Standardmäßig reserviert Linux einen Teil eines Dateisystems für den Root-Benutzer, zumindest für ext4 (um zu verhindern, dass normale Benutzer das Laufwerk vollständig füllen und das System zum Absturz bringen, und um die Fragmentierung zu verringern). Zeigt jedoch df
nur den freien Speicherplatz an, der für normale Benutzer sichtbar ist (auch wenn er als Root ausgeführt wird). Wie zeigt man den "echten" freien Speicherplatz an, auf den root zugreifen kann?
quelle
tune2fs -l /dev/DEVICE | egrep "Block count|Reserved block count"
. ZB für meine "Multimedia Buffer" -Partition:Block count: 2621440
undReserved block count: 128449
: 4,9% der verfügbaren Blöcke (konservative Einstellung, um eine Fragmentierung zu verhindern).cut
Befehl muss nicht verwendet werden: Sie können die Felderawk
direkt auswählen . Tatsächlichcut
funktionierte der Befehl bei mir nicht wie erwartet. Wie auch immer, ich gab eine andere Antwort, die eine genauere Antwort geben sollte.tune2fs -m <percentage> <device-name>
, um den Speicherplatz zu ändern, der nur für die Root-Verwendung reserviert ist.sudo tune2fs -l $(df | grep -E '/$' | cut -d\ -f 1) | egrep "Reserved block count|Block size" | paste -sd\ | awk '{print ($4 * $7 / ( 1024 * 1024 ) ), "MB"}'
tune2fs /dev/sda1
oder noch besserstat -f -c '%a blocks free and %f blocks free for root (%S bytes per block)' /
Mit dem Befehl Tune2fs (in / sbin / Tune2fs ) können Sie den reservierten Speicherplatz leicht bestimmen : (und mehr!)
Ich werde die Informationen meines Systems als Referenz bereitstellen. Ich werde überflüssige Zeilen entfernen, die für diese Frage nicht wichtig sind:
Der Header ... und der Datenträgername, mit dem ich alle meine Laufwerke beschrifte , erleichtern die Identifizierung bei Bedarf.
WIRKLICH wollen, dass dies "sauber" sagt, während das System läuft. Ehrlich!
Hier beginnen die Informationen zur Datenspeicherkapazität:
Hier können Sie sehen, dass ich insgesamt 121.179.648 Blöcke habe ... mit einer Blockgröße von 4 KB (4096), die sich zu einer großen Zahl (462 GB) multipliziert. (Die Blockgröße ist unten angegeben.)
Und die reservierten Blöcke ... wenn Sie sich die Nummer oben und die Nummer unten ansehen ... sollten Sie relativ schnell herausfinden können, dass ich 1% reserviert habe. In diesem Fall (4,62 GB)
Wie viel freier Speicherplatz ist derzeit verfügbar? Genau hier!
Und die alles entscheidende Blockgröße. Nützlich zum Multiplizieren.
Diese Zeilen sagen, WER die Blöcke für ... Benutzer 0, root, in diesem Fall reserviert sind
Hier sind viel mehr Informationen verfügbar, aber dies sollte Ihnen die Möglichkeit geben, schnell festzustellen, wie viel verfügbar ist und wie viel mehr für root reserviert ist. Einfache Mathematik.
Hoffe das hilft. Denken Sie daran ... Manpages sind Ihre Freunde.
quelle
Dies zeigt freien Speicherplatz in Bytes in der Partition an, die sich auf "/ path" bezieht.
Sie müssen kein Superuser sein, um es auszuführen.
Übrigens verstehe ich nicht ganz, was der Unterschied zwischen ist
% s Blockgröße (für schnellere Übertragungen)
% S Grundblockgröße (für Blockzählungen)
in Verwendung von
stat
.quelle
bc
, um die Anzahl der Bytes zu ermitteln, oder sogar--format='%f*%S/1024/1024/1024' | bc
Kilobyte / Megabyte / Gigabyte abrufen, je nachdem, wie viele Abteilungen Sie auswählen.$(( ... ))
führt die Berechnung durch, ergibt jedoch nur den ganzzahligen Teil des Quotienten (wenn Sie Division hinzufügen). Oder meinst du, deine Shell unterstützt keine arithmetische Erweiterung?bc
stattdessen verwenden, können Sie den Quotienten mit beliebiger Genauigkeit erhalten, wenn Sie das brauchen.