btrfs 하위 볼륨을 삭제할 수 없습니다.

btrfs 하위 볼륨을 삭제할 수 없습니다.

btrfs 파일 시스템 파티션 "/dev/sda1"에 Arch Linux를 설치했습니다.

[root@larch ~]# mount | grep sda
/dev/sda1 on / type btrfs (rw,relatime,ssd,space_cache,subvolid=266,subvol=/subvol_root)

보시다시피 루트 볼륨을 마운트하는 대신 "subvol_root"라는 하위 볼륨을 마운트했습니다. 전체 파티션을 다음 위치에 마운트하면 /root/BTRFSROOT현재 하위 볼륨을 볼 수 있습니다 .

[root@larch ~]# pwd
/root
[root@larch ~]# mount -o subvol=/ /dev/sda1 BTRFSROOT/
[root@larch ~]# btrfs sub list -apt BTRFSROOT/
ID  gen parent  top level   path    
--  --- ------  ---------   ----    
257 3239    5   5       subvol_root_borked
264 3350    5   5       snapshots
266 3358    5   5       subvol_root
267 3223    264 264     <FS_TREE>/snapshots/20190103-fresh-arch
268 302     264 264     <FS_TREE>/snapshots/20190104-pre-graphics
272 2275    264 264     <FS_TREE>/snapshots/20190106-pre-intel-driver
276 3250    264 264     <FS_TREE>/snapshots/20190107-pre-vbox
[root@larch ~]# 

제거하고 싶은데 subvol_root_borked다음과 같은 오류가 발생합니다.

[root@larch ~]# btrfs sub delete BTRFSROOT/subvol_root_borked/
Delete subvolume (no-commit): '/root/BTRFSROOT/subvol_root_borked'
ERROR: Could not destroy subvolume/snapshot: Operation not permitted
[root@larch ~]# 

subvol_root_borked제가 만든 스냅샷으로 만들었 subvol_root는데, 만든 이후 이름을 바꿨습니다. 더 이상 원본 스냅샷 이름을 모릅니다. 원래 하위 볼륨에서 생성되었을 수도 있지만 snapshots확실하지는 않습니다.

하위 볼륨 내부의 모든 내용을 삭제할 수 있지만 다음과 같습니다.

[root@larch ~]# ls -lah BTRFSROOT/subvol_root_borked/
total 16K
drwxr-xr-x 1 root root  0 Jan  7 20:13 .
drwxr-xr-x 1 root root 94 Jan  4 00:24 ..

이 하위 볼륨에 어떤 문제가 있나요/어떻게 더 자세히 분석할 수 있나요?

답변1

문제의 하위 볼륨이 다음인 read-only경우직접 삭제할 수 없습니다(와 마찬가지로 root) writable먼저 수행해야 할 작업은 다음과 같습니다.

sudo su
btrfs property set -ts /BTRFSROOT/subvol_root_borked/ ro false
btrfs sub delete BTRFSROOT/subvol_root_borked/

관련 정보