我有一个想要删除的快照:
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
照常删除子卷。