BTRFS 无法删除快照 - 操作不允许

BTRFS 无法删除快照 - 操作不允许

我无法删除 btrfs 子卷“2014-07-28”,它是 kubuntu 安装程序创建的作为 kubuntu 根目录的“@”的快照。

teneighty@teneighty-MS-7924:/$ sudo mount -o subvolid=5 /dev/sda5 /mnt
teneighty@teneighty-MS-7924:/$ sudo btrfs sub list /mnt
ID 257 gen 1782 top level 5 path @
ID 258 gen 1574 top level 5 path @home
ID 266 gen 1761 top level 5 path 2014-07-28
teneighty@teneighty-MS-7924:/$ ls /mnt
@  2014-07-28  @home
teneighty@teneighty-MS-7924:/$ sudo btrfs sub del /mnt/2014-07-28/
Delete subvolume '/mnt/2014-07-28'
ERROR: cannot delete '/mnt/2014-07-28' - Operation not permitted

尝试 apt-btrfs-snapshot 删除:

teneighty@teneighty-MS-7924:/$ sudo apt-btrfs-snapshot delete /mnt/2014-07-28/
Delete subvolume '/mnt/2014-07-28'
ERROR: cannot delete '/mnt/2014-07-28' - Device or resource busy

如果很忙的话我就不能这样做了,不是吗?

teneighty@teneighty-MS-7924:/$ sudo umount /mnt

但它会安静地卸载。虽然我测试过,即使我在文件管理器中打开 /mnt/2014-07-28,它也会卸载。

我在安装 kubuntu 14.04 后创建了快照,然后执行了一次重大系统更新。更新后,我创建了另一个快照,我可以毫无问题地删除它。但我想删除的是更新前的快照,因为更新后一切都运行良好,我预计不需要回滚到全新安装阶段。

我也尝试使用我安装的 kubuntu live USB 删除它,但也没有用。然后我尝试了 apt-btrfs-snapshot delete,结果

该快照最初可能位于 @/snapshots/2014-07-28,然后我从 help.ubuntu.com 上的文档中对 ubuntu BTRFS 布局有了更好的了解,因此我将快照移到了根 BTRFS 卷。我尝试将其移回,但返回了相同的错误。

什么可能导致快照出现此错误?为什么 apt-btrfs-snapshot 会说它很忙?我不知道接下来该怎么办,但随着文件系统的变化,我需要恢复该空间。

答案1

首先检查哪个子卷是默认的:

$ sudo btrfs subvol list /mnt/
ID 319 gen 508029 top level 5 path @plasma
ID 326 gen 508633 top level 5 path @
$ sudo btrfs subvol get-default /mnt/
ID 319 gen 508029 top level 5 path @plasma

我想删除@plasma子卷。当我想删除时,我遇到了同样的错误(操作不允许)。您需要更改默认子卷:

$ sudo btrfs subvol set-default 326 /mnt/

根据 ID 选择新的默认子卷。之后,您将能够删除子卷:

$ sudo btrfs subvol delete -v /mnt/@plasma/
Transaction commit: none (default)
Delete subvolume (no-commit): '/mnt/@plasma'

答案2

检查它是否为只读并设置为 RW

 btrfs property set -ts ./MyClone/@home  ro false  

也可以看看https://linuxreviews.org/Btrfs#the_HOWTO

相关内容