Проброс USB устройств в виртуальную машину Hyper-V
15.01.2021
itpro
Hyper-V, Windows 10, Windows Server 2016, Windows Server 2019, Виртуализация
комментариев 14
Одним из существенных недостатков Hyper-Vперед другими гипервизорами (например, ESXi или Proxmox) являются отсутствие полноценной возможности пробрасывать USB устройства с хоста в виртуальные машины. Начиная с версии Hyper-V 2012 R2 появился ряд изменений, касающихся возможностей USB Passthrouth, однако этот функционал все еще уступает возможностям конкурентов. В этой статье мы расскажем об особенностях проброса USB устройств в Hyper-V.
Особенности USB Passthrough в Hyper-V
Под термином USB passthrough понимается возможность проброса USB устройства из хостового гипервизора (или по сети с другого сервера/устройства) в виртуальную машину. С помощью USB passthrough вы можете прокинуть внутрь ВМ токен, USB ключ, модем или любое другое оборудование, подключенное через USB порт.
Плохая новость в том, что в Hyper-V нет нормальной поддержки проброса USB устройств, вы не сможете пробросить любое USB устройство с физического хоста в виртуальную машину (в VMWare с этим на порядок лучше – см. статью USB passthrough в VMWare ESXi). Есть несколько встроенных возможностей использования USB устройства в Hyper-V, но у всех них есть существенные ограничения. На данный момент можно использовать следующие технологии для проброса USB устройства в Hyper-V.
- Проброс USB дисков с хоста Hyper-V;
- Расширенные возможности консоли Hyper-V — Enhanced Session Mode;
- Проброс USB устройства через RDP сессию;
- Использование программного/аппаратного средства для проброса USB по сети (USB over IP).
Последний сценарий предполагает использование сторонних решений для реализации USB over IP. Это может быть сетевой USB хаб, программное решение по пробросу USB устройства через TCP/IP сеть с другого сервера. Большинство популярных коммерческих решений — платные (AnywhereUSB, DigiUSBAW). Из бесплатных можно отметить VirtualHere USB (бесплатна для одного ключа и одного сервера) и довольно старый opensource проект usbip.sourceforge.net (серверная часть реализуется на Linux, на Windows ставится клиент).
Проброс USB диска в виртуальную машину Hyper-V
Вы можете довольно просто пробросить подключенный к хосту USB диск напрямую внутрь любой запущенной виртуальной машины Hyper-V. Рассмотрим, как предоставить виртуальной машине Hyper-V прямой доступ к USB диску.
Примечание.
- Данная инструкция работает только для USB дисков, которые в системе видятся как fixed, т.е. флешки, смарт-карты и прочие removable-устройства прокинуть внутрь виртуальной машины не получится ( хотя есть небольшой трюк, позволяющий заставить Windows видеть сменное устройство как жесткий диск);
- Для таких дисков невозможно создать снапшот/чекпоинт.
- Подключите внешний USB диск к хосту Hyper-V (это может быть как любой хост с Windows и установленной ролью Hyper-V, так и Free Hyper-V Server). Диск появится в системе и ему будет назначена буква диска (если буква диска не назначилась, см. статью);
- Откройте консоль управления дисками Disk Management (diskmgmt.msc) на хосте Hyper-V. Щелкните правой кнопкой мыши по диску (левая колонка, в нашем примере USB диск размером 20 Гб имеет идентификатор Disk 1) и выберите Offline.
Если у вас используется Windows Server Core или Hyper-V Server, в которых отсутствуют некоторых графические оснастки, вы можете управлять локальными дисками с помощью PowerShell модуля управления дисками. Следующие команды могут вывести список физических дисков на хосте и перевести указанный диск в режим offline: Get-Disk
Get-Disk -Number 1 |Set-Disk -IsOffline:$true
Примечание. Не нужно выключить виртуальную машину при добавлении SCSI жесткого диска. Для SCSI устройства поддерживается горячее добавление и удаление дисков (hot-add и hot-remove).
Все! Вы напрямую пробросили внешний USB диск внутрь виртуальной машины Hyper-V и можете его использовать.
Важно. Для предотвращения потери данных, прежде чем физически извлечь жесткий диск из USB порта хоста Hyper-V, убедитесь, что никакие приложения внутри виртуальной машине к этому диску не обращаются.
Для безопасного извлечения USB диск можно открыть консоль Hyper-V Manager и перейти в окно настроек виртуальной машины. В разделе SCSI Controller выберите жесткий диск, который нужно удалить и нажмите Remove. Сохраните изменения. После этого жесткий диск можно физически извлечь из USB порта хоста Hyper-V.
Проброс USB устройств через Enhanced Session Mode в Hyper-V
В версии Hyper-V, представленной в Windows Server 2012 R2/ 8.1 практически любые USB устройства можно прокинуть внутрь виртуальной машины с помощью технологии Enhanced Session Mode (ESM). Для подключения используется утилита Hyper-V Manager vmconnect.exe . Она позволяет подключится к консоли виртуальной машины и выбрать USB устройства, которые нужно пробросить.
Сначала нужно включить Enhanced Session Mode в настройках сервера Hyper-V. Это можно сделать с помощью PowerShell:
Set-VMHost -EnableEnhancedSessionMode $true
Или в меню Hyper-V Settings -> Enhanced Session Mode.
Перезапустите службу Hyper-V Virtual Machine Management:
Get-Service vmms | Restart-Service
В разделе Integration Services настроек ВМ нужно включить опцию Guest Services.
Для проброса USB устройства через Enhanced Session Mode нужно запустить консоль Hyper-V, выбрать ВМ и нажать Connect. Либо вы можете запустить утилиту vmconnect.exe (Virtual Machine Connection), указать Hyper-V сервер и имя ВМ (утилита поддерживает некоторые параметры командной строки, поэтому вы можете отдавать пользователям настроенный bat файл).
Ели ВМ поддерживает Enhanced Session Mode, появится окно, похожее на свойства RDP подключения. Нажмите Show Option -> Local Resources -> Local device and resources -> More.
Выберите USB устройства на вашем компьютере, которое нужно пробросить в ВМ. Если устройства, которое вам нужно, сейчас не подключено, выберите опции Other supported Plug and Play (PnP) devices и Devices that I plug in later.
Теперь все подключённые к вашему компьютеру USB устройства будут автоматически доступны в консольной сессии виртуальной машины Hyper-V.
Основные возможности и ограничения Enhanced Session Mode
- В качестве гостевых ОС поддерживается только Windows (начиная с Windows 8.1/Windows Server 2012 R2);
- Вам не нужен прямой доступ к ВМ. Все подключения выполняются через Hyper-V хост (вы подключаетесь к нему через сеть по порту TCP 2179), а подключение к ВМ выполняется через шину VMBus;
- На компьютере пользователя должен быть установлен Hyper-V Manager
Данный метод похож на возможность проброса USB устройств через RDP сессию. Мы не будет рассматривать его подробнее.
Методы проброса USB устройства через сеть (USB over IP или в RDP сессии) позволяют сохранить доступ к USB ключу при миграции виртуальной машины на другой хост (Hyper-V Live Migration /vMotion).
Предыдущая статья Следующая статья
Читайте далее в разделе Hyper-V Windows 10 Windows Server 2016 Windows Server 2019 Виртуализация
Как увеличить/уменьшить размер виртуального диска Hyper-V?
https://winitpro.ru/index.php/2014/06/26/kak-napryamuyu-probrosit-usb-disk-v-virtualnuyu-mashinu-hyper-v/