schroot 构建环境设置如何避免 bind-mount home

schroot 构建环境设置如何避免 bind-mount home

最近的 Linux 发行版如 Fedora 和 Ubuntu 都使用 chroot 环境进行构建。因为构建时经常需要安装一些特殊工具,并安装到现有系统中。使用 chroot 可避免对主机系统进行任何更改。

要设置这样的构建环境,第一步是创建一个 chroot。我按照以下设置指南进行操作:https://wiki.debian.org/Schroot

[wheezy-test]
description=Contains the SPICE program
aliases=test
type=directory
directory=/srv/chroot/test
users=jsmith
root-groups=root
script-config=desktop/config
personality=linux
preserve-environment=true

在我的设置中的主机中,/home 位于 /dev/mapper 上。进入 schroot 时,相同的 home 被绑定挂载。有没有办法避免这种情况?我更喜欢在 chroot 中使用不同的 /home。

当将类型从目录更改为普通时,不会执行绑定。但是这也会丢失 /proc、/sys 等。您必须手动绑定安装它们。这似乎不是一个好的解决方案。

如果无法进行简单的配置更改,知道 type=directory 的脚本在哪里吗?我可能会手动修改脚本。

提前感谢任何答案或提示!

答案1

解决方案是编辑 schroot 配置文件/etc/schroot/default/fstab。只需注释掉 行即可/home /home none rw,bind 0 0。如果您运行 X,您还需要取消注释 行/run。所有其他配置文件也位于同一位置。

答案2

我推荐不同的解决方案(我之前的回答)。你可以对不同的jail使用不同的fstab。

您可以通过编辑 schroot conf 文件来指定文件系统表文件。例如,如果您setup.fstab=minimal/fstab在 末尾添加/etc/schroot/chrood.d/[your chroot's].conf,schroot 将根据 进行文件系统/etc/schroot/minimal/fstab

相关内容