여러 btrfs 스냅샷이 포함된 일반 디렉터리를 안전하게 삭제하는 방법은 무엇입니까?

여러 btrfs 스냅샷이 포함된 일반 디렉터리를 안전하게 삭제하는 방법은 무엇입니까?

그 바로 아래에 여러 btrfs 스냅샷이 있는 일반 디렉토리가 있습니다. 상위 디렉토리에서 작업을 수행하는 것이 안전합니까 ? 아니면 상위 디렉토리를 삭제하기 전에 각 스냅샷에서 작업을 수행 rm -rf해야 합니까 ?btrfs subvolume delete SUBVOL

답변1

rm -rf그 자체로는 안전하지 않으므로 계속해서 실행해 보세요. 그러나 완전히 작동하지는 않습니다. 어떤 이유로 빈 Btrfs 하위 볼륨은 시스템 호출을 통해 삭제할 수 없습니다 rmdir(2).

rm -rf모든 하위 볼륨(일반 파일 등)의 모든 콘텐츠는 삭제되지만 빈 하위 볼륨 자체와 모든 하위 볼륨의 상위 디렉터리는 그대로 유지됩니다. 이전에 삭제할 수 없었던 빈 하위 볼륨이 아닌 디렉터리를 처리하려면 이러한 디렉터리를 삭제 btrfs subvolume delete하고 다시 실행해야 합니다.rm -rf

아시다시피 하위 볼륨을 삭제하는 것이 btrfs subvolume delete해당 내용을 모두 삭제하는 것보다 훨씬 빠릅니다. 따라서 하위 볼륨을 포함할 디렉토리 트리를 미리 알고 있다면 해당 하위 볼륨에 대해 먼저 작업한 다음 실행하여(완전히 작동함) rm -rf작업과 시간을 절약할 수 있습니다.btrfs subvolume deleterm -rf

답변2

당신은 그것을 사용할 수 있습니다btrfs-rm.

전체 docker 디렉토리를 주기적으로 정리하기 위해 btrfs에서 실행되는 docker 설치에서 이것을 사용합니다. 사용에 따른 위험은 본인 부담이지만 나에게는 효과가 있습니다(TM).

sudo ./btrfs-rm  /var/lib/docker/*   # create clean empty dir for docker

다운로드:https://github.com/DirkTheDaring/btrfs-rm

관련 정보