btrfsボリュームを大きなドライブに移動するには?

btrfsボリュームを大きなドライブに移動するには?

私のドライブにbtrfsパーティションがあり、それをより大きな新しいドライブに移動したいと思います。すべてのサブボリュームと(スナップショット)スナップショットを維持しながら、ボリュームをそのまま移動したいと思います。

コピーの整合性と忠実度を確認するための最良の方法は何ですか?

私が見たもの:

BTRFSを送信

スナップショット構造を再構築する方法(親ボリュームを手動で指定する必要がありますか?)、複数のサブボリュームを一度に送信する方法、整合性を最もよく確認する方法(.snapshotディレクトリを含むディレクトリの違いなど) )はよくわかりません。 )またはIの場合、「clone」パラメータを使用する必要があり、その機能は何ですか?

バートシンク

捨てられたようです。バックアップ用に設計されています。 btrfs転送よりも多くの機能を提供するかどうかはわかりません。

BTRBK

バックアップ用に設計されていますが、私のユースケースに適しているかどうかはわかりません。

DD

レベルが低すぎる可能性があり、ブロックサイズ、パーティションサイズなどに問題がある可能性があります。

私の考えでは、「btrfs send」とdiffが最良のオプションですが、各サブボリュームで多数のスナップショット転送を処理する方法がわかりません。

答え1

もともとbtrfsパーティションと新しいより大きなドライブまたはパーティションが同じシステム上にあると仮定すると、最も簡単で最善のアプローチはおそらくbtrfs replace

man btrfs-replace詳細より。以下は、読みやすくするために少し再構成された抜粋です。

btrfs replace start [options] <srcdev>|<devid> <targetdev> <path>

btrfs ファイルシステムを置き換えるデバイスです。

ライブファイルシステムで、現在ソースデバイスに保存されているデータをターゲットデバイスにコピーします。

ソースデバイスが使用できなくなった-r場合、またはこのオプションが設定されている場合は、RAID冗長メカニズムのみを使用してデータを生成します。操作が完了すると、ソースデバイスはファイルシステムから削除されます。

数値の場合は<srcdev>マウントされたファイルシステムのデバイスIDと見なされ<path>、それ以外の場合はソースデバイスへのパスです。ソースデバイスがシステムから切断された場合は、devidパラメータ形式を使用する必要があります。

<targetdev>サイズは同じかそれ以上でなければなりません<srcdev>

ノートより大きなターゲットデバイスを最大限に活用するには、ファイルシステムのサイズを変更する必要があります。

btrfs filesystem resize <devid>:max /path


ただし、このbtrfsボリュームに新しいドライブをすべて使用したい場合でも、パーティション化されていないプライマリドライブを使用する代わりに、1つの大きなパーティションを持つパーティションテーブルを作成することをお勧めします。これは、他のプログラムが未使用の空き領域と見なされないようにディスク領域を表示して予約するための便利な方法であり、パーティション化およびフォーマットサービスを提供するのに役立ちます。

関連情報