btrfs 하위 볼륨이 여러 개인 디렉토리를 삭제하는 방법은 무엇입니까?


9

내 루트 파일 시스템은 btrfs 파티션에 있습니다. 내 /chroot디렉토리에는 여러 개의 btrfs 서브 볼륨이 있는데이를 사용하여 삭제할 수 없습니다 rm -rf /chroot. 모든 하위 볼륨을 삭제하려는 시도 에서 맨 페이지에 "지정된 경로 아래의 하위 볼륨 만 인쇄"라고하는 /chroot을 사용하여 아래 하위 볼륨 만 나열하려고했습니다 -o.

# btrfs subvolume list -o /chroot
ID 593 gen 6616 top level 5 path chroot/base-devel/root
ID 594 gen 6618 top level 5 path chroot/multilib-devel/root
ID 595 gen 6620 top level 5 path chroot/base/root
ID 597 gen 6624 top level 5 path chroot/twm/root
ID 599 gen 6628 top level 5 path chroot/lxde/root
ID 601 gen 6655 top level 5 path chroot/wheezy/root
ID 602 gen 6684 top level 5 path chroot/sid/root
ID 603 gen 6862 top level 5 path var/lib/machines

놀랍게도 이것은 / var / lib / macines (삭제하고 싶지 않은)의 하위 볼륨을 반환합니다. 이것은 3 가지 질문으로 이어집니다.

  1. 뭐라고합니까 -o옵션은 무엇입니까?

  2. 아래의 하위 볼륨 만 나열하는 방법 /chroot

  3. 알 수없는 하위 볼륨이있는 디렉토리를 어떻게 삭제합니까?

4.2.5 커널 및 btrfs-progs v4.3.1을 사용하여 Arch Linux를 실행 중입니다.


어떤 커널을 실행 중이고 어떤 버전의 btrfs 도구를 설치 했습니까? 이것은 아마도 도구의 버그 일 것입니다.
David King

@DavidKing 편집을 참조하십시오. 꽤 최근의 커널과 btrfs-progs를 실행 중입니다.
StrongBad

btrfs에 버그 보고서를 제출할 것입니다. 그동안 디렉토리 목록을 grep chroot?
David King

답변:


2

다음 명령은 /chroot디렉토리의 모든 하위 볼륨을 제거합니다 .

ls /chroot | xargs btrfs subvolume delete

btrfs 하위 볼륨이 아닌 파일 또는 디렉토리가있는 경우 오류가 인쇄되지만 제거되지는 않습니다.

(4.6.0 커널 및 btrfs-progs v3.17을 사용하여 데비안에서 테스트)


0

세 번째 질문에 답하기 위해 btrfs-rm을 사용할 수 있습니다 .

btrfs에서 실행되는 docker 설치에서 전체 docker dir을 정기적으로 정리하기 위해 사용합니다. 자신의 책임하에 사용하되 나에게 도움이됩니다 (TM).

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.