相当简短的问题。Btrfs 子卷名称中带有 @ 有什么技术原因吗?它的功能、好处或问题原因是什么?
最佳做法是什么?
例子:
答案1
这只是一种惯例。内核 btrfs wiki 中有关子卷的部分根本没有提到@
。关于debian-boot 邮件列表信息丰富:
上游 btrfs 系统管理员指南中提出的约定与 Fedora 命名其子卷的方式相同,我相信它是由 Fedora 开发人员编写的。我认为与它不同的主要理由是表明看似目录的东西实际上不是目录,而是子卷。正如我之前提到的,此 FS 支持的灵活性令人震惊,我担心如果没有近乎不言而喻的默认约定,支持它可能会是一场噩梦。我想我会选择一些东西,如果有人不喜欢它,那么它可以改变?我希望在这次讨论中会出现任何强烈的意见!:-)
这是 OpenSUSE 和 Debian 显然从 Ubuntu 那里学到的一个惯例,使用所有这些子卷的想法归因于科林·沃森对罗杰·李说那是在 2010 年,2011 年,我们已经有了以 命名的子卷@
,但我找不到当时关于此事的在线讨论。我想只有科林现在就可以回答这个问题了。
答案2
@ 是“真正的”根卷。它的卷 ID 为 0,执行时不会列出btrfs subvolume list /
。您可以使用此卷来创建/删除子卷。
mount -o subvolid=0 UUID=insert-the-uuid-here /mnt
您必须将此隐藏根挂载到其他位置才能访问子卷。您可以在 中获取 UUID /etc/fstab
,它是所有根子卷的重复 UUID。
# ls /mnt
@
清单/mnt
显示了一个 @ 目录,该目录下是正常的/etc
、、/var
等等
btrfs subvolume delete /mnt/@/whatever
或者
btrfs subvolume create /mnt/@/whatever
如果创建子卷,请添加:
UUID=insert-the-uuid-here /whatever btrfs subvol=@/home 0 0
到/etc/fstab
。
现在,,mkdir /whatever
您就可以安装它了:mount /whatever
。
如果删除子卷,请务必将其移除fstab
并删除挂载点。
答案3
没什么特别的原因,而且这很令人反感。但我们必须坚持使用时间移位。参见还:https://linuxreviews.org/Btrfs