我已经查看了 如何使用 OverlayFS?但它没有回答我的问题。
我需要安装一些第三方应用程序,它们需要/opt可写,但我运行的设备具有/opt可读的 rootfs。/opt本质上,我在只读文件系统(下部)上有一个目录,假设我有一个读写目录/mnt/optw(可写)。我想合并/opt&/mnt/optw并将其安装到/opt.
这有可能吗?
这也可以通过内核内置overlayfs模块来实现:
# mount -t overlay -o lowerdir=/opt,upperdir=/mnt/optw,workdir=/tmp/opt-overlay overlay /opt
Run Code Online (Sandbox Code Playgroud)
可以检查是否正确安装:
# mount -t overlay -o lowerdir=/opt,upperdir=/mnt/optw,workdir=/tmp/opt-overlay overlay /opt
Run Code Online (Sandbox Code Playgroud)
你可以像这样/mnt/optw绑定/opt:
sudo mount --bind /mnt/optw/ /opt/
Run Code Online (Sandbox Code Playgroud)
这种方式/opt将反映/mnt/optw内容和权限。
要访问 下两个目录的内容/opt,请像这样挂载aufs:
sudo mount -t aufs -o br=/opt/:/mnt/optw/ none /opt/
Run Code Online (Sandbox Code Playgroud)
这样,两个目录就会合并,您将能够在/opt/.
注意:
aufs如果您的系统没有可用的支持,您可以通过安装来添加支持aufs-tools,如下所示:
sudo apt install aufs-tools
Run Code Online (Sandbox Code Playgroud)
如需进一步阅读man aufs。
编辑:
关于OP的评论,同样可以通过内核内置overlayfs模块来实现:
sudo mount --bind /mnt/optw/ /opt/
Run Code Online (Sandbox Code Playgroud)