我在 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/