ddを使用してSDカードの画像コンテンツのみをバックアップします。

ddを使用してSDカードの画像コンテンツのみをバックアップします。

128GBのSDカードを搭載したRaspberry Pi(RPi)があります。 SDカードには、バックアップしたいRPiの完全なオペレーティングシステムと設定が含まれています。 SDカードのすべてのファイルの合計サイズは約350MBです。

Linuxディストリビューションを実行しているノートブックにSDカードを挿入し、ddを使用してファイルをコピーしました。コンテンツSDカード:

sudo dd if=/dev/sdb of=RPi4Image.img

命令が長くかかって私のノートパソコンで生成されたファイルサイズを確認してみると44GBサイズなのにまだ生成が終わっていない状態でした。私はファイルサイズが128 GBで終わり、350 MBのコンテンツのみをバックアップすると仮定しましたが、これは私には適していません。

私はそのプロセスをやめました。

上記の350MBのコンテンツ/ファイルのみをバックアップするだけですが、このddコマンドはSDカード全体(すべて128GB)のイメージを生成するようです。

  • ddコマンドがデバイス全体をバックアップし、ファイルサイズがフルSDカードサイズと同じであると仮定するのは正しいですか?
  • それでは、SDカードの350MBのコンテンツのみを復元するためにSDカードをバックアップして復元する方法はありますか(必要な場合)?

答え1

ddコマンドがデバイス全体をバックアップし、ファイルサイズがフルSDカードサイズと同じであると仮定するのは正しいですか?

はい、ddブロック単位でコピーするかどうか

それでは、SDカードの350MBのコンテンツのみを復元するためにSDカードをバックアップして復元する方法はありますか(必要な場合)?

あなたはそれを使用することができます部分クローンこれを達成するために

答え2

ddそのうちの1つの終わりに達するまで、引数なしでソースからターゲットにコピーします。しかし、これがツールを使用する唯一の方法でも一般的な方法でもありません。たとえば、カードのファイルシステムが最初の2GBのスペースに制限されていることがわかっている場合は、そのスペースのみをダンプするように指定できます。bsblocksizeオプションとオプションを使用してcountこれを行うことができます。

dd if=/dev/sdb1 of=new.img bs=1M count=2048

必要に応じて、resize2fsLinuxファイルシステムのサイズを変更してドライブの先頭のみを占有できます。

ただし、ファイルシステムがディスクの一部に限定されず、Linuxでサイズを変更できない場合(例:ext2/3/4)、唯一のオプションはディスク/パーティション全体のイメージを作成することです。

幸い、システムを新しいカードに取り付けていて、長時間読み書きモードで使用していないと、通常システムに障害が発生します。たくさんまたはゼロで、ほぼ完全に使用されたスペースに圧縮されます。したがって、画像ファイルを受け取ったらすぐにgzipまたはzipに圧縮してください。

ディスクにファイル全体が必要ないように、すぐにこれを実行することもできます。

dd if=/dev/sdb1 | gzip | dd of=new.img.gz

ifこれは、orが指定されていない場合はデフォルトでORに設定されているためです。コピー時間は節約されませんが、イメージの保存に必要なディスク容量は節約されます。ofstdinstdout

関連情報