如何跨chroot共享目录

phi*_*hag 3 linux chroot

我有多个具有不同软件版本集的chroot作为 VM 的轻量级替代品。

如何跨虚拟机共享目录?自然地,符号链接不允许逃脱 chroot。当然,我可以在每个 chroot 中挂载一个网络共享(通过 nfs 左右),但这会带来很大的开销和安全考虑,不是吗?

use*_*686 5

在 Linux 上 -绑定挂载.

mount --bind /orig /vm/one
mount --bind /orig /vm/two
mount --rbind /media /vm/one/media
Run Code Online (Sandbox Code Playgroud)

分享/proc/dev为这个最常见的用途(但要确保你使用--rbind的的/ dev)。您甚至可以添加-o ro只读。

要使挂载持久化,请更新/etc/fstab

/orig   /vm/one     none    bind
/orig   /vm/two     none    bind,ro
Run Code Online (Sandbox Code Playgroud)

一旦开始为 VM 使用绑定挂载,您很快就会发现自己深入到命名空间和容器中。(例如,您可以拥有一个带有隔离网络的 chroot,只需一个命令...)看看lxc,它使用本机 Linux 功能来创建虚拟系统。