ddを使用してディスクを複製しますが、特定のパーティションを除外する方法は?
だから私は(Raspberry Pi 4Bで)次のようになります。
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/mmcblk0p2 532480 227000319 226467840 108G 83 Linux
/dev/mmcblk0p3 227000320 1000144895 773144576 368.7G 83 Linux
pi.img
必要に応じて復元できるように、システム全体をファイル(おそらく)にバックアップしたいと思います。
しかし、バックアップする方法/dev/mmcblk0p1
と/dev/mmcblk0p2
ただ? (/dev/mmcblk0p3
動画が多いパーティションで368GBが大きすぎて除外しました。)
これを行うことができない場合、dd
他のオプションはありますか?ありがとうございます。
答え1
「バックアップセクター227000320」
完全な/dev/mmcblk0pディスクのバックアップを開始し、/dev/mmcblk0p2の最後でコピーを停止します。 227000320 セクタとして計算されます。
ノート:上記の入力内容には基本情報がないため、以下の情報があるとします。
単位:1 * 512 = 512バイトセクタ
部門サイズ(論理/物理): 512バイト/512バイト
これは、ユニット番号とセクタ番号が正確に何を示すか(512バイト)を伝えます。
以下のように、ddデフォルト設定(bs = 512またはそれに対応するbs = 1b)を使用してバックアップします。ただし、bs値が小さくIOアクセスが大きいため、このコマンドは時間がかかりすぎます。最適化されたコマンドが必要です。 (このコードは理解を助けるためのものです。)
sudo dd if=/dev/mmcblk0p of=/backup_folder/RasPiBackup_1b.img bs=1b count=227000320 status=progress
ノート: 範囲「1b」同じ「512」。必要に応じて交換できます。以下の情報源を参照してください。
説明によるとhttps://www.landoflinux.com/linux_dd_command.html:
b = 512 | K = 1024 | M = 1024 * 1024 | G=1024*1024*1024
あなたの場合:bs - >カウント| 1b - > 227000320 | 1K -> 113500160 | 1M -> 1G -> 109
私の(Pi4 4GB)システムでは、最も速いコピー速度はbs = 1Mとbs = 4Mの間です。
### バックアップの開始###
したがって、最適化されたコマンドは次のようになります。
sudo dd if=/dev/mmcblk0p of=/backup_folder/RasPiBackup_1M.img bs=1M count=110840 status=progress
画像の回復
sudo dd if=/backup_folder/RasPiBackup_1M.img of=/dev/mmcblk0p bs=1M status=progress
または
バックアップにpigz(GZipの並列実装)を使用すると、大量のスペースを節約し、圧縮時間を2.5倍短縮できます。 pv コマンドは進行状況を表示します。
sudo dd if=/dev/mmcblk0p bs=1M count=110840 | pv | pigz > /backup_folder/RasPiBackup_1M.img.gz
pigz画像の回復
pigz -d /backup_folder/RasPiBackup_1M.img.gz | pv | sudo dd of=/dev/mmcblk0p bs=1M
### バックアップの終了###
### 画像処理の開始###
画像コンテンツの確認
sudo fdisk -l /backup_folder/RasPiBackup_1M.img
MOUNTは/dev/mmcblk0p1パーティション(8192 * 512 = 4194304)をミラーリングしてその内容を表示します。
sudo mkdir /mnt/RasPiBackup-mmcblk0p1
sudo mount -o loop,offset=4194304 /backup_folder/RasPiBackup_1M.img /mnt/RasPiBackup-mmcblk0p1
MOUNTは/dev/mmcblk0p2パーティション(532480 * 512 = 272629760)をミラーリングしてその内容を表示します。
sudo mkdir /mnt/RasPiBackup-mmcblk0p2
sudo mount -o loop,offset=272629760 /backup_folder/RasPiBackup_1M.img /mnt/RasPiBackup-mmcblk0p2
/dev/mmcblk0p3の「GHOST」パーティション情報の削除
メモ:mmcblk0p3パーティションはバックアップされていませんが、イメージファイルにはまだそれに関する設定情報が含まれています。我々はそれを簡単に削除することができます。 (無視するエラー:ディスクの外側にパーティションがありません!)
イメージファイルから使用可能なパーティションを印刷します。
sudo parted /backup_folder/RasPiBackup_1M.img 'print'
/dev/mmcblk0p3はパーティション3なので削除してください。
sudo parted /backup_folder/RasPiBackup_1M.img 'rm 3'
SHRINK は、イメージから使用されていないスペースを取り除き、より小さい SD カードにも収まるようにイメージサイズを縮小できます。 https://github.com/Drewsif/PiShrink
sudo pishrink.sh /backup_folder/RasPiBackup_1M.img
RasPiBackup_1M.imgのインスタンスをさらに保持する場合は、圧縮して/backup_folderのサイズを小さくします。 GZipの並列実装:https://github.com/madler/pigz
pigz /backup_folder/RasPiBackup_1M.img /backup_folder/RasPiBackup_1M.img.gz
解凍せずにアーカイブファイルの内容を一覧表示する
pigz -l /backup_folder/RasPiBackup_1M.img.gz
### 画像処理終了###