最近、ext4ファイルシステムのサイズを500GBに縮小しました
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 493G 64G 404G 14% /
ここで、ファイルシステムのサイズに正確に合うようにパーティションサイズを縮小したいと思います。
私はpartedとresizepartコマンドを使用しようとしました。問題は、partedが新しいサイズを要求するときです。 500GBを選択すると、結果のパーティションは500GBよりも小さくなり、その結果、基になるファイルシステムはこのパーティションに収まりません。正しいサイズ計算を行う方法に関するヒントはありますか?
df
によって報告されたサイズは、ファイルシステムによって内部的に使用されるデータブロックとミスブロック、および予約済みブロックのみを考慮しているため、正しくありません。
簡単な方法は、ファイルシステムを必要以上に少なくとも10%縮小することです。パーティションのサイズを必要なサイズに変更してから、resize2fsを使用してファイルシステムを拡張します。
手作業で計算したい場合は、ファイルシステムの内部の大きさを知る必要があります。これをtune2fs -l /dev/sda2
で確認し、ブロック数にブロックサイズを掛けます。 partedでパーティションのサイズを変更するときは、ユニットをunit s
およびprint
テーブルのあるセクターに切り替えて、開始セクターと論理セクターのサイズを取得します。合計サイズをバイト単位で上からセクターサイズで割ります。 2048の最も近い倍数に切り上げ、このセクター数にサイズ変更します(終了セクター=セクターのサイズ+開始セクター-1)。
式(python最初の4つの値を入力するだけで実行可能):
block_count = N
block_size = N
sector_size = N
start_sector = N
fs_size = block_count * block_size
fs_sectors = fs_size/sector_size
part_sectors = ((fs_sectors-1)/2048+1)*2048
end_sector = start_sector + part_sectors - 1
print "Partition start: %d end: %d size: %d"%(start_sector,end_sector,part_sectors)
print "Resize in parted with: \nresizepart <number> %ds"%(end_sector)