たとえば、reflinkオプションを使用してファイルをコピーした場合
cp --reflink foo bar
cp 実行プロセスのどの段階で基本ファイルシステムが COW をサポートするかをどのように決定しますか?私は見つけましたが、coreutils/src/cp.c
特定のシステムコール/ioctlまたはCOW機能を決定し、それに応じてcpを指定したりエラーを報告したりする他の方法が見つかりませんでした。
cp: 'foo'から 'bar'を複製できません:無効なアドレス
要するに、私は--reflink=auto
オプションがどのように発生するかの解決策を探しています。
ベストアンサー1
これパスワード名前付き関数を呼び出します。clone_file
reflinkオプションが「always」または「auto」に設定されている場合、reflinkが「always」の場合はレプリケーションに置き換えられます(またはreflinkがオフの場合はレプリケーションに直接移動します)。clone_file
~と呼ばれるBTRFS_IOC_CLONE
I/W制御。したがって、システムが書き込み中にコピーをサポートしているかどうかをテストする必要はなく、単にBTRFSメソッドを試してください。