lxc:コンテナ内でvirtualboxを実行する

lxc:コンテナ内でvirtualboxを実行する

lxcコンテナ内にVirtualBoxがインストールされています。ただし、仮想マシンを起動しようとすると、次のメッセージが表示されます。

kernel driver not accessible (rc=1909)
....permission problem with /dev/vboxdrv.

これは間違いなく予測可能なセキュリティ問題のようです。

このデバイスドライバにコンテナアクセスを許可する方法を知っている人はいますか/dev/vboxdrv

どんな助けやアドバイスにも感謝します。

ベストアンサー1

LXCホスト(Ubuntuと仮定):

  1. virtualbox-dkms、、linux-headers-genericパッケージをインストールし、カーネルモジュールがロードbuild-essentialされていることを確認します。

    myhost$ sudo /etc/init.d/virtualbox status
    VirtualBox kernel modules are loaded.
    
  2. 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
    
  3. ノード番号を取得して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
    
  4. 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
    
  5. ゲストの VirtualBox がカーネルモジュールを表示できることを確認します。

    myguest$ sudo /etc/init.d/virtualbox status
    VirtualBox kernel modules are loaded.
    

おすすめ記事