Por que o nspawn de uma imagem do Ubuntu falha?

2

Eu gostaria de systemd-nspawn uma imagem do Ubuntu (yakkety, o host está no yakkety também). Isso costumava funcionar sem problemas, então acho que algo mudou nos últimos 6 meses.

Eu criei uma imagem via debootstrap :

# debootstrap --variant=minbase --include=nano,dbus,isc-dhcp-client,iputils-ping,iproute2,python3 yakkety yakkety http://fr.archive.ubuntu.com/ubuntu

Eu então tentei iniciá-lo:

# machinectl start yakkety

Não houve mensagem de erro, mas o contêiner não foi iniciado. journalctl -xe expôs o erro:

Feb 27 13:24:27 srv systemd-nspawn[27348]: execv(/usr/lib/systemd/systemd, /lib/systemd/systemd, /sbin/init) failed: No such file or directory

Parece que não há nada para inicializar? Como isso é possível com uma imagem criada por meio de debootstrap ? A imagem parece normal de outra forma (contém pastas e binários comuns - exceto os acima que não puderam ser iniciados porque estão ausentes)

Uma chamada direta para systemd-nspawn produz o mesmo erro:

# systemd-nspawn -b -D yakkety -n
Spawning container yakkety on /var/lib/machines/yakkety.
Press ^] three times within 1s to kill container.
execv(/usr/lib/systemd/systemd, /lib/systemd/systemd, /sbin/init) failed: No such file or directory
Container yakkety failed with error code 1.

Eu tentei recriar a imagem adicionando os pacotes systemd e init ao volume de pacotes a serem pré-instalados (depois de python3 no meu exemplo acima), mas isso não ordenou nada.

Qual é o problema? Existem pacotes extras que eu preciso instalar? (Eu não instalei nada de especial anteriormente para xenial e, se não me engano, nem para yakkety ).

Todos os pacotes estão em sua versão mais recente, incluindo systemd (233).

    
por WoJ 27.02.2017 / 13:33

1 resposta

2

Você precisa instalar um sistema init dentro do seu contêiner, por exemplo systemd:

chroot /var/lib/machines/yakkety
apt-get install systemd

(eu tive o mesmo problema no debian e resolvi o problema)

    
por 10.05.2017 / 17:30