SDカードのイメージをサイズ変更する手順

① 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