web-dev-qa-db-ja.com

DDコマンドを使用したクローニング

DDを使用して、外部ハードディスク上の別のパーティションに(ディスク全体ではなく)パーティションをバックアップするにはどうすればよいですか?

次のコマンドでこれを実現しました。

Sudo dd if=/dev/sda6 of=/dev/sdb3 bs=1M 

ただし、私の要件は次のとおりです。

  1. /dev/sda6をバックアップし、それを画像(.img)ファイルとして/dev/sdb3に保存する必要があります

  2. 圧縮(.gz)画像ファイルとして(これは実際に私が達成しようとしているものです)

(明らかにうまくいかなかった私の愚かな試みは次のとおりです:

Sudo dd if=/dev/sda6 of=/dev/sdb3/backup.img bs=4096 conv=notrunc,noerror

Sudo dd bs=1M if=/dev/sda6 | gzip -c > /dev/sdb3/backup.gz
2
Din

/dev/sdb3実際にマウント/dev/sdb3でない限り(デバイスとマウントポイントについて少し調べてください)、以下を行う必要があります。

  1. /dev/sdb3がマウントされている場所を見つけます。これにはmountコマンドを使用します。 /dev/sdb3/homeにマウントされていると仮定します。
  2. ファイルの書き込みをその場所に向けます。

    Sudo dd if=/dev/sda6 of=/home/backup.img
    
  3. 完了したら、imgファイルに期待どおりのものが含まれていることを確認します。

また、partition全体をバックアップする必要はありますか?通常、rsyncなどを使用してファイルをバックアップし、必要に応じて結果のバックアップディレクトリを圧縮する方が簡単で便利です。しかし、これは本当にあなた次第です。

4
roadmr

あなたがしたいことは3つの簡単なステップを伴います:

  1. ディスクファイルを作成する
  2. データをパーティションからディスクファイルにコピーする
  3. ディスクファイルを圧縮する

ディスクファイルの作成

  1. ディスクファイルを保持するパーティションにCDをマウントします
  2. fallocateを使用して、ブロックを作成し、ディスクファイルに事前に割り当てます。 ddまたは他のツールを使用してファイルをゼロで埋めてファイルを作成するよりもはるかに高速です。ディスクファイルサイズを指定するには、MB/MiB/GB/GiBプレフィックスを使用できます。たとえば、サイズが50 GiBのディスクイメージが必要な場合は、次のようにします。

    $ fallocate -l 50GiB part_backup.img

  3. ディスクファイルをフォーマットします。この例では、ext4を使用し、ジャーナリング機能を無効にします。この場合、必要ないためです。

    $ mkfs.ext4 -O '^has_journal' part_backup.img

  4. ディスクファイルの準備ができたので、losetupを使用してディスクファイルをマウントします。 --showオプションを渡すと、ディスクファイルがマウントされているループバックデバイスが出力されます(例:/dev/loop0

    $ Sudo losetup --show -f part_backup.img

  5. /mntにマウントフォルダーを作成し、そのフォルダーにループバックデバイスをマウントします

    $ Sudo mount /dev/loop0 /mnt/my_disk_file

パーティションからディスクファイルへのデータのコピー

  1. バックアップするファイルを含むパーティションをマウントし、マウントポイントを特定します
  2. rsyncを使用して、マウントしたディスクファイルにファイルをコピーします。

    $ Sudo rsync -avzPSX /mnt/media_partition/ /mnt/my_disk_file

  3. よく分からない場合は、rsyncでこれらのrsync optsのそれぞれが何をするかを調べてください。また、バックアップソースの末尾のスラッシュに関する注意事項もお読みください。

ディスクファイルを圧縮する

  1. 通常どおりにディスクファイルをアンマウントします

    $ Sudo umount /mnt/my_disk_file
    $ Sudo losetup -d /dev/loop0

  2. gzipを使用してディスクファイルを圧縮します

1
Flint