После установки VirtualBox на хост-систему Linux (RHEL семейства) гостевая система Windows не видит USB устройства. Эта ошибка может возникать из-за отстутствия у пользователя, который запускает VirtualBox, доступа к нужным файлам. Первое, что необходимо проверить — это состоит ли пользователь в группе vboxusers.
Если вы работаете от root’а, выполните команду
id user, где user — имя пользователя, который будет запускать VirtualBox.
Например:
id serg
Получим:
1 |
uid=1004(serg) gid=1004(serg) groups=1004(serg) |
Как мы видим, пользователь serg не состоит в группе VirtualBox
Добавим пользователя в группу:
usermod -a -G vboxusers serg
id serg
1 |
uid=1004(serg) gid=1004(serg) groups=1004(serg),986(vboxusers) |
Тепер войдем в систему от имени этого пользователя (можно использовать
su serg). Проверим наличие USB устройств с помощью команды:
VBoxManage list usbhost
Увидим приблизительно следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
UUID: 27ca179e-8933-4b69-b31e-45ee20dddb29 VendorId: 0x046e (046E) ProductId: 0x550e (550E) Revision: 1.0 (0100) Port: 2 USB version/speed: 1/Low Manufacturer: BTC Product: USB Multimedia Keyboard Address: sysfs:/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3//device:/dev/vboxusb/002/003 Current State: Busy UUID: 35c734b6-6bd8-4d25-9510-4ff21ff50b1c VendorId: 0x046d (046D) ProductId: 0xc012 (C012) Revision: 19.32 (1932) Port: 3 USB version/speed: 2/Low Manufacturer: Logitech Product: USB-PS/2 Optical Mouse Address: sysfs:/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4//device:/dev/vboxusb/002/004 Current State: Busy . . . |
Если после этих действий USB устройства все еще не работают, проверяем настройки самой виртуальной машины. Выбираем нашу машину, идем в «настройки/settings» — «USB» и включаем поддержку USB контроллера.
Далее жмём на кнопочку справа «флешка с плюсом» и добавляем из списка нужное нам устройство.
Тут имеется один нюанс. По умолчанию можно включить только поддержку USB 1.0. Но для, например, флешек или USB-дисков это слишком медленно. Да и зачем нам USB 1.0, если можно использовать 2.0 или даже 3.0. Для включения этих возможностей нам нужно установить Virtualbox Extension Pack. Это набор расширений, обеспечивающих поддержку USB 2.0/3.0, функции удаленного рабочего стола (RDP), загрузку по сети и других технологий. Скачать его можно на официальном сайте Virtualbox. Но для начала небходимо узнать точную версию Virtualbox.
Команда
VBoxManage -v выдаст нам примерно следующее:
1 |
5.1.10r112026 |
С версией определились, идем на сайт загрузок http://download.virtualbox.org/virtualbox/, выбираем нужную версию и скачиваем. Можно браузером, а можно и так:
wget http://download.virtualbox.org/virtualbox/5.1.10/Oracle_VM_VirtualBox_Extension_Pack-5.1.10-112026.vbox-extpack
Далее от имени root’а устанвливаем это расширение:
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.1.10-112026.vbox-extpack
Запускаем виртуальную машину снова, предварительно включив поддержку USB контроллера нужной нам версии и добавив нужные устройства. Это очень удобно, если вы работаете в гостевой Windows с программами требующими разнообразных USB ключей типа RuToken. Кстати, можно добавлять устройства на уже запущенной гостевой системе.
Возможно, что и после этих манипуляций USB устройства могут не заработать. В этом случае нужно проверить файл правил udev в вашей хост-системе от имени root’а с помощью команды:
cat /usr/lib/udev/rules.d/60-vboxdrv.rules
Вывод будет примерно таким:
1 2 3 4 5 6 7 |
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600" KERNEL=="vboxdrvu", NAME="vboxdrvu", OWNER="root", GROUP="root", MODE="0666" KERNEL=="vboxnetctl", NAME="vboxnetctl", OWNER="root", GROUP="root", MODE="0600" SUBSYSTEM=="usb_device", ACTION=="add", RUN+="VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers" SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers" SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="VBoxCreateUSBNode.sh --remove $major $minor" SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="VBoxCreateUSBNode.sh --remove $major $minor" |
Тут следует обратить внимание на вторую строчку, а точнее на параметр
MODE="0666". Возможно там будет
MODE="0664". Правильно именно
MODE="0666". И проследить, чтобы ничего не было закомментировано символами #. Если Вы обнаружили эти «неточности», то нужно скопировать этот файл
/usr/lib/udev/rules.d/60-vboxdrv.rules в директорию
/etc/udev/rules.d/, она имеет приоритет в конфигурации udev, а изменения в правилах в директории
/usr/lib/udev/rules.d/ возвращаются на дефолтные при обновлении системы. После копирования отредактировать файл
/etc/udev/rules.d/60-vboxdrv.rules в соответствии с вышеприведенной конфигурацией. После чего перезагрузить все правила udev командой
udevadm control --reload и, возможно, перезагрузить компьютер.
Надюсь эта статья поможет Вам подключить USB устройства к гостевой системе в виртуальной машине.
Дружище просто от души, мучался с этими ру разработками несколько часов, вообще не подумал что нужно юзера в группу прокинуть )))) Дай бог тебе здоровья