Running unprivileged LXC containers under OpenWRT 21.02.1 and later; apart from the usual requirements for unprivileged containers (which I won't duplicate here unless someone asks), an issue occurs in at least some images, including OpenWRT and Alpine Linux, that the container will fail to start, reporting a permissions error mounting
/proc in the container.
When started in the foreground error will contain the following text:
lxc: Operation not permitted - Failed to mount "proc"
Operation not permitted - Failed to mount "proc" onto "/usr/lib/lxc/rootfs/proc"
The solution is to remount both
/sys, (which will also produce the error) in the host, changing the
noatime option to
relatime. The initial /proc and /sys mount options in the host are not modifiable without building from source, so I found it simplest to do all the work in
/etc/rc.local, including starting the containers I want auto-started. (To do the latter as part of the init.d process would cause these things to occur in the wrong order.)
# Change noatime to relatime for /proc and /sys
mount -o remount,rw,nosuid,nodev,noexec,relatime proc /proc
mount -o remount,rw,nodev,noexec,relatime sysfs /sys
lxc-start -n your-container-name-here
Posted here so it'll come up in a forum search in a related context.
Edited Feb 2024: updated, this problem still exists in 23.05, added the current error message to help this come up in a search.