符号链接和使用 fstab 绑定有什么区别?

cwd*_*cwd 7 ubuntu automounting mount fstab xfs

在 Eric Hammond 的文章用 EBS 在 Amazon EC2 上运行 MySQL 中,他展示了如何添加第二个驱动器 ( /vol/),然后继续将mysql的配置和数据移动到那里。

/sdh/vol通过编辑fstab和添加来安装:

/dev/sdh /vol xfs noatime 0 0
Run Code Online (Sandbox Code Playgroud)

接下来添加一些路径,如下所示:

/vol/etc/mysql /etc/mysql     none bind
Run Code Online (Sandbox Code Playgroud)

我这样做没有问题,但我不太明白发生了什么。

我可以最接近地将其与使用符号链接进行比较,例如:

ln -s /etc/mysql /vol/etc/mysql
Run Code Online (Sandbox Code Playgroud)

我在man fstab没有看到有关bind语法的太多信息的情况下查看了它,并且fstab在 Linux 管理员手册的部分中也找不到它。有人可以阐明fstabbind语法、它是如何工作的、它的作用是什么,以及我应该在哪里可以找到有关它的更多信息?

njs*_*jsg 8

bind 镜像文件系统(在其他情况下,它在设置 chroot 时很有用,您需要在其中拥有一个“完整的”系统(例如在解包/安装 Gentoo 时)。

就像那样,它将一棵树从 A 镜像到 B。我不确定它是否有任何选择,但我怀疑它,它所做的不仅仅是镜像。

与符号链接不同,符号链接是文件系统中指向另一个文件系统的文件,需要您对其进行设置,并且仍然是“特殊文件”,绑定实际上反映了整个子树。根据工具的不同,两种策略都可能有效,但可以检测符号链接,并且某些工具可能会将其解析为原始路径。这种bind方法更加透明,就像两个不同的文件系统。

  • 确切地。引用 chroot 环境之外的 inode 的符号链接将不起作用。你可以在 `chroot(2)` 之前将 `/mychroot/home` 链接到 `/home`,但是 * 在你 chroot 之后,符号链接被破坏(从 chroot 的角度来看,`/mychroot` 不再存在)环境)。绑定救援。 (2认同)