Answers:
您可以创建一个只读的bind-mount。
mount --bind /path/to/source/ /path/to/dest/
mount -o bind,remount,ro /path/to/dest
是的,这必须在Linux内核2.6.25之后的内核中分两步完成(有关原因,请参见上面的链接)。
或者,作为一个/etc/fstab
行示例ref:
/path/to/source/ /path/to/dest/ none bind,ro
在这两种方法中,绑定挂载都驻留在虚拟文件系统层(VFS)中,因此,它不是特定于任何文件系统的,也不是真的“挂载”任何东西。因此,基本上,这为您创建了一种符号链接,但这并没有显示出来。
并回答以下有关数据丢失的评论...不,这些说明不会删除任何文件。如果目标路径上存在文件,则此挂载将覆盖该文件。只需卸载即可在下面的文件系统上的路径中列出您的文件。更好 通常,避免安装在非空目标路径的顶部。
mount -o bind,remount,ro /path/to/dest
查看lwn.net/Articles/637501。
mount -o remount,ro /path/to/dest
给我以下错误:mount: mount point is busy.
@gertvdijk
用一个命令挂载绑定只读:
mount --bind -r /path/to/source/ /path/to/dest/
卸下
umount /path/to/dest/