① SDカードの内容をDDで吸い出す
dd if=/dev/sdb of=sd.dd conv=noerror
※ conv=noerror を忘れると、途中で終わる可能性大
② partx -v -a で、loopデバイスに割り当てて、
第二パーティションをfsckできるようにする
③ fsck -f /dev/loop10p2 で、パーティション
の使用中の最大ブロックサイズを得る
④ esize2fs /dev/loop13p2 6500m でファイルシステム
の大きさを小さくする
⑤ fdisk で、該当パーティションを削除して、再作成
する
⑥ truncate -s 7088373760 で、ディスクイメージ
ファイルのサイズを縮小する
ディスクイメージをデバイスに割り当て・解除
partx -v -a temp/sd
partx -v -d /dev/loop10p2
ファイルシステムを指定したサイズにする
resize2fs /dev/loop13p2 8g
resize2fs /dev/loop13p2 6500m
※ コマンド終了時、結果のブロック長が
表示されるので、後に fsck でパーティション
を一旦削除(開始ブロックは削除前にメモ必須)
して、作成しなおす際に使用する
尚、ブロックサイズは、resize2fsの時とfsck
の時では、違っている場合がある(resize2fsでは
4096なのに、fsckでは512といった具合)ので、
計算して使用することになる
ファイルをサイズ指定した大きさにする
truncate -s 7088373760