Проброс USB-устройств в Hyper-V
Если вам требуется пробросить какое-либо USB-устройство в виртуальную машину Hyper-V, это будет сложнее чем в других виртуальных машинах, есть ряд ограничений, но всё-таки возможно.
Подключение физического диска в Hyper-V
Этот способ идеален для прямого подключения USB дисков и флешек в виртуальной машине, но имеет одно ограничение: накопитель должен определяться как локальный диск на хосте.
Шаги для подключения такого накопителя в Hyper-V будут следующими:
- Зайдите в управление дисками: Win+R — diskmgmt.msc или через контекстное меню по правому клику на кнопке «Пуск».
- Нажмите правой кнопкой мыши по диску, который нужно подключить в Hyper-V и выберите пункт «Вне сети» для его отключения от хоста.
- Откройте диспетчер Hyper-V, нажмите правой кнопкой мыши по виртуальной машине, к которой нужно подключить накопитель и выберите пункт «Параметры».
- В разделе «Оборудование» выберите «SCSI-контролер» — «Жесткий диск» и нажмите кнопку «Добавить».
- Отметьте пункт «Физический жесткий диск» и укажите, какой диск (в списке будут отображаться только диски «Вне сети», на скриншоте таких нет, потому поле не активно) нужно подключить.
- Нажмите «Ок» и запустите виртуальную машину.
Готово, диск будет напрямую подключен к виртуальной машине. В дальнейшем, чтобы работать с ним на хосте потребуется снова сделать диск «В сети» в управлении дисками и, если в виртуальной машине он больше не потребуется — удалить его в параметрах ВМ.
Подключение дисков в расширенном сеансе
Следующий метод подойдет для доступа к данным на USB-накопителе в виртуальной машине, но не является прямым подключением: использовать инструменты, требующие прямого доступа, не получится (программы для восстановления данных и записи загрузочной флешки, утилиты для прошивки USB-устройств).
- Откройте «Диспетчер Hyper-V», нажмите правой кнопкой мыши по имени хоста в панели слева и выберите пункт «Параметры Hyper-V».
- Убедитесь, что в разделах «Сервер» — «Политика режима расширенного сеанса» и «Пользователь» — «Режим расширенного сеанса» разрешен режим расширенного сеанса.
- Запустите виртуальную машину. В окне «Подключить» нажмите «Показать параметры».
- Перейдите на вкладку «Локальные ресурсы» и нажмите кнопку «Дополнительно».
- В разделе «Диски» включите те накопители, доступ к которым нужно получить из виртуальной машины. Также можно установить отметку «Диски, которые будут подключены позже». Также можно использовать раздел «Другие поддерживаемые самонастраивающиеся устройства» для подключения других PnP-устройств.
- Нажмите «Ок» и подключитесь к виртуальной машине — выбранные диски будут доступны в Проводнике.
Учитывайте, что работать такое подключение будет только для виртуальных машин Windows.
Другие USB-устройства RemoteFX
Если вам требуется подключить не флешку или диск, а какое-то иное периферийное USB-устройство, можно попробовать включить перенаправление USB-устройств RemoteFX:
- На хосте откройте редактор локальной групповой политики (Win+R — gpedit.msc).
- Перейдите к разделу Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Клиент подключения к удаленному рабочему столу — Перенаправление USB-устройств RemoteFX. Включите политику «Разрешает RDP-перенаправление других поддерживаемых USB-устройств RemoteFX».
- В гостевой системе в виртуальной машине в редакторе локальной групповой политики перейдите в раздел Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Узел сеансов удаленных рабочих столов — Перенаправление устройств и ресурсов и установите для политики «Не разрешать перенаправление поддерживаемых самонастраиваемых устройств» значение «Отключено».
- Выполните перезагрузку компьютера.
- Используйте дополнительные настройки локальных ресурсов при подключении к виртуальной машине в режиме расширенного сеанса (как в предыдущем разделе инструкции): теперь среди доступных ресурсов появится новый раздел «Другие поддерживаемые USB-устройства RemoteFX», отметьте те, доступ к которым нужно получить в виртуальной машине.
- Нажмите «Ок» для подключения — устройство будет подключено напрямую в системе. В моем тесте подключение USB-камеры прошло без каких-либо проблем, и она исправно работала в виртуальной машине, а USB-микрофон не работал несмотря на то, что также был доступен в диспетчере устройств и не требует драйверов.
Насколько мне известно, это все доступные способы подключения USB-устройств в Hyper-V в текущей версии: как было изначально отмечено не очень удобно и есть ограничения, но для некоторых задач может быть достаточным.
А вдруг и это будет интересно:
- Лучшие бесплатные программы для Windows
- Как разрешить обычному пользователю запускать программу от имени Администратора без ввода пароля
- Как выйти из полноэкранного режима в Windows
- Как включить компактный вид панели быстрых настроек Windows 11
- Шрифты в интерфейсе Chrome стали более жирными и размытыми — как исправить?
- Msftconnecttest.com — что это и как исправить возможные ошибки
Проброс 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?
Проброс USB устройств в Windows Hyper-V с помощью usbipd-win
Одной из существенных проблем гипервизора HyperV является невозможность пробросить USB устройство в виртуальную машину. Есть решение этой проблемы — open source проект usbipd-win. С его помощью можно пробросить USB устройство, подключенное к машине под управлением Windows в любую другую по сети, либо в локальный Linux, работающий по WSL2 (инструкция от microsoft).
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе «Архитектура современных компьютерных сетей» вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
На базе проекта usbip существует много различных продуктов. Конкретно usbipd-win это только сервер под Windows. Я начал с него, потому что он максимально просто устанавливается и настраивается. Можно через winget поставить:
> winget install usbipd
Либо скачать msi пакет из репы. Далее смотрим список подключенных устройств и публикуем одно из них:
> usbipd list > usbipd bind --busid=4-3
Опубликованный с помощью этого сервера ключ можно подключить к Linux или Windows машине. Под Linux достаточно установить соответствующие пакеты с утилитой и модулем ядра. Для Debian вот эти:
# apt install usbip hwdata usbutils
После этого можно смотреть список опубликованных ключей и подключать один из них:
# usbip list --remote=10.20.1.56 # usbip attach -remote=10.20.1.56 --busid=4-3
Для подключения этих ключей в Windows, нужно установить Windows Agent. Взять его можно из другого репозитория usbip-win. Там есть инструкция по установке агента. Она немного замороченная, по сравнению с установкой сервера, но ничего особо сложного нет. Вопрос решаемый.
Точно так же можно публиковать USB устройства с Linux по сети на другие машины. Есть пакет сервера и под OpenWRT. Таким простым и бесплатным способом можно решить вопрос проброса USB ключей. Для HASP работает отлично. Заметку имеет смысл сохранить.
Проброс USB-диска в виртуальную машину Hyper-V
Виртуальная машина — очень мощный инструмент в умелых руках. По различным техническим причинам виртуальная машина не имеет прямого доступа к USB-диску по умолчанию. В этой статье разбираемся, как пробросить USB-диск в виртуальную машину Hyper-V. Реализация задумки будет несложной, можно сказать, в два клика. Никаких дополнительных программ, как иногда советуют диванные «гуру» не потребуется, используем свои личные руки и ничего более.
ВАЖНО. Сменные, то есть removable-устройства мы прокинуть в ВМ не сможем, хотя и есть некоторые ухищрения на этот счёт, но сейчас не об этом. Наш алгоритм работоспособен только для USB, которые показываются как fixed. Мы не сможем сделать снапшот для таких дисков.
Приступаем к манипуляциям
- Перво-наперво берём диск и подключаем его к хосту Hyper-V. Диск у нас появился сразу с назначенной буквой.
- Далее нам нужно зайти в управление дисками. Для этого открываем меню «Пуск» и в строке поиска вбиваем diskmgmt.msc, в результате должно быть единственное приложение, запускаем его.
- В открывшемся окне находим наш диск. На примере указан девайс на 30 Гб назначенным именем Disk. Вызываем контекстное меню, кликнув правой кнопкой мышки по нужному диску, выбираем пункт «Вне сети». Даже если у вас английский интерфейс, найти нужный пункт будет не сложно.
Выбираем пункт «Вне сети»
Добавляем новый диск в разделе SCSI Controller
ВАЖНО. Вовсе не обязательно отключать ВМ перед добавлением жёсткого диска. Для этого существует специальная технология горячего добавления и горячего удаления.
- Подключаемся к ВМ через rdp или просто открываем консоль. Заходим в управление дисками. Если новый на месте, значит мы всё делаем правильно. Проверяем в сети ли он. Если нет, то исправляем это, как и раньше, вызовом контекстного меню. Точек монтирования и букв наши разделы не имеют, надо это дело исправлять. Кликаем на любой из разделов правой кнопкой и выбираем пункт «Изменить букву диска или путь к нему…». Выбираем любую свободную.
Проброс USB в виртуальную машину Hyper-V окончен, теперь мы можем его использовать для своих целей.
ВАЖНО. Обязательно проверяем, что никакие приложения не используют наше устройство, перед тем как физически его извлечь. Иначе высока вероятность потерять важные данные и документы.
Безопасное извлечение
Необходимо уметь извлекать USB без неожиданных последствий, использовать мы будем тот же менеджер. Привычным движением заходим в SCSI Controller, выбираем нужный сектор и нажимаем Remove. Подтверждаем действия соответствующей кнопкой. Физически извлекаем наше устройство. На этом всё.
Подсказка. В версии Hyper-V Windows Server 2012 R2\8.1 можно использовать ESM технологию для проброса почти любых USB устройств в виртуальную машину. Способ подойдёт даже для флешек и смарт-карт.
Заключение
Одно выражение «Виртуальная машина» бросает неопытного пользователя в панику, но бояться не нужно. Если чётко следовать инструкции и быть внимательным, то никаких серьёзных проблем возникнуть у вас просто не может. Проброс USB в Hyper-V — дело не сложное, как может показаться на первый взгляд. Не отклоняйтесь от алгоритма и не изменяйте лишних настроек, тогда вы гарантированно решите проблему, иначе стабильная работа виртуальной машины не гарантируется.
Если у вас появились вопросы — задайте их в комментариях.