schroot не синхронизирует базы данных nss (passwd, group, hosts) должным образом

Я пытаюсь использовать 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

Я попытался удалить "passwd" и "group" из файла nssdatabases, чтобы добавить "/ etc / passwd" и "/ etc / group" в copyfiles, чтобы файлы копировались напрямую, а не синхронизировались, но это не так т работа.

Я пробовал следующую команду, чтобы войти в chroot как root с подробным выводом:

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

Журнал здесь: http://pastie.org/10947460

Я не вижу в журнале ничего, что подтверждает выполнение скриптов установки.

Я явно делаю что-то не так. У кого-нибудь есть идея?

Спасибо!

1 ответ

Я нашел решение моей проблемы: без строки "type=directory" в файле test.conf тип становится "plain", что означает, что сценарии установки из профиля не вызываются. После добавления строки начали вызываться установочные сценарии, и теперь все работает как надо.

Другие вопросы по тегам