Рассмотрим вариант подключения в виртуальную машину USB устройства. Вариаций этих устройств множество и все их можно без проблем подключить к требуемой виртуальной машине. В системе виртуализации Proxmox делается это быстро и просто.
Содержание:
Для 5 версии Proxmox
С выходом новой версии проброс USB устройств сильно упростился. Нам достаточно выбрать виртуальную машину, добавить устройство указав вариант его проброса по порту или id.
Для 4 версии Proxmox
С инструкцией по подключению USB устройств вы можете ознакомится на официальном сайте 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». Мне этот вариант показался не совсем логичным, так как требует указывать номер виртуальной машины, но при разных вариантах ввода номера машины показывает одинаковую информацию. Делая по рассмотренному способу, у меня всё работает. Главное не способы а результат!
Очень просто. Hyper-V это не умеет делать до сих пор 🙁
Наверно у него есть другие преимущества которых нет в Proxmox.