lxc: executando o virtualbox dentro de um contêiner

6

Eu instalei o virtualbox dentro de um contêiner lxc. No entanto, quando tento iniciar uma VM, recebo a mensagem:

driver do kernel não acessível (rc = 1909) .... problema de permissão com / dev / vboxdrv.

Isso obviamente parece um problema de segurança previsível.

Alguém sabe como posso conceder permissão ao contêiner para acessar este driver de dispositivo: '/ dev / vboxdrv'?

Qualquer ajuda ou ponteiros muito apreciados.

    
por user108168 06.07.2013 / 17:29

4 respostas

7

No seu host LXC (estou assumindo o Ubuntu aqui):

  1. Instale os pacotes virtualbox-dkms , linux-headers-generic , build-essential e verifique se os módulos do kernel estão carregados:

    myhost$ sudo /etc/init.d/virtualbox status
    VirtualBox kernel modules are loaded.
    
  2. Obtenha os números dos dispositivos do VirtualBox (10, 55/56/57 no meu caso):

    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. Pegue os números dos nós e adicione à sua configuração de convidado do 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. Reinicie seu convidado do LXC, instale o pacote virtualbox e crie os nós do dispositivo:

    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. Verifique se o VirtualBox no convidado pode ver os módulos do kernel:

    myguest$ sudo /etc/init.d/virtualbox status
    VirtualBox kernel modules are loaded.
    
por 24.02.2015 / 20:55
1

O driver do kernel do VirtualBox Linux (vboxdrv) não está carregado ou há um problema de permissão com / dev / vboxdrv. Re-setup o módulo do kernel executando

 '/etc/init.d/vboxdrv setup'

como root. Usuários do Ubuntu ou do Fedora devem instalar o pacote DKMS em primeiro lugar. Este pacote acompanha as alterações do kernel do Linux e recompila o módulo do kernel vboxdrv, se necessário.

    
por 06.07.2013 / 17:46
0

Você precisa ter o /dev/vboxdrv pertencente ao grupo "vboxuser" e o usuário que inicia o contêiner nesse grupo. Adicione o usuário ao grupo e verifique se há permissões de grupo (por exemplo,chmod 660 /dev/vboxdrv).

    
por 06.07.2013 / 18:18
-1

Não deve ser necessário instalar o virtualbox em sua máquina host, desde que seu contêiner compile o módulo do kernel, você poderia simplesmente carregá-lo durante um script de pré-inicialização no contêiner LXC. Para melhor segurança, você pode copiar os módulos do VBox para o seu host antes de carregar.

    
por 18.09.2016 / 21:22