web-dev-qa-db-ja.com

resize2fsの新しいサイズを決定するにはどうすればよいですか?

私はext4ファイルシステムを縮小して新しいパーティション用のスペースを作りたいと思っていて、resize2fsプログラムに出くわしました。コマンドは次のようになります。

resize2fs -p /dev/mapper/ExistingExt4 $size

現在のext4ファイルシステムから正確に15 GiBを減算したい場合、どのように$sizeを決定する必要がありますか?dfの出力を何らかの方法で使用できますか?

23
Lekensteyn

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)

39
Lekensteyn