2

我正在尝试使用 schroot 来处理多个 chroot 环境,以便为特定版本的 ubuntu 生成干净的开发版本。主机环境是 Ubuntu 16.04。

我使用以下配置创建了 /etc/schroot/chroot.d/test.conf:

[test]
description=ubuntu trusty
type=directory # DO NOT FORGET THIS LINE
directory=/var/chroot/test
shell=/bin/bash
groups=sudo
profile=desktop
personality=linux
preserve-environment=true
message-verbosity=verbose

然后我创建了 chroot:

sudo debootstrap --arch amd64 --variant=buildd trusty /var/chroot/test http://archive.ubuntu.com/ubuntu

该命令运行良好,并且创建了 chroot。然后我以这种方式输入 chroot:

schroot -c test
groups: cannot find name for group ID 1000
groups: cannot find name for group ID 108
groups: cannot find name for group ID 124
groups: cannot find name for group ID 135
groups: cannot find name for group ID 137
I have no name!@xps-dev:/$ 

无论我尝试了什么,我都无法正确复制 /etc/passwd、/etc/group、/etc/hosts 之类的文件或与 chrooted 环境同步。在此示例中,我将配置文件设置为“桌面”,它应该使用 /etc/schroot/desktop 中的设置信息,但我也尝试创建自己的配置文件但没有成功。无论如何,桌面配置文件确实指定它应该复制这些文件,或同步它们:

awake@xps-dev:/etc/schroot/desktop$ cat copyfiles 
# Files to copy into the chroot from the host system.
#
# <source and destination>
/etc/resolv.conf
awake@xps-dev:/etc/schroot/desktop$ cat nssdatabases 
# System databases to copy into the chroot from the host system.
#
# <database name>
passwd
shadow
group
gshadow
services
protocols
networks
hosts

我尝试从 nssdatabases 文件中删除“passwd”和“group”,以将“/etc/passwd”和“/etc/group”添加到 copyfiles,以便直接复制文件,而不是同步文件,但它没有不工作。

我尝试使用以下命令以 root 身份输入 chroot,并提供详细输出:

sudo schroot -v --debug=notice -c test -u root

日志在这里: http: //pastie.org/10947460

我在日志中看不到任何确认安装脚本已执行的内容。

我显然做错了什么。有人有想法吗?

谢谢!

4

1 回答 1

1

我找到了问题的解决方案:如果 test.conf 文件中没有“type=directory”行,则类型变为“plain”,这意味着不会调用配置文件中的设置脚本。添加该行后,开始调用设置脚本,现在一切正常。

于 2016-10-22T20:10:59.753 回答