Рассмотрим вариант подключения в виртуальную машину USB устройства. Вариаций этих устройств множество и все их можно без проблем подключить к требуемой виртуальной машине. В системе виртуализации Proxmox делается это быстро и просто.

Для 5 версии Proxmox

С выходом новой версии проброс USB устройств сильно упростился. Нам достаточно выбрать виртуальную машину, добавить устройство указав вариант его проброса по порту или id.

Proxmox5_usb_sevo44 Proxmox5_usb_sevo44_2 Proxmox5_usb_sevo44_1

Для 4 версии Proxmox

С инструкцией по подключению USB устройств вы можете ознакомится на официальном сайте Proxmox.
Инструкция разработчика Proxmox

Определение устройства

Подключим в систему Proxmox необходимое устройство и в консоли выведем информацию о подключенияx.

lsusb
= вывод команды =
Bus 001 Device 005: ID 0781:5572 SanDisk Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 0665:5161 Cypress Semiconductor USB to Serial
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Видим подключенную флэшку.

Выведем информации о том на каких портах висят устройства.

lsusb -t
= вывод команды =
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
 |__ Port 1: Dev 3, If 0, Class=Human Interface Device, Driver=usbfs, 1.5M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
 |__ Port 3: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage, 480M

Видим нашу флэшку которая села на Bus 01 Dev 5 на Port 3.

Варианты проброса устройств

Существуют два вариант передачи USB-устройства в виртуальную (гостевую) систему:

  • передать определенное устройство — при перемещении usb-устройства в другой порт не надо ничего перенастраивать. Вариант хорош, когда надо пробросить одно устройство и второго подобного не будет,
  • передать порт — вариант передает порт на котором работает устройство.

Оба варианта имеют свои нюансы и решать каким пользоваться только вам. Мне больше нравится вариант с пробросим порта, так как он не вызывает непонятных проблем после перезагрузки.

Проброс осуществляются по номеру виртуальной машины. Папка с файлами для редактирования находится по адресу /etc/pve/qemu-server/ в ней вы увидите все ваши виртуальные машины.

Проброс USB устройства

Откроем необходимый файл и добавим нужные параметры.

mcedit /etc/pve/qemu-server/104.conf
= вывод команды с необходимыми добавлениями =
balloon: 500
bootdisk: sata0
cores: 2
ide2: local:iso/CentOS-7-x86_64-DVD-1511.iso,media=cdrom
memory: 1500
name: lamp.sevo44.ad-centos7
net0: e1000=7A:5A:34:67:6C:52,bridge=vmbr0
numa: 0
onboot: 1
ostype: l26
sata0: images:104/vm-104-disk-1.qcow2,size=400G
scsihw: virtio-scsi-pci
smbios1: uuid=4374a7e1-1fc7-4eaf-9567-aa5f9cb19b33
sockets: 2
# Проброс устройства USB
# где 0781:5572 - это device ID
usb0: host=0781:5572

Проброс USB порта

Для проброса по порту надо указать другую строчку в необходимом файле.

mcedit /etc/pve/qemu-server/104.conf
= вывод команды с необходимыми добавлениями =
balloon: 500
bootdisk: sata0
cores: 2
ide2: local:iso/CentOS-7-x86_64-DVD-1511.iso,media=cdrom
memory: 1500
name: lamp.sevo44.ad-centos7
net0: e1000=7A:5A:34:67:6C:52,bridge=vmbr0
numa: 0
onboot: 1
ostype: l26
sata0: images:104/vm-104-disk-1.qcow2,size=400G
scsihw: virtio-scsi-pci
smbios1: uuid=4374a7e1-1fc7-4eaf-9567-aa5f9cb19b33
sockets: 2
# Проброс USB порта
# где 1-3 это шина Bus 01 и номер порта Port 3
usb0: 1-3

После перезагрузки устройства будут проброшены.

Результат

В новой 5-ой версии все упрощается но знать механизм как это работает изнутри всегда хорошо. Можно определять подключенные USB устройства командой «qm monitor НОМЕР_ВИРТУАЛЬНОЙ_МАШИНЫ» и после подключения вводить команду «info usbhost» или «info usb». Мне этот вариант показался не совсем логичным, так как требует указывать номер виртуальной машины, но при разных вариантах ввода номера машины показывает одинаковую информацию. Делая по рассмотренному способу, у меня всё работает. Главное не способы а результат!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Хотите сказать денежное спасибо? Подарите денежку!

  • Владимир

    Очень просто. Hyper-V это не умеет делать до сих пор 🙁

    • http://vk.com/id63130413 Алексей Долотов

      Наверно у него есть другие преимущества которых нет в Proxmox.