btrfsとddを使用してハードドライブを複製しました。それでは、「オリジナル」ドライブをマウントし、同時にクローンドライブをマウントしたいと思います。
mount /dev/sdc /mnt/tmp
mount: /mnt/tmp: mount(2) system call failed: File exists.
Aにbtrfsck /dev/sdc
エラーは表示されません。このディスクをどのようにマウントできますか?
答え1
btrfsはマルチデバイス(サポート)ファイルシステムであるため、特定のファイルシステムに属するデバイスを追跡する方法が必要です。実際に複数のデバイスがある場合は、1つだけマウントすると、btrfsは他のデバイスを自分で見つけます。
これはファイルシステムのUUIDを介して行われ、これはもちろんコピーでも同じです。 btrfs は対応する UUID を複数回保存します。btrfstune -u /dev/sdc
すべて変更する必要があります(ただし、多くのメタデータを再構築する必要があるため、時間がかかる場合があります)。比較的新しいカーネル(2018年12月パッチ)は、btrfstune -m /dev/sdc
すべてのメタデータを書き換えなくても機能するはずです。一部の人々はこれらのオプションが破損していると報告していますが、あなたはすでにコピーを作業しています。
重要な警告!
読んでくださいbtrfs トラップ、特にブロックレベルのコピーに関する警告。ファイルシステムブロックデバイスの1つのコピーが2つある場合、カーネルは間違ったコピーを使用します(ファイルシステムUUIDが同じであることを知っている限り同じデバイスであるため)。破壊する 両方中。オリジナルを含みます。(デバイスA1とB1を含むデュアルデバイスファイルシステムがある場合はどうなるか想像してください。A1をA2にコピーします。カーネルがファイルシステムをマウントすると、期待どおりにA1とB1を使用できます。またはA2とB1スイッチをオンにすることもできます。マウントするたびに、ファイルシステムの半分が最後のマウント以降にすべての書き込みを「失う」ことができます。
幸いなことに、カーネルはレプリカをマウントする試みに気づき、ブロックします。
何をすべきか
どの:
- 画像をファイルにコピーします(ループバックデバイスを設定しないでください)。別のコンピュータ(ループバックデバイスを含む)または仮想マシンでコピー操作を実行します。ファイルシステムUUIDが変更されたことを確認する前に、1つのカーネルに2つのコピーが表示されないようにしてください。
- などを使用して
tar
新しいbtrfs-send
ファイルシステムのコピーを作成し、別のファイルシステムUUIDを使用します。