I can now confirm that I successfully started PIHOLE lxc container on blue Turris 1.0 with this config:
lxc.uts.name = pihole
lxc.rootfs.path = /srv/lxc/pihole/rootfs
lxc.start.auto=1
lxc.start.order=8
lxc.start.delay=60
lxc.mount.auto = proc:mixed sys:ro cgroup:mixed
lxc.cgroup.devices.allow = c 116:* rwm
lxc.mount.entry = proc /proc proc nodev,noexec,nosuid 0 0
lxc.mount.entry = tmpfs dev/shm tmpfs rw,nosuid,nodev,create=dir 0 0
lxc.mount.entry = tmpfs run tmpfs rw,nosuid,nodev,mode=755,create=dir 0 0
lxc.mount.entry = tmpfs run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k,create=dir 0 0
lxc.mount.entry = tmpfs run/user tmpfs rw,nosuid,nodev,mode=755,size=50m,create=dir 0 0
lxc.mount.entry = tmpfs sys/fs/cgroup tmpfs rw,nosuid,nodev,create=dir 0
lxc.mount.entry = devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
lxc.mount.entry = /dev/snd dev/snd none bind,optional,create=dir
lxc.mount.entry = /dev/net dev/net none bind,optional,create=dir
lxc.mount.entry = /dev/input dev/input none bind,optional,create=dir
lxc.mount.entry= /data data none bind.ro 0.0
lxc.mount.entry= /mnt/flash mnt/flash none bind.ro 0.0
lxc.mount.entry= /lib/modules lib/modules none bind.ro 0.0
lxc.pty.max=1024
lxc.apparmor.allow_incomplete = 1
lxc.autodev=1
lxc.net.0.type = veth
lxc.net.0.flags = up
lxc.net.0.link = br-lan
lxc.net.0.hwaddr = 00:11:22:00:01:02
lxc.net.0.ipv4.address = 192.168.0.2/24
lxc.net.0.ipv4.gateway = 192.168.0.1
lxc.seccomp.profile =
lxc.init.cmd = /sbin/init systemd.unified_cgroup_hierarchy=1
the problem was caused by line in my config that was fix and solution needed to start lxc container on master or x86 device:
#lxc.hook.mount = /srv/lxc/pihole/hook-cgroups.sh #FIXME
that was necessary to start LXC container on my another x86 device and lead to this script hook-cgroups.sh but this script is obviously not necessary for powerpcspe device like turris:
#!/bin/sh
mkdir -p ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/systemd
mount cgroup ${LXC_ROOTFS_MOUNT}/sys/fs/cgroup/systemd
-t cgroup
-o rw,nosuid,nodev,noexec,relatime,xattr,name=systemd
With this config LXC pihole container that I copied rootfs from TOS3 was able to boot on foreground even with some complaints like this:
root@turris:~# lxc-start -n pihole -F
lxc-start: pihole: utils.c: safe_mount: 1179 No such file or directory - Failed to mount “/usr/lib/lxc/rootfs/proc/tty” onto “/usr/lib/lxc/rootfs/proc/sys/net”
systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
Detected virtualization lxc.
Detected architecture ppc.
Welcome to Debian GNU/Linux 10 (buster)!
Set hostname to .
Couldn’t move remaining userspace processes, ignoring: Input/output error
File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
/lib/systemd/system/lighttpd.service:6: PIDFile= references path below legacy directory /var/run/, updating /var/run/lighttpd.pid â /run/lighttpd.pid; please update the unit file accordingly.
[ OK ] Listening on initctl Compatibility Named Pipe.
[ OK ] Created slice system-getty.slice.
[ OK ] Reached target Swap.
[ OK ] Listening on Journal Socket (/dev/log).
[ OK ] Created slice User and Session Slice.
[ OK ] Reached target Slices.
[ OK ] Started Forward Password Requests to Wall Directory Watch.
[ OK ] Listening on Syslog Socket.
[ OK ] Started Dispatch Password Requests to Console Directory Watch.
[ OK ] Reached target Local Encrypted Volumes.
[ OK ] Reached target Paths.
[ OK ] Reached target Remote File Systems.
[ OK ] Listening on Journal Socket.
Starting Load Kernel Modules…
Starting Remount Root and Kernel File Systems…
Starting Set the console keyboard layout…
Starting Helper to synchronize boot up for ifupdown…
Starting Nameserver information manager…
Mounting POSIX Message Queue File System…
Mounting Kernel Debug File System…
Starting Journal Service…
[ OK ] Started Helper to synchronize boot up for ifupdown.
[ OK ] Started Load Kernel Modules.
[ OK ] Started Remount Root and Kernel File Systems.
[ OK ] Mounted POSIX Message Queue File System.
[ OK ] Mounted Kernel Debug File System.
[ OK ] Started Nameserver information manager.
Starting Create System Users…
Mounting FUSE Control File System…
Mounting Kernel Configuration File System…
[ OK ] Started Journal Service.
Starting Flush Journal to Persistent Storage…
[ OK ] Mounted FUSE Control File System.
[ OK ] Mounted Kernel Configuration File System.
[ OK ] Started Create System Users.
Starting Create Static Device Nodes in /dev…
[ OK ] Started Set the console keyboard layout.
[ OK ] Started Flush Journal to Persistent Storage.
[ OK ] Started Create Static Device Nodes in /dev.
[ OK ] Reached target Local File Systems (Pre).
[ OK ] Reached target Local File Systems.
Starting Create Volatile Files and Directories…
Starting Raise network interfaces…
Starting Set console font and keymap…
[ OK ] Started Set console font and keymap.
[ OK ] Started Create Volatile Files and Directories.
Starting Update UTMP about System Boot/Shutdown…
[ OK ] Reached target System Time Synchronized.
[ OK ] Started Raise network interfaces.
[ OK ] Reached target Network.
[ OK ] Reached target Network is Online.
[ OK ] Started Update UTMP about System Boot/Shutdown.
[ OK ] Reached target System Initialization.
[ OK ] Started Daily Cleanup of Temporary Directories.
[ OK ] Started Daily man-db regeneration.
[ OK ] Started Periodic ext4 Online Metadata Check for All Filesystems.
[ OK ] Started Daily rotation of log files.
[ OK ] Listening on D-Bus System Message Bus Socket.
[ OK ] Started Clean PHP session files every 30 mins.
[ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[ OK ] Reached target Sockets.
[ OK ] Reached target Basic System.
Starting Permit User Sessions…
Starting LSB: pihole-FTL daemon…
Starting System Logging Service…
Starting OpenBSD Secure Shell server…
Starting Login Service…
Starting DHCP Client Daemon…
Starting Unbound DNS server…
Starting Remove Stale Online ext4 Metadata Check Snapshots…
Starting LSB: Start or stop stunnel 4.x (TLS tunnel for network daemons)…
Starting LSB: Start daemon at boot time…
[ OK ] Started Regular background program processing daemon.
Starting LSB: saslauthd startup script…
Starting LSB: service and resource monitoring daemon…
Starting Avahi mDNS/DNS-SD Stack…
Starting LSB: GNU inetutils syslog daemon…
[ OK ] Started D-Bus System Message Bus.
Starting Lighttpd Daemon…
[ OK ] Started Daily apt download activities.
[ OK ] Started Daily apt upgrade and clean activities.
[ OK ] Reached target Timers.
Starting LSB: LVM2 poll daemon…
[ OK ] Started System Logging Service.
[ OK ] Started Permit User Sessions.
[ OK ] Started DHCP Client Daemon.
[ OK ] Started LSB: GNU inetutils syslog daemon.
[ OK ] Started OpenBSD Secure Shell server.
[ OK ] Started LSB: saslauthd startup script.
[ OK ] Started LSB: service and resource monitoring daemon.
[ OK ] Started LSB: LVM2 poll daemon.
[ OK ] Started Console Getty.
[ OK ] Reached target Login Prompts.
[ OK ] Started Lighttpd Daemon.
[ OK ] Started Avahi mDNS/DNS-SD Stack.
[ OK ] Started Login Service.
[ OK ] Started Unattended Upgrades Shutdown.
[ OK ] Started Unbound DNS server.
[ OK ] Started Unbound DNS server via resolvconf.
[ OK ] Reached target Host and Network Name Lookups.
Starting LSB: exim Mail Transport Agent…
[ OK ] Started Remove Stale Online ext4 Metadata Check Snapshots.
[ OK ] Started LSB: exim Mail Transport Agent.
Debian GNU/Linux 10 pihole console
pihole login:
I think that this information will be usefull and handy for other blue Turries 1.0 users that would also like to migrate from TOS3 to TOS5 and run LXC containers.
It is bit sad that no one from the team replied to my original message saying that LXC container works under TOS5 and copied the working config like @kerby for more than two months. It will be important information for me that to run LXC on TOS5 is possible and I would expect some help from the team. Even now knowing it was kind of my fault using hack for x86 openwrt master to run lxc. But just knowing it works I may put more effort to investigate such issue but that’s life. Lucklily we have at least this forum with other users willing to help us with migration issues.