FMADIO Supports multiple LXC containers, with a streamlined process to get up and running.
Install Ubuntu22.04 Container
In this example walk thru how to install the FMADIO Ubuntu 22.04 stock LXC container.
Step 1) Download the LXC
All LXCs are downloaded on the page
https://static.fmad.io/container.html
After downloading copy to the FMADIO system directory
/opt/fmadio/lxc/
Step 2) Extract
Extract the container, example command shown below
tar xfzv ubuntu22-20241223-0621.tar.gz
Example output shown below
root@fmadio200v4-636:/mnt/store1/lxc/lib/lxc# tar xfzv ubuntu22-20241223-0621.tar.gz
ubuntu22-20241223-0621/
ubuntu22-20241223-0621/install.lua
ubuntu22-20241223-0621/config
ubuntu22-20241223-0621/backup.lua
ubuntu22-20241223-0621/rootfs/
ubuntu22-20241223-0621/rootfs/sys/
ubuntu22-20241223-0621/rootfs/proc/
ubuntu22-20241223-0621/rootfs/home/
ubuntu22-20241223-0621/rootfs/home/fmadio/
ubuntu22-20241223-0621/rootfs/home/fmadio/.bash_logout
ubuntu22-20241223-0621/rootfs/home/fmadio/.vimrc
ubuntu22-20241223-0621/rootfs/home/fmadio/.bashrc
ubuntu22-20241223-0621/rootfs/home/fmadio/.profile
ubuntu22-20241223-0621/rootfs/home/fmadio/.ssh/
ubuntu22-20241223-0621/rootfs/home/fmadio/.ssh/authorized_keys
ubuntu22-20241223-0621/rootfs/home/ubuntu/
ubuntu22-20241223-0621/rootfs/home/ubuntu/.bash_logout
ubuntu22-20241223-0621/rootfs/home/ubuntu/.bashrc
ubuntu22-20241223-0621/rootfs/home/ubuntu/.profile
ubuntu22-20241223-0621/rootfs/usr/
ubuntu22-20241223-0621/rootfs/usr/include/
ubuntu22-20241223-0621/rootfs/usr/include/mcheck.h
ubuntu22-20241223-0621/rootfs/usr/include/tirpc/
ubuntu22-20241223-0621/rootfs/usr/include/tirpc/rpc/
ubuntu22-20241223-0621/rootfs/usr/include/tirpc/rpc/nettype.h
ubuntu22-20241223-0621/rootfs/usr/include/tirpc/rpc/des.h
ubuntu22-20241223-0621/rootfs/usr/include/tirpc/rpc/rpc_msg.h
ubuntu22-20241223-0621/rootfs/usr/include/tirpc/rpc/svc_dg.h
ubuntu22-20241223-0621/rootfs/usr/include/tirpc/rpc/rpcb_prot.x
.
.
.
ubuntu22-20241223-0621/rootfs/tmp/.XIM-unix/
ubuntu22-20241223-0621/rootfs/tmp/.X11-unix/
ubuntu22-20241223-0621/rootfs/opt/
ubuntu22-20241223-0621/rootfs/opt/fmadio/
ubuntu22-20241223-0621/rootfs/opt/fmadio/bin/
ubuntu22-20241223-0621/rootfs/opt/fmadio/bin/fmadio2eth
ubuntu22-20241223-0621/rootfs/opt/fmadio/bin/fmadiolua
ubuntu22-20241223-0621/rootfs/opt/fmadio/bin/lJSON.lua
ubuntu22-20241223-0621/rootfs/opt/fmadio/bin/fmadio2stat
ubuntu22-20241223-0621/rootfs/opt/fmadio/bin/pcap2fmadio
ubuntu22-20241223-0621/rootfs/opt/fmadio/bin/fmadio2pcap
ubuntu22-20241223-0621/rootfs/opt/fmadio/app/
ubuntu22-20241223-0621/rootfs/run/
ubuntu22-20241223-0621/rootfs/srv/
ubuntu22-20241223-0621/rootfs/sbin
root@fmadio200v4-636:/mnt/store1/lxc/lib/lxc#
Step 3) Run the installer
Enter the LXC directory, this requires changing to the root use
sudo su
cd ubuntu22-20241223-062
There is an install.lua
script in the directory. Run the script per below
./install.lua
Example output shown below
root@fmadio200v4-636:/mnt/store1/lxc/lib/lxc/ubuntu22-20241223-0621# ./install.lua
fmad fmadlua Apr 9 2025 (/opt/fmadio/bin/fmadiolua --nocal ./install.lua )
Disable cycle calibration
man0 imported
man0 ipv4 addr [nil]
man0 ipv4 netmask [nil]
man0 ipv4 gw [nil]
man0 ipv4 dns [nil]
lxcname [nil]
lxcbuild [nil]
nat [y]
fmad fmadlua Apr 9 2025 (/opt/fmadio/bin/fmadiolua --nocal /opt/fmadio/bin/fmadiocli version )
Disable cycle calibration
done 0.005252Sec 0.000088Min
-----------------------------------------------
[Sat Apr 12 14:26:24 2025] CmdLine [version]
[Sat Apr 12 14:26:24 2025] Cmd [version ]
-----------------------------------------------
fmadiocliPresent = true
ubuntu22-20241223-0621
rm config
mkdir /opt/fmadio/lxc/ubuntu22-20241223-0621/data/ -p
mkdir /opt/fmadio/lxc/ubuntu22-20241223-0621/log/ -p
----------------------
IP : nil
CIDR : nil
GW : nil
DNS : nil
Nat : y
rm /opt/fmadio/lxc/ubuntu22-20241223-0621/rootfs/etc/resolv.conf
touch /opt/fmadio/lxc/ubuntu22-20241223-0621/rootfs/etc/resolv.conf
echo fmadio200v4-636-ubuntu22 > /opt/fmadio/lxc/ubuntu22-20241223-0621/rootfs/etc/hostname
echo 127.0.0.1 fmadio200v4-636-ubuntu22 >> /opt/fmadio/lxc/ubuntu22-20241223-0621/rootfs/etc/hosts
/opt/fmadio/bin/fmadiocli "config lxc add ubuntu22-20241223-0621"
fmad fmadlua Apr 9 2025 (/opt/fmadio/bin/fmadiolua --nocal /opt/fmadio/bin/fmadiocli config lxc add ubuntu22-20241223-0621 )
Disable cycle calibration
[Sat Apr 12 14:26:24 2025] CmdLine [config lxc add ubuntu22-20241223-0621]
[Sat Apr 12 14:26:24 2025] Cmd [config lxc add ubuntu22-20241223-0621 ]
[Sat Apr 12 14:26:24 2025] Added container [ubuntu22-20241223-0621] to the configuration
done 0.997916Sec 0.016632Min
done
done 1.024215Sec 0.017070Min
root@fmadio200v4-636:/mnt/store1/lxc/lib/lxc/ubuntu22-20241223-0621#
Step 4) Start the LXC
Using the LXC tools start the LXC using the following
sudo lxc-start -n ubuntu22-20241223-0621
Example output below
root@fmadio200v4-636:/mnt/store1/lxc/lib/lxc/ubuntu22-20241223-0621# sudo lxc-start -n ubuntu22-20241223-0621
root@fmadio200v4-636:/mnt/store1/lxc/lib/lxc/ubuntu22-20241223-0621#
Step 5) Attach to the LXC
Finally attach to the LXC using the lxc-attach command
sudo lxc-attach -n ubuntu22-20241223-0621
Example output shown below
root@fmadio200v4-636:/mnt/store1/lxc/lib/lxc/ubuntu22-20241223-0621# sudo lxc-attach -n ubuntu22-20241223-0621
root@fmadio200v4-636-ubuntu22:/#
Can now configure the Ubuntu22 LXC without any major restrictions.
CPU allocation / isolation may be recommended however it depends on what the use case is.
Package Manger
By default all FMADIO LXC Ubuntu containers are build using a static sourced .deb repo. This means
sudo apt-get install
will fail due to unable to find the static file repo. To enable usual ubuntu install follow the following steps