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 ioctl. 따라서 시스템이 쓰기 중 복사를 지원하는지 여부는 테스트하지 않고 BTRFS 방법만 시도합니다.

관련 정보