私はext4ファイルシステムを縮小して新しいパーティション用のスペースを作りたいと思っていて、resize2fs
プログラムに出くわしました。コマンドは次のようになります。
resize2fs -p /dev/mapper/ExistingExt4 $size
現在のext4ファイルシステムから正確に15 GiBを減算したい場合、どのように$size
を決定する必要がありますか?df
の出力を何らかの方法で使用できますか?
df
は、ファイルシステム(この場合はext4)によって報告されたサイズを示すため、使用しないでください。
使用 dumpe2fs -h /dev/mapper/ExistingExt4
コマンドを使用して、パーティションの実際のサイズを確認します。 -h
オプションはdumpe2fs
他の多くの不要な詳細なしでスーパーブロック情報を表示します。出力から、ブロック数とブロックサイズが必要です。
... ブロック数: 19506168 予約済みブロック数:975308 空きブロック:13750966 空きiノード:4263842 最初のブロック:0 ブロックサイズ: 4096 ...
これらの値を乗算すると、パーティションサイズがbytesで示されます。上記の数値は、1024の完全な倍数です。
$ python -c 'print 19506168.0 * 4096 / 1024'
78024672.0
15 GiB(これは15 MiBに1 KiBを掛けたものです)でパーティションを縮小したいので):
$ python -c 'print 19506168.0 * 4096 / 1024 - 15 * 1024 * 1024'
62296032.0
なので resize2fs
は数種類のサフィックスを受け入れます。そのうちの1つは「1024バイト」のK
です。パーティションを62296032 KiBに縮小するコマンドは次のようになります。
resize2fs -p /dev/mapper/ExistingExt4 62296032K
単位がない場合、数値はファイルシステムのブロックサイズ(この場合は4096)の倍数として解釈されます。参照 man resize2fs(8)