[lxc-devel] Probably more of a user list than a devel lis question but ...

Michael J Coss michael.coss at alcatel-lucent.com
Wed May 7 23:05:40 UTC 2014


On 5/7/2014 5:33 PM, Serge Hallyn wrote:
> http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface/ 
> says that if /sys is pre-mounted readonly , then systemd will not 
> mount it. But of course if it's empty i could easily see systemd 
> hanging... i defer to our systemd experts for a few more weeks. 
And this seems to be the case when I was effectively exporting the 
host's /sys via my FUSE.  But I need to filter the container's /sys and 
this is where the problem lies.

> Not what I'd expect, as /sys should never be mounted under
> $LXC_ROOTFS_PATH in any namespace.  When I have a lxc.hook.mount
> script look under $LXC_ROOTFS_{MOUNT,PATH}/sys, only MOUNT has
> contents.
Prior to having the hook script, I had a wrapper around lxc-start and in 
that context I mounted my FUSE on the $LXC_ROOTFS_PATH prior to running 
lxc-start.  This "worked" but was exporting the host /sys into the 
container.  I need the filter to be interactive, and on the host, so the 
FUSE daemon needs to be on the host side, but the sysfs instance I need 
is on the other side of the fence :(
>> Second, looking at the mount point of what should be the container's
>> /sys shows an empty directory.  There are two entries in the host
> Looking when and how?  The only valid test for this is to do it from the
> lxc.hook.mount script.  If it's still empty,then you'll need to
> pre-mount /sys (using lxc.mount.auto, lxc.mount.entry, or just by hand
> in your lxc.hook.mount script before mounting the fusefs).
If I type mount, I see two entries: one for the FUSE, and one for the 
sysfs instance.  I had assumed that I could do a ls on the mount point, 
given that mount was showing the mount point was in my namespace.  
However the directory was empty.

My host.mount script is this:

mount -t sysfs sysfs /etc/lxc/<containername>/sys
mount -t shadowsys -o allow_other,defaults /etc/lxc/<containername>/sys 
$LXC_ROOTFS_MOUNT/sys

As I said, after starting the container, on the host, mount(1) reports 
the two mounts.  But it appears that this just false, in that a cat of 
/proc/mounts shows that neither are in fact mounted from the host's 
point of view.  And umount fails for both.  With or without the 
container running.  So obviously mtab is getting messed up.

> Which fusefs are you using?
> _______________________________________________
>
My own.   As it turns out openRC fails as well, but I accessed the 
container via lxc-attach.  And what I see is that the FUSE daemon is 
running in the container namespace but doesn't seem capable of serving 
any files.  I suspect that the issue is that it can't access anything 
from the host side even though it was created with access to the 
directory, /etc/lxc/<containername>/sys, that it is mirroring.  I'll dig 
deeper into what is going on but I suspect that it may simply not be 
possible to make this work the way I envisioned.

-- 
---Michael J Coss



More information about the lxc-devel mailing list