reflinkフラグ付きcp:reflinkが可能かどうかを確認するには?

reflinkフラグ付きcp:reflinkが可能かどうかを確認するには?

たとえば、reflinkオプションを使用してファイルをコピーした場合

cp --reflink foo bar

cp 実行プロセスのどの段階で基本ファイルシステムが COW をサポートするかをどのように決定しますか?私は見つけましたが、coreutils/src/cp.c特定のシステムコール/ioctlまたはCOW機能を決定し、それに応じてcpを指定したりエラーを報告したりする他の方法が見つかりませんでした。

cp: 'foo'から 'bar'を複製できません:無効なアドレス

要するに、私は--reflink=autoオプションがどのように発生するかの解決策を探しています。

ベストアンサー1

これパスワード名前付き関数を呼び出します。clone_filereflinkオプションが「always」または「auto」に設定されている場合、reflinkが「always」の場合はレプリケーションに置き換えられます(またはreflinkがオフの場合はレプリケーションに直接移動します)。clone_file~と呼ばれるBTRFS_IOC_CLONE I/W制御。したがって、システムが書き込み中にコピーをサポートしているかどうかをテストする必要はなく、単にBTRFSメソッドを試してください。

おすすめ記事