Hi,
I guess I did not explain the issue clearly.
I am not doing anything fancy with lxc. I just want to create and run lxc container(s); preferrably unprivileged, but if that is not possible, a privileged container is also OK.
I am aware of alternatives like docker, podman and the wrapper, distrobox (which is actually very good) but somehow I prefer lxc. In fact, I prefer to use plain lxc instead of ‘lxd’ or ‘incus’.
I understand. My intension was not to compare the distros (I have read “OpenMandriva is not <put your distro here>” message
). The reason I mentioned them is,
- Ubuntu has a nice wrapper (or REST API as they call it) called ‘lxd’ which helps manage lxc. It has
lxd init
command that configures the lxc like storage pool, network etc the first time we run it. The distros mentioned do NOT have ‘lxd’; they use ‘vanilla’ lxc, just like OMLx.
- The distros I tried (forgot to mention Arch) include both systemd and non-systemd, so it is not an init system issue.
- The versions are also different (v4.0.10, v5.0.2 and v6.0.4). So it is not an issue with a particular version as well.
It is not like I can create a container but some feature is not working. For example, unprivileged container is not working or networking is not working etc. I am not able to create the container itself. And the error message is related to some “undefined symbol”!.
No. It fails with same error message for sudo/root as well.
[root@openmandriva-x8664 ~]# lxc-create -n test -t download
lxc-create: symbol lookup error: lxc-create: undefined symbol: lxc_is_valid_storage_type
Below are my configuration(s). Please note another “symbol” error below, for ‘lxc-start’ command.
[sv@openmandriva-x8664 ~]$ lxc-info --version
4.0.6
[sv@openmandriva-x8664 ~]$ lxc-checkconfig
lxc-start: symbol lookup error: lxc-start: undefined symbol: lxc_config_define_load
LXC version
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Namespace limits:
cgroup: 30619
ipc: 30619
mnt: 30619
net: 30619
pid: 30619
time: 30619
user: 30619
uts: 30619
--- Control groups ---
Cgroups: enabled
Cgroup namespace: enabled
Cgroup v1 mount points:
Cgroup v2 mount points:
- /sys/fs/cgroup
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled
--- Misc ---
Veth pair device: enabled, not loaded
Macvlan: enabled, not loaded
Vlan: enabled, not loaded
Bridges: enabled, loaded
Advanced netfilter: enabled, not loaded
CONFIG_IP_NF_TARGET_MASQUERADE: enabled, not loaded
CONFIG_IP6_NF_TARGET_MASQUERADE: enabled, not loaded
CONFIG_NETFILTER_XT_TARGET_CHECKSUM: enabled, loaded
CONFIG_NETFILTER_XT_MATCH_COMMENT: enabled, not loaded
FUSE (for use with lxcfs): enabled, loaded
--- Checkpoint/Restore ---
checkpoint restore: enabled
CONFIG_FHANDLE: enabled
CONFIG_EVENTFD: enabled
CONFIG_EPOLL: enabled
CONFIG_UNIX_DIAG: enabled
CONFIG_INET_DIAG: enabled
CONFIG_PACKET_DIAG: enabled
CONFIG_NETLINK_DIAG: enabled
File capabilities: enabled
Note: Before booting a new kernel, you can check its configuration with:
CONFIG=/path/to/config /usr/bin/lxc-checkconfig
[sv@openmandriva-x8664 ~]$ cat /etc/sysconfig/lxc-net
USE_LXC_BRIDGE="true"
[sv@openmandriva-x8664 ~]$ cat /etc/lxc/default.conf
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 10:66:6a:xx:xx:xx
[sv@openmandriva-x8664 ~]$ cat ~/.config/lxc/default.conf
lxc.include = /etc/lxc/default.conf
lxcpath = ~/.local/share/lxc
lxc.start.auto = 1
lxc.idmap = u 0 100000 65536
lxc.idmap = g 0 100000 65536
[sv@openmandriva-x8664 ~]$ cat /etc/lxc/lxc-usernet
sv veth lxcbr0 10
[sv@openmandriva-x8664 ~]$ cat /etc/subuid /etc/subgid
sv:100000:65536
sv:100000:65536
One more peculiar thing, the versions shown by ‘dnf info’ and ‘lxc-info --version’
are different (actually mirror each other!).
[sv@openmandriva-x8664 ~]$ dnf info lxc
Last metadata expiration check: 1:16:59 ago on Friday 27 June 2025 09:36:10 AM.
Installed Packages
Name : lxc
Version : 6.0.4
Release : 1
Architecture : x86_64
Size : 6.8 M
Source : lxc-6.0.4-1.src.rpm
Repository : @System
From repo : rolling-x86_64
Summary : Linux Containers
URL : https://lxc.sourceforge.net
License : LGPLv2
Description : The package "lxc" provides the command lines to create and manage
: containers. It contains a full featured container with the isolation
: / virtualization of the pids, the ipc, the utsname, the mount points,
: /proc, /sys, the network and it takes into account the control groups.
: It is very light, flexible, and provides a set of tools around the
: container like the monitoring with asynchronous events notification,
: or the freeze of the container. This package is useful to create
: Virtual Private Server, or to run isolated applications like bash or
: sshd.
[sv@openmandriva-x8664 ~]$ lxc-info --version
4.0.6
I am guessing it is OMLx package issue. May be some configuration is wrong or some required package/library it not available or installed as dependency.