如何删除btrfs子卷?

如何删除btrfs子卷?

我有一个想要删除的快照:

04:03:21::mlissner@pounamu::~ 
↪ sudo btrfs subvolume list /
ID 257 gen 267078 top level 5 path @badroot
ID 258 gen 267151 top level 5 path @home
ID 422 gen 267151 top level 5 path @

那个叫@badroot 的很糟糕,必须去掉。但:

04:03:23::mlissner@pounamu::~ 
↪ sudo btrfs subvolume delete \@badroot
ERROR: error accessing '@badroot'
04:03:31::mlissner@pounamu::~ 

所以我不知道该从哪里开始。我尝试阅读帮助文件:

↪ sudo btrfs subvolume delete --help
usage: btrfs subvolume delete <subvolume> [<subvolume>...]

    Delete subvolume(s)

但这也没什么用。也许互联网上的好心人有想法。

答案1

第一种可能性

看来您指的是@badroot使用错误的路径。

如果我正确地阅读了您的 shell 提示符,那么您当前的目录是~,您的主目录 - 这可能是/home/mlissner或类似的。您将子卷的路径指定为相对路径(不以 开头/),因此您实际上是在要求删除诸如/home/mlissner/@badroot... 之类不存在的内容。

尝试使用绝对路径:

sudo btrfs subvolume delete /@badroot

第二种可能

也许您在 上安装了一个非默认子卷/,例如编号 422,@。在这种情况下,只有该子卷出现在下面/,并且您看不到该路径上方的任何内容,包括其他两个子卷以及位于 Btrfs 根目录中的任何常规文件。

在这种情况下,请将真正的 Btrfs 根挂载到其他位置,以便您可以访问其内容。 Btrfs 的真正根称为子卷 ID 0(并且未通过 列出btrfs subvolume list)。查找或创建空闲挂载点并挂载如下:

mount -o subvolid=0 /dev/some-device /mnt

现在您应该能够看到/mnt/@/mnt/@badroot/mnt/@home以及 下的一些其他文件/mnt。您可以/mnt/@badroot照常删除子卷。

相关内容