GNU/Linux >> Linux の 問題 >  >> Linux

Rsync -avzHP は、ハードリンクとしてコピーする代わりに、ハードリンクをたどります

rsync コマンドの -H (または --hard-links )オプションは、理論的には、達成しようとしていること、つまり、元のハードリンク構造を保持するファイルシステムのコピーを作成することです。別の同様の質問への回答で述べたように、ソース ファイル システムがハード リンクの複雑さの特定のしきい値を超えると、このオプションは失敗する運命にあります。

そのしきい値の正確な位置は、RAM とハード リンクの総数 (およびおそらく他の多くのもの) に依存する可能性がありますが、正確に定義しようとしても意味がないことがわかりました。 本当は 問題は、実際の状況でしきい値を超えるのは非常に簡単であり、持っていることを知らないことです. rsync -aH を実行しようとする日が来るまで または cp -a 苦労し、最終的に失敗します。

私がお勧めするのはこれです:重度にハードリンクされたファイルシステムを、ファイルとしてではなく、1 つのユニットとしてコピーします。つまり、ファイルシステム パーティション全体を 1 つの大きな BLOB としてコピーします。これを行うためのツールは多数ありますが、最も一般的なのは dd です。 .

ストック ファームウェアでは、QNAP NAS は dd を持つ必要があります。 fdisk と同様に組み込み済み . fdisk で 、少なくともソース パーティションと同じ大きさのパーティションを宛先ドライブに作成します。次に、dd を使用します 新しく作成された宛先パーティションにソース パーティションの正確なコピーを作成します。

dd コピーが進行中の場合、コピー先で破損したコピーにならないように、コピー元のファイルシステムで何も変更されていないことを確認する必要があります。それを行う 1 つの方法は、umount にすることです。 コピープロセスを開始する前のソース。もう 1 つの方法は、ソースを読み取り専用モードでマウントすることです。


Linux
  1. Linuxでのコピーから特定のディレクトリを除外する方法

  2. Rsyncフィルター:1つのパターンのみをコピーしますか?

  3. ソースが安全に更新されている間にRsyncを使用していますか?

  1. LinuxでRsyncコマンドを使用するにはどうすればよいですか?

  2. Linuxは上書きではなくコピーする方法は?

  3. vim バッファの代わりにシステム クリップボードにコピー

  1. RSYNC がソース ディレクトリを削除しない

  2. 現在のディレクトリを名前でコピーするRsync

  3. ファイルをコピーする代わりに rsync でハードリンクできますか?