lxc:在容器内运行virtualbox


9

我已经在lxc容器中安装了virtualbox。但是,当我尝试启动VM时,出现以下消息:

内核驱动程序不可访问(rc = 1909).... / dev / vboxdrv的权限问题。

这显然看起来像是可预测的安全问题。

有谁知道我如何授予容器访问此设备驱动程序的权限:“ / dev / vboxdrv”?

任何帮助或指针,不胜感激。

Answers:


9

在您的LXC主机上(我在这里假设Ubuntu):

  1. 安装virtualbox-dkmslinux-headers-genericbuild-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 guest虚拟机配置(/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 guest虚拟机,安装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.
    

这应该是正确的答案。最重要的步骤,所有其他的答案是缺少的步骤3和4
莱奥林

1

VirtualBox Linux内核驱动程序(vboxdrv)未加载,或者/ dev / vboxdrv存在权限问题。通过执行重新设置内核模块

 '/etc/init.d/vboxdrv setup'

作为根。Ubuntu或Fedora的用户应首先安装DKMS软件包。该软件包跟踪Linux内核更改,并在必要时重新编译vboxdrv内核模块。


这只是错误消息中的引用。驱动程序已加载,但容器无权访问它。根据错误响应。我的问题是:如何授予容器中的进程访问内核设备的权限?如何解决权限问题?
user108168 2013年

0

您需要/dev/vboxdrv拥有“ vboxuser”组的所有权,并且需要用户在该组中启动容器。将用户添加到组中,然后确保具有组权限(即chmod 660 /dev/vboxdrv)。


嗨,内森(Nathan C)。谢谢您的回复。我在哪里做?在主机环境还是容器中?
user108168 2013年

假定内核驱动程序安装在该主机上的主机(由于LXC依赖于主机内核,因此应安装该主机)。

嗨,内森(Nathan C),谢谢您的澄清。设备/ dev / vboxdrv由root拥有,我以root用户身份启动容器。我在容器中以另一个用户身份运行virtualbox,但尝试以root用户身份运行它。我还修改了设备,将组设置为vboxusers,权限设置为660。我仍然遇到错误。对于root用户和非root用户,一切在主机上都可以正常运行。我不必在lxc配置文件中放置设置以授予容器权限吗?这就是我的假设,但不知道它们是什么。谢谢你的帮助。
2013年

-1

只要您的容器是编译内核模块的容器,就不必在主机上安装virtualbox,您只需在LXC容器上的启动前脚本中加载它即可。为了提高安全性,可以在加载之前将VBox内核模块复制到主机。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.