我正在尝试使用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环境中或与chrooted环境同步。在此示例中,我将配置文件设置为" desktop",它应该使用/ 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
我试过删除&#34; passwd&#34;和&#34;组&#34;从nssdatabases文件中添加&#34; / etc / passwd&#34;和&#34; / etc / group&#34;复制文件,以便文件直接复制,而不是同步,但它没有工作。
我已尝试使用以下命令以root身份输入chroot,并输出详细信息:
sudo schroot -v --debug=notice -c test -u root
日志在这里:http://pastie.org/10947460
我在日志中看不到任何确认已执行设置脚本的内容。
我显然做错了什么。有人有想法吗?
谢谢!
答案 0 :(得分:0)
我找到了问题的解决方案:没有&#34; type = directory&#34;在test.conf文件中,该类型变为&#34; plain&#34;,这意味着不会调用配置文件中的设置脚本。添加该行后,设置脚本开始被调用,现在一切正常。