
私は Debian OS が入った Nano Pi デバイスを使用しています。OS イメージは内部メモリ (8 GB) に存在します。使用されているメモリの合計サイズは約 4 GB です。この OS のバックアップをイメージ ファイルに作成したいと考えています。
やった後
dd if=/dev/mmcblk1 of=NanoPi.img bs=8M status=progress
イメージ ファイルの合計サイズは 8GB になります。メモリ全体ではなく、メモリで使用されている部分のみのイメージを作成するにはどうすればよいでしょうか。
答え1
dd
ブロック デバイスは単なるバイトのダンプなので、これを簡単に行うことはできません。 未割り当て領域に長い間削除されたファイルのデータが含まれている可能性があります。dd
これはファイルシステムの仕事なので、ファイルシステムはそれを認識しません。 いくつかのオプションがあります。
ddを使い続ける
... より大きなスペースの使用を受け入れます。代わりに、次のようにしますdd if=/dev/mmcblk1 of=NanoPi.img bs=64K conv=noerror,sync status=progress
。ブロック サイズを小さくすると、読み取りエラーが発生した場合のセキュリティが少し高まります。dd
少なくとも 1 つのセクターの読み取りに失敗した場合、ブロックの残りの部分は処理されません。ブロック サイズは、1 つの不良セクターで失われる可能性のある最大バイト数です。conv=noerror
エラーが発生した場合でもクローン作成が続行されるようにします。conv=sync
読み取りエラーが発生した場合に宛先ファイルのポインターを前方にシフトして、データが整列したまま有効になるようにします。
dd
出力をパイプしてgzip
データを圧縮し、スペースを節約すること ができます。dd if=/dev/mmcblk1 bs=64K conv=noerror,sync status=progress | gzip -c > NanoPi.img.gz
生の画像を取得するには、次のようにしますgunzip -c ./NanoPi.img.gz > NanoPi.img
。
rsyncを使用する
... 生のファイルを処理します。rsync -aAXv /path/to/mounted/mmcblk1 /path/to/destination/folder
ファイルシステムがマウントされているかどうかによって、これが機能するかどうかが決まります。