schroot 构建环境设置如何避免绑定挂载 home

min*_*hua 6 linux chroot

最近的 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
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

min*_*hua 8

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


Tia*_*Liu 6

我推荐一个不同的解决方案(我之前的答案)。您可以对不同的监狱使用不同的 fstab。

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