[lxc-users] Unable to Start Unprivileged Containers on Debian / Jessie

Chris berzerkatives at gmail.com
Tue Sep 30 22:56:09 UTC 2014


On 30/09/14 19:28, Michael H. Warfield wrote:
>> I haven't looked a whole lot into the premade containers, my gut feeling
>> was that I didn't want to download a whole operating system from this
>> project, and that I'd be a lot more comfortable taking distribution that
>> I trust, and making the template manually. This way I know everything
>> extra that's going into it.
> Our templates are pretty barebones.  Very minimal.  You'll have to add
> just about anything you would really want to make a useful container.
I should definitely take a closer look sometime.
>> It's running Debian Jessie. LXC 1.0.5-3 from package management. And
>> systemd 208-8 also from package management.
> OK... THAT explains a LOT!  That systemd option is why you're running
> into this problem and you're about to have far worse.
>
>> I took a config from an existing container and modified it for what I
>> thought would work for an unprivileged container. I've attached the
>> config for osmium. I've also attached the latest trace output from the
>> lxc-start, as I've fixed a few slight errors in the config since then.
> You're going to have to make some additional changes...  Make sure you
> add "lxc.kmsg = 0" to your container or systemd.journald is going to eat
> your CPU time for lunch (and be sure to flush
> your /dev/.lxc/user/osmium* directory).  There's also some adjustments
> that need to be made for mgetty consoles and such.  You also need to
> link the shutdown unit to the SIGPWR service to allow lxc to shut the
> container down gracefully.  You might take a look at the Oracle or
> Fedora templates for some guidance there.
Will definitely come back to this once it starts up, thank you for the 
advice.
>> osmium at cadmium:~$ find /dev/.lxc/user -ls
>>     9668    0 drwxrwxrwt   3 root     root           60 Sep 30 15:38
>> /dev/.lxc/user
>>    11109    0 drwxr-xr-x   3 427680   427680         60 Sep 30 15:38
>> /dev/.lxc/user/osmium.3c68b3f0c5eeec7d
>>    11110    0 drwxr-xr-x   2 427680   427680         40 Sep 30 15:38
>> /dev/.lxc/user/osmium.3c68b3f0c5eeec7d/pts
> Bingo!
>
> Ok...  So it appears that lxc-start did manage to create your dev
> directory properly under the host /dev/.lxc/user.
>
> Now I see the real problem...
>
> The same code that creates that directory creates the symlink
> in /home/osmium/.local/share/lxc/osmium.  But, the /dev/ directory is
> owned by "427680:427680" while the directory containing the symlink is
> own by "osmium:osmium" and you then have a permission denied because
> 427680:427680 doesn't have write permissions
> to /home/osmium/.local/share/lxc/osmium.
>
> That's a (the!) problem.  I'm just not sure if chown/chgrp is the
> correct answer or if you need to add some group membership and add group
> write permissions with appropriate host auth secondary groups.  Either
> way, it's that permission problem that biting you in the rear end.
>
OK, yes. This was that problem. Fixing it has progressed startup a 
little further. It didn't like the lxc.mount.entry for devpts, so I 
threw that out for the time being also. Now it's still stuck at 
'populating dev' though. I've attached the latest trace in case you help 
me again.

osmium at cadmium:~$ lxc-start -n osmium -l trace -o /tmp/xxx7
lxc-start: Operation not permitted - Error creating null
lxc-start: failed to populate /dev in the container
lxc-start: failed to setup the container
lxc-start: invalid sequence number 1. expected 2
lxc-start: failed to spawn 'osmium'
lxc-start: The container failed to start.
lxc-start: Additional information can be obtained by setting the 
--logfile and --log-priority options

Thanks,
Chris
-------------- next part --------------
      lxc-start 1412115865.294 INFO     lxc_start_ui - using rcfile /home/osmium/.local/share/lxc/osmium/config
      lxc-start 1412115865.294 INFO     lxc_utils - XDG_RUNTIME_DIR isn't set in the environment.
      lxc-start 1412115865.296 INFO     lxc_confile - read uid map: type u nsid 0 hostid 427680 range 65536
      lxc-start 1412115865.296 INFO     lxc_confile - read uid map: type g nsid 0 hostid 427680 range 65536
      lxc-start 1412115865.296 WARN     lxc_log - lxc_log_init called with log already initialized
      lxc-start 1412115865.296 INFO     lxc_lsm - LSM security driver nop
      lxc-start 1412115865.296 INFO     lxc_utils - XDG_RUNTIME_DIR isn't set in the environment.
      lxc-start 1412115865.298 DEBUG    lxc_conf - allocated pty '/dev/pts/1' (5/6)
      lxc-start 1412115865.298 INFO     lxc_conf - tty's configured
      lxc-start 1412115865.298 DEBUG    lxc_start - sigchild handler set
      lxc-start 1412115865.298 DEBUG    lxc_console - opening /home/osmium/.console for console peer
      lxc-start 1412115865.298 DEBUG    lxc_console - using '/home/osmium/.console' as console
      lxc-start 1412115865.298 DEBUG    lxc_console - no console peer
      lxc-start 1412115865.628 INFO     lxc_start - 'osmium' is initialized
      lxc-start 1412115865.659 DEBUG    lxc_start - Not dropping cap_sys_boot or watching utmp
      lxc-start 1412115865.659 INFO     lxc_start - Cloning a new user namespace
      lxc-start 1412115865.659 INFO     lxc_cgroup - cgroup driver cgroupfs initing for osmium
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.deny' set to 'a'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c *:* m'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'b *:* m'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c 5:1 rwm'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c 10:229 rwm'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c 1:3 rwm'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c 5:2 rwm'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c 136:* rwm'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c 1:8 rwm'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c 254:0 rwm'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c 5:0 rwm'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c 1:9 rwm'
      lxc-start 1412115865.663 DEBUG    lxc_cgfs - cgroup 'devices.allow' set to 'c 1:5 rwm'
      lxc-start 1412115865.663 INFO     lxc_cgfs - cgroup has been setup
      lxc-start 1412115865.767 NOTICE   lxc_start - switching to gid/uid 0 in new user namespace
      lxc-start 1412115865.771 DEBUG    lxc_conf - mounted '/home/osmium/.local/share/lxc/osmium/rootfs' on '/usr/lib/x86_64-linux-gnu/lxc/rootfs'
      lxc-start 1412115865.771 INFO     lxc_conf - 'osmium' hostname has been setup
      lxc-start 1412115865.772 DEBUG    lxc_conf - mac address '00:16:3e:73:bd:de' on 'eth0' has been setup
      lxc-start 1412115865.772 DEBUG    lxc_conf - 'eth0' has been setup
      lxc-start 1412115865.772 INFO     lxc_conf - network has been setup
      lxc-start 1412115865.772 DEBUG    lxc_conf - Set exec command to /sbin/init
      lxc-start 1412115865.772 INFO     lxc_conf - Container with systemd init detected - enabling autodev!
      lxc-start 1412115865.772 INFO     lxc_conf - Mounting /dev under /usr/lib/x86_64-linux-gnu/lxc/rootfs
      lxc-start 1412115865.772 DEBUG    lxc_conf - entering mount_check_fs for /dev
      lxc-start 1412115865.773 DEBUG    lxc_conf - mount_check_fs returning 1 last devtmpfs
      lxc-start 1412115865.773 INFO     lxc_conf - Setup in /dev/.lxc failed.  Trying /dev/.lxc/user.
      lxc-start 1412115865.773 DEBUG    lxc_conf - Bind mounting /dev/.lxc/user/osmium.3c68b3f0c5eeec7d to /usr/lib/x86_64-linux-gnu/lxc/rootfs/dev
      lxc-start 1412115865.773 INFO     lxc_conf - Mounted /dev under /usr/lib/x86_64-linux-gnu/lxc/rootfs
      lxc-start 1412115865.773 DEBUG    lxc_conf - mounted 'proc' on '/usr/lib/x86_64-linux-gnu/lxc/rootfs//proc', type 'proc'
      lxc-start 1412115865.774 DEBUG    lxc_conf - mounted 'sysfs' on '/usr/lib/x86_64-linux-gnu/lxc/rootfs//sys', type 'sysfs'
      lxc-start 1412115865.774 INFO     lxc_conf - mount points have been setup
      lxc-start 1412115865.774 INFO     lxc_conf - Creating initial consoles under /usr/lib/x86_64-linux-gnu/lxc/rootfs/dev
      lxc-start 1412115865.774 INFO     lxc_conf - Populating /dev under /usr/lib/x86_64-linux-gnu/lxc/rootfs
      lxc-start 1412115865.774 ERROR    lxc_conf - Operation not permitted - Error creating null
      lxc-start 1412115865.774 ERROR    lxc_conf - failed to populate /dev in the container
      lxc-start 1412115865.774 ERROR    lxc_start - failed to setup the container
      lxc-start 1412115865.774 ERROR    lxc_sync - invalid sequence number 1. expected 2
      lxc-start 1412115865.774 INFO     lxc_utils - XDG_RUNTIME_DIR isn't set in the environment.
      lxc-start 1412115865.835 ERROR    lxc_start - failed to spawn 'osmium'
      lxc-start 1412115865.836 INFO     lxc_utils - XDG_RUNTIME_DIR isn't set in the environment.
      lxc-start 1412115865.836 INFO     lxc_utils - XDG_RUNTIME_DIR isn't set in the environment.
      lxc-start 1412115865.837 ERROR    lxc_start_ui - The container failed to start.
      lxc-start 1412115865.837 ERROR    lxc_start_ui - Additional information can be obtained by setting the --logfile and --log-priority options.


More information about the lxc-users mailing list