lxc: выполнение virtualbox в контейнере

Спин-блокировки используются в контексте прерывания, где сон не позволяется. Они опрашивают в жестком цикле, не делая ничего иного, пока ресурс не получен. Главным образом используемый в ISRs, и более безопасный и эффективный.

Семафоры могут использоваться в контексте процесса, где сон в порядке.

9
06.07.2013, 18:29
4 ответа

Драйвер ядра VirtualBox Linux (vboxdrv) или не загружается или существует проблема разрешения с/dev/vboxdrv. Повторно установите модуль ядра путем выполнения

 '/etc/init.d/vboxdrv setup'

как корень. Пользователи Ubuntu или Fedora должны установить пакет DKMS сначала. Этот пакет отслеживает ядро Linux, изменяет и перекомпилировал vboxdrv модуль ядра при необходимости.

1
27.01.2020, 20:07
  • 1
    Это - просто кавычка из сообщения об ошибке. Драйвер загружается, но контейнер не имеет разрешения получить доступ к нему. Согласно ошибочному ответу. Мой вопрос был: как каждый дает разрешение к процессам в контейнере получать доступ к устройствам ядра?? Как я решаю проблему полномочий? –  user108168 06.07.2013, 18:59

Вы должны иметь /dev/vboxdrv принадлежавший группе "vboxuser" и пользователю, начинающему контейнер в той группе. Добавьте, что пользователь группе затем удостоверяется, что существуют полномочия группы (т.е. chmod 660 /dev/vboxdrv).

0
27.01.2020, 20:07
  • 1
    Привет Nathan C. Спасибо за Ваш ответ. Где я делающий это; в серверной среде или контейнере? –  user108168 06.07.2013, 19:34
  • 2
    Хост, принимающий драйверы ядра, установлен там (который они должны начиная с LXC полагаться на ядро хоста). –   06.07.2013, 19:35
  • 3
    Привет Nathan C спасибо за разъяснение. Устройство/dev/vboxdrv принадлежит корню, и я запускаю контейнер как корень. Я выполнял virtualbox как другой пользователь в контейнере, но пытался выполнить его как корень. Я также chmoded устройство для установки группы на vboxusers и полномочий к 660. Я все еще получаю ошибку. Все хорошо работает на хосте и к корневым и к некорневым пользователям. Разве я не должен помещать установку в lxc файл конфигурации для предоставления разрешений к контейнеру?? Это - то, что я принял, но не знайте, каковы они.Спасибо за помощь. –  user108168 06.07.2013, 20:32

На вашем хосте LXC (я предполагаю Ubuntu здесь):

  1. Установите VirtualBox-DKMS , Linux-Generic , СУЩЕСТВЕННЫЕ Пакеты и проверка модулей ядра загружаются:

     MyHost $ sudo /etc/init.d/virtualbox status
    Модули ядра VirtualBox загружены.
     
  2. Получите номера устройств VirtualBox (10, 55/56/57 в моем случае):

     MyHost $ ls -la / dev |  Greep Vbox.
    CRW -------- 1 корневой корня 10, 57 февраля 25 08:22 VoxDrv
    CRW -------- 1 корневой корня 10, 56 февраля 25 08:22 vboxdrvu
    CRW -------- 1 корневой корня 10, 55 февраля 25 08:22 vboxnetctl
     
  3. Возьмите номера узлов и добавьте в ваш гостевой конфигурацию LXC ( / var / lib / lxc / myguest / config ):

     ## VirtualBox
    lxc.cgroup.devices.are = 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 загружены.
     
9
27.01.2020, 20:07

Нет необходимости устанавливать виртуальный бокс на вашем хост-компьютере, если ваш контейнер компилирует модуль ядра, вы можете просто загрузить его во время предварительный сценарий на контейнере LXC. Для большей безопасности вы можете скопировать модули ядра VBox на свой хост перед загрузкой.

-1
27.01.2020, 20:07

Теги

Похожие вопросы