lxcコンテナー内にvirtualboxをインストールしました。ただし、VMを起動しようとすると、次のメッセージが表示されます。
カーネルドライバーにアクセスできません(rc = 1909).... / dev / vboxdrvでの権限の問題。
これは明らかに予測可能なセキュリティ問題のように見えます。
このデバイスドライバー '/ dev / vboxdrv'にアクセスするためのアクセス許可をコンテナーに付与する方法を誰かが知っていますか?
ヘルプやポインタは大歓迎です。
lxcコンテナー内にvirtualboxをインストールしました。ただし、VMを起動しようとすると、次のメッセージが表示されます。
カーネルドライバーにアクセスできません(rc = 1909).... / dev / vboxdrvでの権限の問題。
これは明らかに予測可能なセキュリティ問題のように見えます。
このデバイスドライバー '/ dev / vboxdrv'にアクセスするためのアクセス許可をコンテナーに付与する方法を誰かが知っていますか?
ヘルプやポインタは大歓迎です。
回答:
LXCホスト(ここではUbuntuを想定しています):
インストールvirtualbox-dkms
、linux-headers-generic
、build-essential
パッケージとカーネルモジュールがロードされている確認してください。
myhost$ sudo /etc/init.d/virtualbox status
VirtualBox kernel modules are loaded.
VirtualBoxデバイス番号を取得します(私の場合は10、55 / 56/57):
myhost$ ls -la /dev | grep vbox
crw------- 1 root root 10, 57 Feb 25 08:22 vboxdrv
crw------- 1 root root 10, 56 Feb 25 08:22 vboxdrvu
crw------- 1 root root 10, 55 Feb 25 08:22 vboxnetctl
ノード番号を取得し、LXCゲスト構成に追加します(/var/lib/lxc/myguest/config
):
## VirtualBox
lxc.cgroup.devices.allow = c 10:57 rwm
lxc.cgroup.devices.allow = c 10:56 rwm
lxc.cgroup.devices.allow = c 10:55 rwm
LXCゲストを再起動し、virtualbox
パッケージをインストールして、デバイスノードを作成します。
myguest$ sudo mknod -m 600 /dev/vboxdrv c 10 57
myguest$ sudo mknod -m 600 /dev/vboxdrvu c 10 56
myguest$ sudo mknod -m 600 /dev/vboxnetctl c 10 55
ゲストのVirtualBoxがカーネルモジュールを表示できることを確認します。
myguest$ sudo /etc/init.d/virtualbox status
VirtualBox kernel modules are loaded.
VirtualBox Linuxカーネルドライバー(vboxdrv)がロードされていないか、/ dev / vboxdrvに権限の問題があります。実行してカーネルモジュールを再セットアップします
'/etc/init.d/vboxdrv setup'
ルートとして。UbuntuまたはFedoraのユーザーは、最初にDKMSパッケージをインストールする必要があります。このパッケージはLinuxカーネルの変更を追跡し、必要に応じてvboxdrvカーネルモジュールを再コンパイルします。
/dev/vboxdrv
グループ「vboxuser」が所有し、ユーザーがそのグループでコンテナーを開始している必要があります。ユーザーをグループに追加し、グループのアクセス許可(つまりchmod 660 /dev/vboxdrv
)があることを確認します。
ホストマシンにvirtualboxをインストールする必要はないはずです。コンテナーがカーネルモジュールをコンパイルする限り、LXCコンテナーの事前起動スクリプト中にロードするだけで済みます。セキュリティを高めるために、ロードする前にVBoxカーネルモジュールをホストにコピーできます。