空き容量のないディスクイメージ

空き容量のないディスクイメージ

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 /ガベージを書きたくありません!時間がかかります。

  1. 最後のパーティション以降のコンテンツをコピーせずにイメージを作成するには?
  2. 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 カーネルにパーティションテーブルを読み込むように依頼してください。その後、そのイメージコンテンツを新しいパーティションに追加できる必要があります。partprobekpartxdd

おすすめ記事