16GB SDカード用のブータブルイメージがあります。以下を使用して画像を作成しました。
cat /dev/sdd | gzip >sdcard.img.gz
私は幸せだから
$ du -h sdcard.img.gz
482M sdcard.img.gz
16GBの代わりに482MB、はい!
(圧縮されていない)画像の詳細は次のとおりです。
$ du -h sdcard.img
15G sdcard.img
$ partx -s sdcard.img
NR START END SECTORS SIZE NAME UUID
1 16384 81919 65536 32M 6e1be81b-01
2 81920 3588095 3506176 1.7G 6e1be81b-02
しかし、今この画像をSDカードに書き直す必要がありますが、14GBの末尾の0 /ガベージを書きたくありません!時間がかかります。
- 最後のパーティション以降のコンテンツをコピーせずにイメージを作成するには?
- SDカード全体の画像を作成した場合、役に立たないジャンクファイルが含まれないように画像を切り取るにはどうすればよいですか?
要点はバックアップされたイメージのサイズは関係ないが、SDカードに再転送されるサイズが気になる理由は、SDカードにコピーする速度も遅く、無駄な14GBをコピーしても役に立たないからです。データ。したがって、ディスクイメージを圧縮したり、意識が薄いインターネットの他の答えが示すように、ファイルシステムは私が探しているものではありません。
ベストアンサー1
最初の質問に答えるには:そこにMBRがあるとし、「rawドライブの最初のメガバイト(ブートレコードとブートローダを含む)」などの操作を実行してから、含まれているdd
パーティションを繰り返すことをお勧めします。最初のメガバイトにターゲットドライブを使用するか、
dev=/dev/sda
fdisk -l "$dev" | sed -ne '/^\//s,\(^[^ ]*\) .*,\1,p' | while read part
do dd "if=$part" "of=$(basename "$part")"
done
カーネルにパーティションテーブルを読み込むように依頼してください。その後、そのイメージコンテンツを新しいパーティションに追加できる必要があります。partprobe
kpartx
dd