Rob van der Hoeven | 11 May 12:09 2013

Re: Horrors using Debian Wheezy

> I'm trying to get LXC to work for me on Debian Wheezy/amd64 and I'm having a
> Hellish time. I'm following the advice on and other places,
> and I believe I'm creating my containers correctly, but when I launch a
> container, I get a bunch of messages about needing root to set a hostname,
> needing root to mount things, needing root to do various other things, and I
> see sshd fail to create keys, and at the very end I get nothing. No console.
> I can't use the console command to connect - I get nothing. The status tool
> says things are running.
> lxc-checkconfig says everything is hunky-dory and I'm not deviating from the
> instructions.
> Can someone suggest what might be going wrong here?


The template to create Debian containers that ships with Wheezy is
broken. I tried to get this fixed before the Wheezy release but failed.
Here is my solution from the bug report at:


First let me explain the problem. LXC uses shell scripts (they call them
templates) to create the rootfs of a container, this is where things go
wrong. The current Wheezy templates for creating a Debian rootfs use
live-debconfig and this package will not be included in Wheezy. Although
the scripts run, the generated rootfs is not configured correctly.
Fortunately there is nothing wrong with LXC. Simply replacing the shell
script with a version that does not depend on packages that are not in
Wheezy will solve the problem.

On my own computers i use a slightly modified version of the Debian
template that came with Squeeze. My modifications are:

1) Installing a Squeeze rootfs instead of a Lenny rootfs
2) Replacing the deprecated DHCP package
3) Adding some mknod commands to create tty's in the generated rootfs
4) Support for the armel architecture.
5) For the network configuration the template expects that the host has
a bridged network with the name br0 and a DHCP server running. 

I have updated this template to install a Wheezy rootfs and tested the
result. It seems to work perfectly. So my solution is: remove the
non-functioning Debian templates from the LXC package and replace them
with my working template. 

You can download my Debian Wheezy template at:

If you want to test the template:

Extract the file to /usr/share/lxc/templates , change owner and group to
root and make it executable.

Create a container with:

lxc-create -n wheezy01 -t debian-wheezy

Start it:

lxc-start -n wheezy01

The generated rootfs reports the container name to the DHCP server. If
you happen to to run a combined DHCP/DNS server like dnsmasq this can be
used to automatically create a domain-name for the container. (My own
setup would create the DNS name for the container.
Handy for ssh connections...)



Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today!