この回答の目的のために、コンテナの名前が「foo」であると仮定しましょう。
パートA
ホストから、/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"
から、そのリストから削除する必要があります。
パートB
コンテナにカーネルモジュールのコピーが必要です。
ホストが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/
その後、ゲストfooが実行されている場合はシャットダウンし、のようなもので再起動し"lxc-start --name foo"
ます。
これで、LXCコンテナはカーネルモジュールをロードおよびアンロードできるはずです。