当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] USB 设备直通(重定向)至 Hyper-V 虚拟机

作者:精品下载站 日期:2024-12-14 22:56:28 浏览:16 分类:玩电脑

USB 设备直通(重定向)至 Hyper-V 虚拟机


与其他虚拟机管理程序(例如 VMWare ESXi 或 Proxmox)相比,Hyper-V 的显着缺点之一是缺乏将 USB 设备从主机重定向到虚拟机的功能。自Hyper-V 2012 R2版本以来,USB Passthrough选项发生了许多变化,但该功能仍然不如竞争对手。在本文中,我们将讨论 Hyper-V 中 USB 重定向的细节。

Hyper-V USB 直通概述

USB 直通是指将 USB 设备从主机管理程序(或通过网络从另一个服务器/设备)重定向到虚拟机的能力。使用 USB 直通,您可以将 USB 记忆棒、令牌、USB 加密狗、调制解调器或连接到物理主机 USB 端口的任何其他设备重定向到虚拟机。

坏消息是 Hyper-V 不支持全功能 USB 直通。您无法将任意 USB 设备从物理主机重定向到虚拟机(VMWare 在这方面做得更好 - 请参阅文章 VMWare ESXi 中的 USB 直通)。有多个内置选项可用于在 Hyper-V VM 中使用外部 USB 设备,但它们都有很大的限制。目前,您可以通过以下方式将USB设备重定向到Hyper-V虚拟机。

  • 从 Hyper-V 主机重定向 USB 驱动器;

  • Hyper-V 控制台上的增强会话模式;

  • 通过 RDP 进行 USB 重定向;

  • 使用软件/硬件解决方案通过网络进行 USB 重定向(USB over IP)。

最后一个场景涉及使用第三方解决方案来实现 USB over IP。它可以是网络 USB 集线器,是一种通过 TCP/IP 网络从另一台服务器重定向 USB 设备的软件解决方案。大多数流行的商业解决方案都是付费的(AnywhereUSB、DigiUSB)。免费的包括 VirtualHere USB(对于一个 USB 加密狗和一台目标服务器免费)和一个相当古老的开源项目

usbip.sourceforge.net

(服务器部分在Linux上实现,客户端可以安装在Windows上)。

从 Hyper-V 虚拟机访问 USB 硬盘驱动器

您可以相当轻松地直接在任何正在运行的 Hyper-V 虚拟机内重定向主机连接的 USB 驱动器。让我们看看如何让 Hyper-V 虚拟机直接访问主机的 USB 驱动器。

注意

  1. 本指南仅适用于系统检测为固定的 USB 驱动器。你不能通过这种方式将 USB 闪存驱动器、智能卡和其他可移动设备重定向到 VM(尽管有一个小技巧可以让 Windows 将可移动设备视为固定硬盘驱动器)。

  2. 对于这些驱动器,您无法创建快照/检查点。

  1. 将外部 USB 驱动器连接到 Hyper-V 主机(这可以是安装了 Windows 和 Hyper-V 角色的任何主机,或者免费的 Microsoft Hyper-V 服务器)。该驱动器将出现在系统中,并为其分配一个驱动器号(如果尚未分配驱动器号,请查看文章);

  2. 打开磁盘管理

    diskmgmt.msc

    )控制台,右键单击该驱动器(在我们的示例中,20 GB USB 驱动器的 ID 为“磁盘 1”)并选择脱机

    [玩转系统] USB 设备直通(重定向)至 Hyper-V 虚拟机

    如果您使用的是 Windows Server Core 或 Hyper-V Server(它们没有某些图形 mmc 管理单元),您可以使用磁盘管理 PowerShell 模块管理本地磁盘。以下命令可以列出主机上的物理磁盘并使指定磁盘脱机:

    Get-Disk
    Get-Disk -Number 1 |Set-Disk -IsOffline:$true 

    [玩转系统] USB 设备直通(重定向)至 Hyper-V 虚拟机

  3. 运行 Hyper-V 管理器并打开需要连接 USB 驱动器的虚拟机的属性。在SCSI控制器部分中,添加一个新磁盘,表明它是物理磁盘(物理硬盘)。在下拉菜单中选择您的 USB 驱动器(它看起来像这样:Disk 1 20.00 Gb Bus 0 Lun 0 Target 1)。

    注意。您无需关闭虚拟机即可添加 SCSI 硬盘驱动器。对于 SCSI 设备,支持热添加和热删除驱动器。

    [玩转系统] USB 设备直通(重定向)至 Hyper-V 虚拟机

  4. 现在我们将展示如何从运行 Windows 的虚拟机的来宾操作系统访问 Hyper-V 主机上的 USB 磁盘。打开虚拟机控制台或通过 RDP 连接到它。登录来宾操作系统。运行磁盘管理器。操作系统应该会看到新驱动器。如果离线,请右键单击它并选择在线。此时,USB 磁盘上的分区尚未分配驱动器号或挂载点。要解决此问题,请右键单击磁盘上的分区,然后从上下文菜单中选择“更改驱动器号和路径”。为分区分配任何可用驱动器号或指定安装点。

    [玩转系统] USB 设备直通(重定向)至 Hyper-V 虚拟机

就这样!您已将外部 USB 介质直接连接到 Hyper-V 虚拟机中,现在可以使用它了。

重要。为了防止数据丢失,在从 USB 端口物理移除硬盘之前,请确保虚拟机中没有应用程序访问该磁盘。

要安全地删除 USB 驱动器,您可以打开 Hyper-V 管理器控制台并转到虚拟机设置窗口。在SCSI 控制器部分中,选择要删除的硬盘驱动器,然后单击删除。保存您的更改。之后,您可以从 Hyper-V 主机的 USB 端口物理移除硬盘驱动器。

使用 Hyper-V 增强会话模式将 USB 设备重定向到虚拟机

在 Windows Server 2012 R2/8.1 中引入的 Hyper-V 版本中,可以使用增强会话模式 (ESM) 将任何 USB 设备从客户端计算机转发到虚拟机。 Hyper-V 管理器工具 vmconnect.exe 用于连接。它允许您连接到虚拟机控制台并选择要重定向的 USB 设备。

首先,您需要在 Hyper-V 服务器设置中启用增强会话模式。这可以使用 PowerShell 来完成:

Set-VMHost -EnableEnhancedSessionMode $true

或者在 Hyper-V 设置 -> 增强会话模式中。

[玩转系统] USB 设备直通(重定向)至 Hyper-V 虚拟机

重新启动 Hyper-V 虚拟机管理服务:

Get-Service vmms | Restart-Service

在虚拟机设置的集成服务部分中,您必须启用访客服务选项。

为了通过增强会话模式重定向 USB 设备,您需要打开 Hyper-V 控制台,选择虚拟机,然后单击连接按钮。或者你可以运行

vmconnect.exe

工具(虚拟机连接),指定 Hyper-V 服务器和虚拟机名称。 vmconnect 工具支持一些命令行选项,因此您可以为用户提供包含所需选项的自定义bat 文件。

[玩转系统] USB 设备直通(重定向)至 Hyper-V 虚拟机

如果虚拟机支持增强会话模式,则会出现类似于 RDP 连接属性的窗口。点击显示选项 -> 本地资源 -> 本地设备和资源 -> 更多

[玩转系统] USB 设备直通(重定向)至 Hyper-V 虚拟机

选择计算机上要重定向到虚拟机的 USB 设备。如果您想要的设备当前未连接,请选择“其他支持的即插即用 (PnP) 设备”和“我稍后插入的设备选项”。

[玩转系统] USB 设备直通(重定向)至 Hyper-V 虚拟机

现在,连接到计算机的所有 USB 设备将在 Hyper-V 虚拟机的控制台会话中自动可用。

Hyper-V 增强会话模式的主要功能和限制:

  • 仅支持 Windows 作为来宾操作系统(从 Windows 8.1/Windows Server 2012 R2 开始);

  • 您不需要直接通过网络访问虚拟机。所有连接均通过 Hyper-V 主机进行(您通过 TCP 端口 2179 通过网络连接到该主机),并且 Hyper-V 通过 VMBus 连接到 VM;

  • Hyper-V 管理器必须安装在客户端计算机上。

此方法类似于通过 RDP 会话从本地主机重定向 USB 设备。我们不会更详细地考虑这一点。

[玩转系统] USB 设备直通(重定向)至 Hyper-V 虚拟机

如果您通过网络(通过 IP 或 RDP 会话的 USB)重定向 USB 设备,即使将虚拟机迁移到另一台主机(Hyper-V 实时迁移/vMotion)后,您仍然可以访问 USB 密钥。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯