Wie bestimme ich die neue Größe für resize2fs?

22

Ich möchte ein ext4-Dateisystem verkleinern, um Platz für eine neue Partition zu schaffen, und bin auf das resize2fsProgramm gestoßen. Der Befehl sieht folgendermaßen aus:

resize2fs -p /dev/mapper/ExistingExt4 $size

Wie soll ich feststellen, $sizeob ich genau 15 GiB vom aktuellen ext4-Dateisystem subtrahieren möchte? Kann ich die Ausgabe von dfirgendwie nutzen?

Lekensteyn
quelle

Antworten:

39

Sie sollten es nicht verwenden, dfda es die vom Dateisystem angegebene Größe anzeigt (in diesem Fall ext4).

Verwenden Sie den dumpe2fs -h /dev/mapper/ExistingExt4Befehl, um die tatsächliche Größe der Partition zu ermitteln. Mit dieser -hOption dumpe2fswerden Superblockinformationen ohne viele andere unnötige Details angezeigt. Für die Ausgabe benötigen Sie die Blockanzahl und die Blockgröße .

...  Blockzählung 
:               19506168  
Anzahl reservierter Blöcke: 975308  
Freie Blöcke: 13750966  
Kostenlose Inodes: 4263842  
Erster Block: 0  
Blockgröße:                4096  
...

Multiplizieren Sie diese Werte, um die Partitionsgröße in Byte zu erhalten . Die obigen Zahlen sind ein perfektes Vielfaches von 1024:

$ python -c 'print 19506168.0 * 4096 / 1024'
78024672.0

Da Sie die Partition um 15 GiB verkleinern möchten (das sind 15 MiB mal 1 KiB):

$ python -c 'print 19506168.0 * 4096 / 1024  -  15 * 1024 * 1024'
62296032.0

Da resize2fsmehrere Arten von Suffixen akzeptiert werden, von denen eines Kfür "1024 Bytes" steht, lautet der Befehl zum Verkleinern der Partition auf 62296032 KiB:

resize2fs -p /dev/mapper/ExistingExt4 62296032K

Ohne Einheit wird die Nummer als ein Vielfaches der Blockgröße des Dateisystems interpretiert (in diesem Fall 4096). Siehe man resize2fs (8)

Lekensteyn
quelle
3
man resize2fs: Optional kann dem Größenparameter einer der folgenden Einheitenbezeichner angefügt werden: 's', 'K', 'M' oder 'G' für 512-Byte-Sektoren, Kilobyte, Megabyte bzw. Gigabyte . Ist möglicherweise einfacher als Blockberechnungen.
lkraav
1
Fehlt dir nicht ein kbei resize2fs -p /dev/mapper/ExistingExt4 62296032?
Sopalajo de Arrierez
@SopalajodeArrierez Sie haben Recht, ein Kapital Kfehlte. Ohne diesen Buchstaben sollte sich resize2fs in meinem Fall beschweren, da die Größe größer ist als die tatsächliche Festplatte.
Lekensteyn
2
dumpe2fsgibt die Partitionsgröße nicht an; es gibt wirklich die Größe des Dateisystems an. (Was gut ist, weil es wahrscheinlich ist, was Sie wollen.)
Mehrdad