Hi All,
I am trying to start a lxc container using libvirt and I am facing an issue due to pivot_root.
The return code from the system call “pivot_root” is EINVAL (Invalid arguments).
I isolated the issue to this specific condition check within the system call.
This is an code snippet from fs/namespace.c::pivot_root
error = -EINVAL;
if (root.mnt->mnt_root != root.dentry)
goto out2; /* not a mountpoint */
if (root.mnt->mnt_parent == root.mnt) << this represents a circular mount reference
goto out2; /* not attached */
if (new.mnt->mnt_root != new.dentry)
goto out2; /* not a mountpoint */
if (new.mnt->mnt_parent == new.mnt)
goto out2; /* not attached */
This issue occurs for me, since I am using fstype "rootfs" as "/" and all binaries are mounted ISO's for execution within "/".
Based on information from the below links, I have realized, that pivot_root is not possible for the above case.
https://lkml.org/lkml/2005/10/8/17
https://bugzilla.kernel.org/show_bug.cgi?id=4857
I would like to know , if my observations are correct and is there any workaround to overcome this issue?
Any help in this regard would be useful.
-Alphonse