如何删除名称中带有 <FS_TREE> 的 btrfs 子卷

Cac*_*tus 10 btrfs snapshot

我有一堆 btrfs 快照,如下所示:

20:17:37 [root@galaxy /]$ btrfs subvolume list -a / |grep apt
ID 271 gen 348 top level 5 path <FS_TREE>/@apt-snapshot-2013-04-17_21:44:30
ID 272 gen 352 top level 5 path <FS_TREE>/@apt-snapshot-2013-04-17_21:46:25
ID 273 gen 361 top level 5 path <FS_TREE>/@apt-snapshot-2013-04-17_21:51:13
... # lots more
Run Code Online (Sandbox Code Playgroud)

我想摆脱它们。所以我试过了

20:21:31 [root@galaxy ~]$ btrfs subvolume delete '/<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '/<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
20:21:36 [root@galaxy ~]$ btrfs subvolume delete '<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '<FS_TREE>/@apt-snapshot-2013-04-17_21:44:30'
20:21:43 [root@galaxy ~]$ btrfs subvolume delete '/@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '/@apt-snapshot-2013-04-17_21:44:30'
20:21:47 [root@galaxy ~]$ btrfs subvolume delete '@apt-snapshot-2013-04-17_21:44:30'
ERROR: error accessing '@apt-snapshot-2013-04-17_21:44:30'
Run Code Online (Sandbox Code Playgroud)

删除这些快照的正确语法是什么?

Cac*_*tus 10

我能够通过首先挂载整个 btrfs 卷(不是@子卷)然后从那里工作来删除这些快照:

# mount /dev/mapper/whatever /mnt -o subvol=/
# ls /mnt
@
@apt-snapshot-2013-04-17_21:44:30
...
Run Code Online (Sandbox Code Playgroud)

所以此时,所有子卷(包括时髦apt-snapshot的)都在 中可见/mnt,因此我们可以删除它们:

# btrfs subvol delete /mnt/@apt-snapshot-2013-04-17_21:44:30
# umount /mnt
Run Code Online (Sandbox Code Playgroud)

  • 您是否必须为此使用 Live CD? (2认同)
  • 不,我能够在从同一文件系统的 `@` 运行系统时做到这一点。 (2认同)