覆盖现有目录

zen*_*120 5 mount overlayfs

我已经查看了 如何使用 OverlayFS?但它没有回答我的问题。

我需要安装一些第三方应用程序,它们需要/opt可写,但我运行的设备具有/opt可读的 rootfs。/opt本质上,我在只读文件系统(下部)上有一个目录,假设我有一个读写目录/mnt/optw(可写)。我想合并/opt&/mnt/optw并将其安装到/opt.

这有可能吗?

Ani*_*ahu 2

这也可以通过内核内置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)


Raf*_*ffa 0

你可以像这样/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)