ディスクのクローン

提供: ArchWiki
ナビゲーションに移動 検索に移動

関連記事

ディスクのクローンとはパーティションやハードドライブ全体のイメージを作成することを言います。バックアップリカバリ 用に他のコンピューターにドライブをコピーするのに役立ちます。

ノート: 論理セクタサイズが異なる ドライブ 間のディスククローニングはお勧めしません。
  • 論理セクタサイズが小さいドライブ (例:4096バイトから512バイト) への移行は、セクタ番号でパーティション境界を指定するため、パーティションテーブルの再作成が必要です。
  • ファイルシステムのブロックサイズが対象ドライブの論理セクタサイズより小さいか、割り切れない場合、論理セクタサイズの大きいドライブ (例:512バイトから4096バイト) への移動ができない場合があります。
ヒント: 時間の経過とともに ファイルシステム は新しい機能を取得し、mkfs ユーティリティはデフォルトを変更しますが、すべての新機能を再フォーマットせずに有効にできるわけではありません。したがって、データを新しいドライブに移動するときは、ブロックデバイスやファイルシステムのクローンを作成する代わりに、新しいファイルシステムを作成し、rsync などを使ってファイル (およびその属性、ACL、拡張属性など) のみをコピーすることを検討してください。

ブロックレベルのクローニング

dd を使う

dd#ディスクの複製と復元Core utilities#dd の代替 を参照してください。

ddrescue を使う

可能であれば、ディスクからのデータリカバリは、ネイティブインターフェイスを使用して実行する必要があります。SATA または古いドライブの場合は IDE です。USB アダプターを使用すると、結果が異なる場合があります。

GNU ddrescue は、読み取りエラーを無視できるデータ回復ツールです。ddrescue は、あるデバイスから別のデバイスにデータをコピーするために両方を使用できることを除いて、dd とはまったく関係がありません。主な違いは、ddrescue は洗練されたアルゴリズムを使用して故障したドライブからデータをコピーし、追加の損傷を可能な限り少なくすることです。詳細は ddrescue マニュアル を参照してください。

故障したり死にかけているドライブのクローンを作るには、ddrescue を2回実行します。1回目では、読み取りエラーが存在しないブロックを全てコピーして、エラーを rescue.map にマッピングします。

# ddrescue --force -n /dev/sdX /dev/sdY rescue.map

ここで X はソースのパーティションであり、Y はコピー先の ブロックデバイス のパーティションレターです。

2回目では、不良ブロックだけをコピーして、ソースからの読み込みを3回試してからあきらめます。

# ddrescue --force -d -r3 -n /dev/sdX /dev/sdY rescue.map

状況によっては、特定のセクタを読み取ろうとしているときに、ディスク コントローラまたは USB アダプタがロックすることがあります。-i オプションを使用して、ddrescue にその位置の後で読み取りを開始するように指示できます。

これで、ファイルシステムの破損をチェックし、新しいドライブをマウントできます。

# fsck -f /dev/sdY

ファイルシステムのクローン

e2image を使う

e2imagee2fsprogs にデバッグ用として含まれているツールです。使用ブロックのみをコピーして効率的に ext2, ext3, ext4 パーティションをコピーできます。e2image が使えるのは ext2, ext3, ext4 ファイルシステムだけです。未使用ブロックはコピーされないため、削除したファイルを復元するのには役に立ちません。

e2image を使って、物理ディスク /dev/sda の1番目のパーティションを物理ディスク /dev/sdb の1番目のパーティションに複製するには:

 # e2image -ra -p /dev/sda1 /dev/sdb1
ヒント: GPartede2imageを使って効率的に ext2/3/4 パーティションを複製します。

xfs_copy を使う

xfsprogsxfs_copy(8) を使用すると、XFS ファイルシステムを 1 つ以上のブロックデバイスに並行してコピーできます。

ノート: デフォルトでは、xfs_copy は新しいファイルシステム用に新しい UUID を生成します。同じ UUID のクローンを作成するには、-d オプションを使用します。これにより、ディスク交換に​​適した複製ファイルシステムが作成されます。
ヒント: XFS のクローンを複数のブロックデバイスに並行して作成するには、それらをすべて xfs_copy コマンドに追加するだけです。

たとえば、/dev/sda1 上のファイルシステムのクローンを /dev/sdb1 に作成するには、次のコマンドを実行します:

# xfs_copy /dev/sda1 /dev/sdb1

汎用性の高いクローニングソリューション

以下のアプリケーションはファイルシステム全体をバックアップして、故障したときに簡単に復元することができます。ほとんどが Live CD や USB ドライブとして使えます。1つまたは複数の特定の時点での完全なシステムイメージが含まれており、既存の良い設定を記録するときによく使われます。これらの比較については Wikipedia:Comparison of disk cloning software を参照してください。

完全なシステムバックアップを作成できる他のアプリケーションについては バックアッププログラム を参照してください。

  • Arch Backup — シンプルな設定を使用する平凡なバックアップスクリプト。
    • 圧縮方法を設定可能。
    • 複数の場所にバックアップ。
https://github.com/p5n/archlinux-stuff/tree/master/arch-backup/ || arch-backupAUR
  • Clonezilla — 障害復旧、ディスククローン、ディスクイメージング、デプロイメントソリューション。
    • 完全なバックアップとリカバリソリューション:ブートセクタ、ブートローダ、パーティションテーブルを含むドライブ全体のイメージと復元が可能です。
    • BIOS と UEFI、MBR と GPT をサポートします。
    • ライブ CD, USB フラッシュドライブ, PXE サーバーから起動。
    • ほとんどのファイルシステム (ext2-3-4、reiserfs、reiser4、xfs、jfs、btrfs、f2fs、FAT12-16-32、NTFS、HFS+、UFS など) と LVM2 をサポート。
    • Partclone (デフォルト)、Partimage (オプション)、ntfsclone (オプション) を使用する場合は空き領域を認識し、それ以外の場合は dd にフォールバックしてブロックレベルのコピーを行います (dm-crypt/LUKS コンテナー、サポートされていないファイルシステムなど。)
    • さまざまな形式 (zstd を含む) とレベルのマルチスレッド圧縮をサポート。
    • バックアップの暗号化をサポート。
    • 多数のマシンを一度にリストアするマルチキャストサーバー。
    • Arch Linux のインストールメディアに同梱されています。
https://clonezilla.org/ || clonezilla
  • Deepin Clone — Deepin によるバックアップとリストアのツール。ディスクまたはパーティションのクローン作成、バックアップ、リストアをサポートします。
https://www.deepin.org/en/original/deepin-clone/ || deepin-clone
  • FSArchiver — 安全で柔軟性のあるファイルシステムバックアップ・デプロイメントツール
    • 基本的なファイル属性をサポート (パーミッション, 所有者, ...)
    • ひとつのアーカイブで複数のファイルシステムをサポート。
    • (SELinux によって使われる)拡張属性のサポート。
    • 全ての Linux ファイルシステムで共通のファイルシステム属性をサポート (ラベル, uuid, ブロックサイズ)
    • NTFSファイルシステム をサポート(Windows パーティションの柔軟なクローンを作成する機能)
    • アーカイブに書き込まれたデータのチェックサムを作成 (ヘッダ, データブロック、ファイル全体)
    • 破損しているアーカイブの復旧ができます (作業ファイルをスキップ)
    • lzo, gzip, bzip2, lzma のマルチスレッド圧縮。
    • 巨大なアーカイブを複数のファイルに分割することでファイルの最大容量を固定することができます。
    • パスワードによるアーカイブの暗号化。OpenSSL の libcrypto による blowfish を使用。
    • マウントされている root ファイルシステムのバックアップのサポート (-A オプション)
    • System Rescue CD に同梱されています。
https://www.fsarchiver.org/ || fsarchiver
  • Mondo Rescue — バックアップメディアを作成する障害復旧ソリューション。損害を受けたシステムを再配置することができます。
    • イメージベースのバックアップ。Linux/Windows をサポート。
    • 圧縮率は調整可能。
    • ライブ環境をバックアップできます (システムを止める必要がありません)。
    • イメージを多数のファイルに分割可能。
    • Live CD で起動することで完全なリストアができます。
    • NFS, CD, テープドライブなどのメディアからバックアップ・リストアできます。
    • バックアップの検証ができます。
http://www.mondorescue.org/ || mondoAUR
  • Partclone — 使用しているブロックだけを考慮してパーティションをバックアップ・リストアできるツール。
    • ext2, ext3, ext4, hfs+, reiserfs, reiser4, btrfs, vmfs3, vmfs5, xfs, jfs, ufs, ntfs, fat(12/16/32), exfat, f2fs, nilfs をサポート。
    • 特別な機能 (圧縮、暗号化など) をスクリプト化するためのパイプ、標準入力、および標準出力をサポートします。
    • レスキューモードでは、不良ブロックをスキップして正常なブロックのみをバックアップしようとします。ソース デバイスから GNU Ddrescue ドメイン ログ ファイルを作成するオプション。
    • ncurses インターフェイスが利用可能。
    • バックアップされたすべてのブロックは、crc32 でチェックサムされます。
    • Arch Linux インストール メディアに含まれています。
https://partclone.org/ || partclone
  • Partimage — Linux/UNIX 環境向けの ncurses ディスク複製ユーティリティ。
    • ライブ CD が存在します。
    • Linux, Windows, macOS の最も一般的なファイルシステムをサポート。
    • 圧縮
    • Samba/NFS を使用してネットワーク経由で保存したり複数の CD や DVD に保存できます。
    • 開発は停止して FSArchiver に移っています。
http://www.partimage.org || partimage
  • J7Z — Linux 向けの Java による GUI でデータの圧縮やバックアップを楽にします。7z, BZip2, Zip, GZip, Tar アーカイブを作成することができます。
    • 既存のアーカイブを素早くアップデート。
    • 複数のフォルダを一つのストレージにバックアップ。
    • 保護されたアーカイブを作成・展開。
    • アーカイブのプロファイル・リストを使うことで負担を軽減。
http://j7z.xavion.name/ || j7zAUR
  • Redo Backup and Recovery — Linux CD ブータブルイメージから実行できるバックアップ・障害復旧アプリケーション。
    • ディスクパーティションのベアメタルバックアップとリカバリができます。
    • バックエンドとして xPUDPartclone を使用。
http://www.redobackup.org/ ||
  • System Tar & Restore — tar を使ったシステムのバックアップとリストア、または rsync による転送。
    • GUIおよびCLIインターフェース。
    • .tar.gz, .tar.bz2, .tar.xz, .tar アーカイブを作成。
    • openssl / gpg 暗号化をサポート。
    • rsync を使って実行中のシステムを転送。
    • Grub2, Syslinux, EFISTUB/efibootmgr, Systemd/bootctl をサポート。
https://github.com/tritonas00/system-tar-and-restore || system-tar-and-restoreAUR

参照