直接挂载 btrfs 子卷或绑定挂载(如果已经可见)

直接挂载 btrfs 子卷或绑定挂载(如果已经可见)
  • 如果/dev/sda1是带有 subvolroot和 的btrfs 文件系统persistent

  • 我已将默认子卷设置为root

  • 另外,我已经安装/dev/sda1(同样root是默认的)/

  • 我已将/dev/sda1subvolid=0 安装到/btrfs,因此我可以访问所有其他子卷(是的,/现在作为重复项存在/btrfs/root,我认为这是理想的,因此这里的所有内容都被视为位于同一文件系统上)

之间有什么区别:

  1. mount /dev/sda1 -o subvol=persistent /persistent

  2. mount --bind /btrfs/persistent /persistent

我正在思考一些不能立即看到的差异,例如在是否进入( )persistent中的不同文件系统的交叉方面受到不同的对待。这两个选项都应该被视为进入不同的文件系统,因此这里没有区别 - 我只是将其视为可能存在的一种差异,但这种差异并不明显。cp -xcp --one-file-system

答案1

您的设置方式没有任何功能差异。这就像您从未创建过一样,root subvolume因为您将其设为默认值。这不是大多数试图充分利用子卷抽象的人会采用的方式,但这是完全可以接受的。我个人更喜欢广泛的分离,因为备份非常简单且功能强大btrfs,并且无需更改默认子卷。

尽管如此,所有子卷都是出于大多数意图和目的的文件夹。不同之处在于,如果您不愿意,您可以像文件系统一样安装它们,mount而无需安装。bind据我了解,每个“普通”实用程序(例如cp您提到的)都会将其视为常规文件夹,无论您如何安装它,btrfs 特定的工具显然除外。可能有一些例外,但在我相当彻底的测试中我不记得有任何例外。我邀请任何人纠正我的错误。

答案2

如果启用了挂载传播(请参阅 参考资料man mount_namespaces),则将来的子挂载将在使用绑定挂载创建的挂载之间复制。

相关内容