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


22

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

resize2fs -p /dev/mapper/ExistingExt4 $size

$size現在のext4ファイルシステムから正確に15 GiBを差し引くかどうかを判断するにはどうすればよいですか?df何とかしての出力を使用できますか?

回答:


39

dfファイルシステム(この場合はext4)によって報告されたサイズを表示するため、使用しないでください。

dumpe2fs -h /dev/mapper/ExistingExt4コマンドを使用して、パーティションの実際のサイズを確認します。この-hオプションはdumpe2fs、他の多くの不必要な詳細なしでスーパーブロック情報を表示します。出力から、ブロック数ブロックサイズが必要です。

...  
ブロック数:               19506168  
予約済みブロック数:975308  
無料ブロック:13750966  
無料のiノード:4263842  
最初のブロック:0  
ブロックサイズ:                4096  
...

これらの値を乗算すると、バイト単位のパーティションサイズが得られます。上記の数字はたまたま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つを受け入れK、「1024のバイト」のために、62296032 KiBのにパーティションを縮小するためのコマンドは次のようになります。

resize2fs -p /dev/mapper/ExistingExt4 62296032K

ユニットがない場合、数値はファイルシステムのブロックサイズの倍数(この場合は4096)として解釈されます。man resize2fs(8)を参照してください


3
man resize2fs:必要に応じて、サイズパラメーターの後に、512バイトのセクター、キロバイト、メガバイト、またはギガバイトの単位指定子「s」、「K」、「M」、または「G」のいずれかをサフィックスとして付けることができます。 。ブロック計算を行うよりも簡単かもしれません。
lkraav

1
あなたは欠落していないkresize2fs -p /dev/mapper/ExistingExt4 62296032
ソパラホデアリエレス

@SopalajodeArrierezそうですね、首都Kがありませんでした。私の場合、この文字がないと、サイズが実際のディスクよりも大きいため、resize2fsが文句を言うはずです。
-Lekensteyn

2
dumpe2fsパーティションサイズを報告しません。ファイルシステムのサイズを実際に報告します。(これはおそらく、あなたが望むものだからです。)
Mehrdad
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.