无法删除 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/

相关内容