Gibt es ein Linux-CLI-Tool zum Ermitteln des „belegten“ Speicherplatzes einer Partition? (wie gparted)

Gibt es ein Linux-CLI-Tool zum Ermitteln des „belegten“ Speicherplatzes einer Partition? (wie gparted)

Ich verkleinere eine Linux-SD-Kartenpartition mithilfe von AOakleys toller Anleitung. Ich versuche, es zu automatisieren, aber es scheint kein Befehlszeilentool zu geben, mit dem man die Anzahl der in einer Partition verwendeten Bytes bestimmen kann.

Beispielsweise teilt mir gparted mit, dass 1,88 GB von 6,99 GB Speicherplatz belegt sind (beachten Sie, dass ich /dev/loop0 verwende, das in der zweiten Partition von /dev/sdb gemountet ist):

dfist falsch:

% df /dev/loop0
Filesystem  ... Use%
udev        ... 0%

... und fdiskdrucken partedSie keinen belegten Speicherplatz aus.

Welche Befehlszeilenoption kann ich verwenden, um den belegten Speicherplatz einer Partition zu ermitteln gparted?

ANTWORT: Zusammenfassung von unten: Die Partition ist ext4, die es mir ermöglicht, Folgendes zu verwenden dumpe2fsund zu extrahieren: free blocks, block count(insgesamt) und block sizedie so kombiniert werden kann, dass sie genau übereinstimmt gparted. Es stellt sich heraus, dass dies resize2fsdie Fragmentierung während der Verkleinerung handhabt. Weitere Informationen finden Sie auf der Manpage ext4(obwohl der Manpage-Editor ein wenig verbittert ist, was GiB vs. GB angeht! :)

Antwort1

dfist fast das richtige Tool, aber Sie sollten den Einhängepunkt (oder eine beliebige Datei darunter) abfragen, der zu dem Dateisystem gehört, das Sie untersuchen möchten, nicht den Geräteknoten. Der von Ihnen verwendete Knoten, , /dev/loop0ist eine spezielle Datei, die zum virtuellen Dateisystem gehört udev; daher haben Sie udev.

Mounten Sie /dev/loop0(oder /dev/sdb2, ich bin nicht sicher, warum das nötig ist /dev/loop0) irgendwo (es kann romount sein) und rufen Sie auf df /the/mountpoint. Dann dfwird Ihnen angezeigt, was das Dateisystem über sich selbst meldet.

Ich sagte: " dfistfastdas richtige Tool", da es keine Garantie dafür gibt, dass Sie das Dateisystem (und später die Partition) auf die vom Tool gemeldete Größe verkleinern können. Was dfausgegeben wird, kann Ihre erste (oder eher nullte) Schätzung sein.

Sie benötigen unterschiedliche Tools, um die Größe verschiedener Feldsysteme zu ändern. In einer perfekten Welt kann Ihnen ein solches Tool (oder ein begleitendes Tool) die minimal mögliche Größe oder zumindest die minimale Größe nennen, bei der die Größenänderung sicher erfolgreich ist. In der Realität kann Ihnen Folgendes begegnen:

Bekannte Fehler:
Die von geschätzte Mindestgröße des Dateisystems resize2fsist möglicherweise falsch, insbesondere bei Dateisystemen mit Blockgrößen von 1 KB und 2 KB.

(Quelle)

gpartedverwendet dateisystemspezifische Tools. Ich habe es mit ausgeführt straceund keine Hinweise darauf gesehen, dass es verwendet df. Ich habe btrfs filesystem show …, dumpe2fs …, … gesehen.

Zusammenfassung:

  • Sie haben dfes falsch verwendet.
  • Es ist sowieso besser, ein auf das Dateisystem zugeschnittenes Tool zu verwenden gparted. Ich kann Ihnen nicht sagen, welches Tool Sie verwenden sollten, da Sie das betreffende Dateisystem nicht angegeben haben.

verwandte Informationen