Для цілей цієї відповіді припустимо, що ваш контейнер названий "foo".
ЧАСТИНА А
З хостом збережіть копію /var/lib/lxc/foo/config, якщо мої вказівки щось порушують.
Вам потрібно буде налаштувати контейнер для збереження SYS_MODULE
можливостей.
Майте на увазі, що така конфігурація дає цьому контейнеру можливість захоплювати ядро і тим самим хост .
Для цього вам потрібно змінити лінію конфігурації "lxc.cap.drop"або "lxc.cap.keep".
Якщо у вас є гість Ubuntu 19.04, який було створено з "lxc-create --name foo --template download -- ...":
/var/lib/lxc/foo/config буде містити рядок
lxc.include = /usr/share/lxc/ubuntu.common.conf
/usr/share/lxc/ubuntu.common.conf буде містити рядок
lxc.include = /usr/share/lxc/config/common.conf
/usr/share/lxc/config/common.conf буде містити такий рядок
lxc.cap.drop = mac_admin mac_override sys_time sys_module sys_rawio
Ви повинні скопіювати цей останній рядок до кінця /var/lib/lxc/foo/config(або будь-якого місця після "include /usr/share/lxc/ubuntu.common.conf"), а потім видалити "sys_module"зі цього списку.
Частина В
Вам потрібна копія модулів ядра в контейнері.
Якщо ваш хост працює з ядром Ubuntu, можливо, ви зможете зробити щось на зразок "sudo apt install kernel-image-$(uname -r)"гостя.
В іншому випадку від хоста може знадобитися зробити щось подібне (припустимо, що ваш контейнер названий "foo"):
mkdir -p /var/lib/lxc/foo/rootfs/lib/modules
cp -apr /lib/modules/$(uname -r) /var/lib/lxc/foo/rootfs/lib/modules/
Після цього вимкніть гостьовий фой, якщо він працює, а потім перезапустіть його чимось на кшталт "lxc-start --name foo".
Тепер контейнер LXC повинен мати можливість завантажувати та вивантажувати модулі ядра.