ディスクイメージの縮小方法(for Linux)

SDカードいっぱいにパーティションが作成されている場合、データが無い部分も含まれていて、そのままイメージ化すると無駄が多い。
そこで、データが記録されている部分だけにパーティションを縮小してイメージ化する方法をまとめた。

ストレージのサイズ変更(縮小)

以下は別PC(Linux専用機)のFedoraでの作業

概要: 第2パーティションの使用量は2GB弱。(dfコマンドで確認する)
目標パーティションサイズを2.3GBとする。(少し余裕を残さないと後で困る)
resize2fsで縮小するサイズは2.2GBとする。

e2sck -f /dev/sdd2
チェックする(必須)

resize2fs -p /dev/sdd2 2200M
目標パーティションサイズより少し少なくする
指定サイズが小さすぎて縮小が無理だとエラーがでる

fdisk /dev/sdd
dコマンドで第2パーティションを削除する
pコマンドで状態を確認する
nコマンドで新しいパーティションを作る(開始シリンダに注意)
pコマンドで状態を確認する
wコマンドで書き込む

ストレージのサイズ変更(最大に拡張)

e2fsck -f /dev/sdd2
チェックする(必須)

fdisk /dev/sdd
dコマンドで第2パーティションを削除する
pコマンドで状態を確認する
nコマンドで新しいパーティションを作る(開始シリンダに注意)
pコマンドで状態を確認する
wコマンドで書き込む

resize2fs -p /dev/sdd2
サイズ指定をしなければ、パーティションサイズまで自動で拡張される

SDカードからイメージを作成

SDカードに作成した状態から、最小限のサイズだけイメージ化する。
例えば、8GBのカードに最小構成を作成して上記パーティションの縮小作業をして2GBまで切り詰めたとする。
これをそのままddやWin32DiskImageでイメージ化すると、8GBカードの後半6GBもゴミデータとしてファイルに書き出されてしまう。

こうしてやれば、出来上がったイメージを4GBのカードに展開することもできる。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS