Answers:
在您的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 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
重新启动您的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
检查来宾上的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
)。