![BTRFS 无法删除快照 - 操作不允许](https://linux22.com/image/1083315/BTRFS%20%E6%97%A0%E6%B3%95%E5%88%A0%E9%99%A4%E5%BF%AB%E7%85%A7%20-%20%E6%93%8D%E4%BD%9C%E4%B8%8D%E5%85%81%E8%AE%B8.png)
我无法删除 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