☰
ESXi识别移动硬盘的完整指南:虚拟机USB直通与存储挂载实战
2026/10/2 22:14:19 网站建设 项目流程

说实话,我第一次在 VMware ESXi 上插移动硬盘时,也被整得挺懵的。明明同一块移动硬盘插到平时用的电脑上,Windows、macOS 都能正常识别,换成 ESXi 主机就怎么都找不到;千辛万苦在 vSphere 客户端里看到了设备,添加到虚拟机又各种报错。后来把 ESXi 的存储、USB 直通、客户端重定向这几层逻辑彻底理了一遍,才搞明白里面门道不少。这篇就把我从硬件预检、命令行排查到虚拟机配置的完整过程写出来,希望能帮你少走几趟弯路。

如果你正在折腾的重要原因,是想把移动硬盘里的资料拷进虚拟机,或者想把一块移动硬盘挂给某个 ESXi 虚拟机当“数据盘”,这篇文章基本能覆盖你需要的所有排查路径。

1. 先弄明白:ESXi 里的“挂载”怎么理解

1.1 想直接让 ESXi 识别移动硬盘?先把需求分个类

很多朋友上来就问“为什么我的 ESXi 无法识别移动硬盘”,但实际诉求往往不一样。我遇到过的大概有三类:

  • 第一类:想把移动硬盘里的文件拷进虚拟机系统里。这是最常见的,比如从旧服务器导出虚拟机文件,或者需要读取一个存放在移动硬盘上的镜像、备份包。这类需求的核心是“把 USB 移动硬盘作为外设,让虚拟机看到它、用上它”。
  • 第二类:想在虚拟机里长期挂一块盘,专门放数据。比如虚拟机是 Windows Server 或 Linux,想给它加一块本地磁盘存储数据。这类需求其实不一定要走 USB,但既然手里只有移动硬盘,很多人也会图省事直接插 USB。
  • 第三类:想让 ESXi 主机本身把移动硬盘当成一块存储,用来放虚拟机。这类需求属于“把 USB 盘变成 ESXi 的 datastore”,说实话有点危险,后面我会专门讲清楚为什么不建议这么做。

这三类需求,对应到 ESXi 上的技术实现完全不一样。如果你把“第一类需求”当成“第三类需求”去解决,那你多半会陷入死胡同:在 vSphere 客户端里翻遍“存储器”页面也找不到 USB 盘,因为 ESXi 根本不会主动把 USB 移动硬盘当作 datastore 来挂载。反过来,如果你用“第一类需求”的思路去解决“第三类需求”,也会发现自己虽然能把盘直通给虚拟机,但 ESXi 主机的 datastore 里依然看不到它。

搞清楚“挂载”这个词在不同语境下的含义,是排查的第一步。

1.2 为什么“挂载”这个词容易让你走弯路

ESXi 虽然本质上是 Linux 内核改造来的,但它的存储管理方式和桌面 Linux 差得很远。在普通 Linux 里,你插入一个 U 盘,系统会自动识别出一个/dev/sdb,你可以手动mount /dev/sdb1 /mnt,然后在文件系统层面使用它。但 ESXi 是虚拟机监控器,它的设计目标是运行虚拟机,所以它对存储设备的处理逻辑是“把设备纳入存储层管理”,而不是“把设备挂到某个目录”。

在 ESXi 里,当你插入一个 USB 移动硬盘,主机会不会把它当成可用的存储设备,取决于它是否能在底层存储栈里被识别出来。但即便识别出来了,默认情况下它也不会自动变成一个 datastore,更不会自动出现在虚拟机的文件系统里。它只对 ESXi 主机的存储子系统可见。如果你想让虚拟机里的系统看到这块盘,还需要额外的“直通”或“重定向”步骤。

很多人卡住,就是卡在“主机能看到”和“虚拟机能看到”这两个环节之间的认知断层上。

2. 移动硬盘“看不到”的常见原因排查表

2.1 硬件层面的隐形杀手

先别急着怀疑 ESXi 配置,很多问题其实出在硬件层。根据我自己给各方配置 ESXi 机器的经验,USB 移动硬盘无法识别,最常见的原因其实是下面这几个:

  • 供电不足。2.5 寸移动硬盘走 USB 口供电,但有些服务器前置 USB 口或机箱 USB 面板的供电电流并不稳定。尤其是当你把移动硬盘插在服务器前面板,而不是后面板的直连 USB 口时,经常会出现设备反复枚举但始终进不了稳定状态的情况。如果你用的是 3.5 寸移动硬盘,那就更离谱了,必须有外接电源,否则只有指示灯亮、盘体根本不转。
  • 线材问题。很多移动硬盘附赠的数据线又短又硬,换一根做工好一点、屏蔽层完整的 USB 线,往往能解决莫名其妙的“接口识别失败”问题。这一招排查成本极低,但非常有效。
  • 硬盘盒桥接芯片不听话。移动硬盘盒里通常有桥接芯片(比如 JMicron、ASMedia、VIA 的芯片),不同的桥接固件对 USB 大容量存储协议的支持不一样。个别廉价硬盘盒的桥接芯片在 Windows 下一切正常,但在 ESXi 的 USB 直通场景里会表现为“设备列表中能看到,但直通过去后虚拟机里总是掉盘或无法初始化”。如果还有条件,换一个硬盘盒试试,能帮你快速定位是不是桥接芯片的锅。

2.2 主机配置和 USB 控制器的门道

ESXi 对 USB 控制器的支持也有讲究。如果你插的移动硬盘连接在一块不被 ESXi 驱动支持的 USB 扩展卡上,那问题就大了。市面上便宜的 PCIe USB 3.0 扩展卡,用的芯片可能是各种杂牌方案,ESXi 没有对应的驱动,根本看不到控制器下面的任何设备。

我通常会让用户先确认一个关键细节:你的移动硬盘是插在主板板载 USB 口上,还是插在 PCIe USB 扩展卡上?如果用扩展卡,建议优先插板载 USB 口测试。服务器板载 USB 控制器一般是 Intel 或 AMD 的原生方案,ESXi 兼容度最高。

另外,一些品牌服务器的 BIOS 里可能有 USB 端口策略相关设置。比如某些机型允许把 USB 口设置为“仅 BIOS 使用”或“仅在预引导环境使用”,这种情况下 ESXi 是看不到设备的。进 BIOS 里把 USB 端口重新设置为“OS/VM 可用”,能解决一批很诡异的“系统里死活找不到 USB 设备”的问题。

2.3 分清物理主机 USB 和客户端 USB 两种直通入口

还有一类很常见的误解,需要专门讲一讲。很多人在自己电脑上装了 vSphere Client,然后在虚拟机里想“连接 USB 设备”,却发现列表里只有电脑上的几个 USB 设备,根本没有 ESXi 服务器上插的移动硬盘。原因很简单:USB 设备分成“连接到 ESXi 主机物理端口上的”和“连接到你自己电脑上的”两种。

连接到 ESXi 主机的 USB 设备,要从虚拟机“编辑设置”里的“添加 USB 设备”入口去选;而在虚拟机控制台窗口里看到的“连接 USB 设备”菜单,通常是把你当前用的这台电脑上的 USB 设备重定向到虚拟机。如果你把移动硬盘插在自己的笔记本电脑USB口上,却在 ESXi 主机虚拟机的硬件列表里找这个硬盘,自然找不到。

很多人之所以“无法识别”,就是没有意识到这两个入口的差异。后面实操部分我会分别演示两种方式的操作流程。

3. 一步步把移动硬盘挂进虚拟机(实操篇)

3.1 第一步:硬件预检,三分钟排除低级问题

每次折腾 ESXi 上的 USB 移动硬盘,我都会先花三分钟做一轮排除低级问题的预检。顺序是这样的:

  1. 把移动硬盘插到一台普通电脑上,确认盘本身没坏、分区还在、数据能正常读。
  2. 换一根确认没问题的 USB 数据线,再插回 ESXi 主机,最好是插在主机后部的板载 USB 口,而不是前置面板。
  3. 在 ESXi 主机的 BIOS/固件设置里检查 USB 选项,看看有没有打开 USB Legacy、USB UEFI 支持一类的开关。如果你不确定,可以全部恢复默认设置再试一次。这一步主要是排除 BIOS 把 USB 口“留给自己”的情况。
  4. 如果你是远程管理服务器,建议先在服务器本地控制台(比如 Dell iDRAC、HP iLO 的远程控制台)看一眼,确认移动硬盘在物理硬件层面已经被主机识别,指示灯正常、没有反复闪烁。

这套预检流程走下来,能帮你过滤掉大概一半的“玄学故障”。

3.2 第二步:在 ESXi Shell 里确认设备在哪一层

如果你的硬件没问题,那就要进入 ESXi 主机内部看看 USB 设备到底有没有被底层存储栈识别到。在 vSphere Web Client 里,找到主机,操作界面里启用 SSH,或者直接到“操作”菜单里打开“服务”里的 ESXi Shell / SSH,然后用工具登录主机命令行。

第一条命令,看 USB 设备清单:

esxcli hardware usb list

这条命令在多数 ESXi 6.x 和 7.x/8.0 版本里都能用,输出类似下面这样:

USB Devices Name: Lenovo Mobile Disk Vendor: Lenovo ID: 0x17ef Rev: 0x0100 Speed: Super ...

如果这条命令报错或者不存在,可以试试老命令:

/sbin/esxcfg-usb -l

它能列出 USB 设备以及设备状态。看到自己的移动硬盘这里出现,说明 USB 层识别正常,问题可能在存储层。如果这里都没有设备,那重点回去查硬件和主板 USB 控制器兼容性。

第二步,看存储层有没有把它识别成磁盘:

esxcli storage core device list

输出里可能会有类似mpx.vmhba33:C0:T0:L0的设备名,注意看Transport字段,如果是USB,说明 ESXi 存储层已经把它当作一个磁盘了。还可以在/vmfs/devices/disks目录下看看:

ls -l /vmfs/devices/disks/

如果你看到了类似mpx.vmhba33:C0:T0:L0或naa.xxx的设备文件,说明这块移动硬盘在底层已经被识别为块设备。

很多情况下,到这里你已经成功了一大半。因为 ESXi 底层能看到设备,就意味着你完全有机会把它直通给虚拟机。

3.3 第三步:给虚拟机添加 USB 控制器和设备

底层确认设备能识别之后,下一步就是在虚拟机级别把它“接进去”。进入 vSphere Web Client,找到目标虚拟机,确认虚拟机处于开机或关机状态(ESXi 8 支持热添加部分 USB 设备,但稳妥起见,最好关机操作或至少保证虚拟机已安装完整版 VMware Tools)。

右键虚拟机,进入“编辑设置”,在左侧选中“添加其他设备”里的 USB 控制器。

这里有两个选择:

  • USB 2.0(EHCI)控制器:兼容性好,老系统也认;
  • USB 3.1(xHCI)控制器:支持高速度大文件传输,但略有兼容性风险。

我的习惯是:如果是 Windows 10/11 或较新的 Linux 内核虚拟机,优先选 USB 3.1;如果是老旧的 Windows Server 2008、Linux 老内核,老老实实用 USB 2.0。选错型号可能导致虚拟机里识别出设备但报“代码 10”或无法正常工作。

添加完控制器之后,再次点击“添加其他设备”,这次选择“USB 设备”。下拉列表里就会出现 ESXi 主机上能直通给虚拟机的 USB 设备列表。选中你的移动硬盘,确认新 USB 设备已连接。如果虚拟机是开机状态,部分版本会要求你重新启动虚拟机才能生效。

点确定之后,进入虚拟机系统的“设备管理器”(Windows)或执行lsusb(Linux),你应该能看到这块 USB 设备。如果是 Windows 虚拟机,打开“此电脑”一般就能看到移动硬盘的分区了。到这一步,第一类需求就解决了:移动硬盘能被虚拟机系统正常读写。

提示:在添加 USB 设备之前,请确保该移动硬盘没有被 ESXi 主机用于其他用途。比如有的 U 盘被用作 ESXi 启动盘,它就不会出现在可直通列表里。ESXi 自身占用的 USB 设备是不会允许你直通给虚拟机的。

3.4 第四步:客户端 USB 重定向,解决“插在自己电脑上”的情况

很多人在家里或办公室实验室环境里,ESXi 主机装在自己房间里,但你在客厅用自己笔记本电脑连的 vSphere Client。这时候你可能根本不想跑到服务器旁边插移动硬盘,而是希望直接把笔记本上的移动硬盘“塞”进虚拟机。

这就是前面提到的“客户端 USB 重定向”。

操作方式:在 vSphere Web Client 中打开目标虚拟机的控制台(“启动远程控制台”或直接在 Web 控制台里)。在控制台界面的工具栏里找 USB 相关的按钮,一般是绿色 USB 图标或者“连接 USB 设备”菜单。点击后,选择你电脑上的移动硬盘。

此时,ESXi 主机自己的 USB 口上不需要插任何设备,移动硬盘完全通过 vSphere 客户端通道,重定向到虚拟机内部。

这招特别适合临时拷文件,或者电脑上只有一个 USB 口也能临时用起来。但注意两点:

  • 客户端 USB 重定向对网络要求比较高,如果你的笔记本电脑和 ESXi 主机隔着很远的网络链路,传输速度会明显受限。毕竟数据要经过“移动硬盘 → 笔记本 → 网络 → ESXi → 虚拟机”这条路。
  • 有些精简版 vSphere Client 或旧版本可能不支持 USB 重定向功能。如果工具栏里找不到相关按钮,建议安装 VMware Remote Console 最新版,然后用它打开虚拟机控制台,那里通常会有更完整的 USB 重定向菜单。

我实际测下来,在千兆内网环境里,客户端 USB 重定向拷贝大文件的速度基本能接近 USB 2.0 的速度,用来做临时数据迁移完全够用。

3.5 第五步:如果想把移动硬盘变成 ESXi 的 datastore

说回第三类需求:想把移动硬盘直接变成 ESXi 的存储,在里面放虚拟机模板或直接分配磁盘给虚拟机。这个操作比较灰色,官方并不支持,但确实有人这么干。我个人的建议是:仅限测试环境,生产环境千万别碰。

如果只是想快速试一下,可以通过命令行在移动硬盘上创建 VMFS 文件系统。前提是这块盘在/vmfs/devices/disks下面已经能被识别,比如叫mpx.vmhba33:C0:T0:L0。然后执行:

vmkfstools -C vmfs6 -S USBDataStore /vmfs/devices/disks/mpx.vmhba33:C0:T0:L0

命令执行成功后,你在 vSphere Web Client 的“数据存储”页面里刷新一下,就会看到名为USBDataStore的 VMFS 数据存储,可以把虚拟机文件放上去。

但我为什么反复强调不要在生产环境用?

一是 USB 本身带宽有限,加上硬盘盒桥接芯片的协议转换开销,性能完全没法跟 SAS/SATA/NVMe 盘比;二是 USB 连接的稳定性远不如原生控制器,一旦移动硬盘掉盘,正在上面运行的虚拟机轻则 IO 错误,重则直接崩溃,数据损坏风险极大;三是 ESXi 的存储栈对 USB 盘的电源管理、错误恢复策略和普通磁盘不一样,容易出现奇怪的挂起现象。

如果你确实需要一个可供 ESXi 主虚拟机直接使用的低成本存储解决方案,我建议用 NFS 或 iSCSI,而不是 USB。比如家里有一台 NAS,直接开一个 NFS 共享,ESXi 挂载上去就能用,稳定性和性能都比 USB 移动硬盘靠谱得多。

如果你目标是把移动硬盘的数据迁移到现有的虚拟机里,那也完全不需要把它变成 datastore,直接走 3.3 小节的 USB 直通,然后在虚拟机系统内部把这些数据拷贝到虚拟机的虚拟磁盘上,更安全也更干净。

4. 高频问题与避坑实录

4.1 虚拟机里一直掉盘,或者拷贝大文件时突然断开

这是 USB 直通最典型的毛病。表现为移动硬盘在 Windows 虚拟机里能看到,拷贝了十几 GB 之后系统突然提示“USB 设备已断开”,然后移动硬盘又自行重新连接,甚至干脆消失,需要到 ESXi 主机上拔插一次才能恢复。

排查顺序如下:

  1. 换数据线和供电方式。优先给 2.5 寸移动硬盘换一根粗短线缆,或者用带辅助供电的 USB Y 型线,甚至找带独立供电的 USB Hub。供电不稳定是掉盘的头号原因。
  2. 改 USB 控制器类型。如果当前虚拟机用的是 USB 2.0 (EHCI),可以试试切换到 USB 3.1 (xHCI),或者反过来。某些硬盘盒的桥接芯片在特定控制器模式下工作不稳定。
  3. 关闭 USB 设备的省电设置。在 Windows 虚拟机里,打开“设备管理器”,找到通用串行总线控制器,进入 USB Root Hub 属性,把“允许计算机关闭此设备以节约电源”的勾选去掉。这个在物理机上也是经典操作,虚拟机同样适用。
  4. 检查虚拟机是否启用了 USB 自动连接行为。有的情况下,设备短暂出错后,vSphere 会自动尝试重新连接,但不会自动恢复到原来的虚拟机。可以在虚拟机设置里把“连接 USB 设备”的选项勾选为“连接”,来减少手动操作。不过说实话,如果频繁掉盘,还是要先解决底层硬件问题。

4.2 识别到了,但虚拟机里提示设备无法正常工作

虚拟机里看到 USB 设备被识别,但提示“代码 10”或者“设备无法启动”,大概率是 USB 控制器型号选错了。比如虚拟机没添加 USB 3.1 控制器,但你在直通设置里选了一个 USB 3.0 设备,系统就可能出现兼容性问题。

我的处理方式很粗暴:关掉虚拟机,把原来的 USB 控制器删掉,重新加一个 usb 3.1(xHCI),再把 USB 设备加进去,开机看效果。如果还不行,再换成 USB 2.0(EHCI)试试。

另外,有些移动硬盘盒的桥接芯片在 UASP(USB Attached SCSI Protocol)模式下,会在 vSphere 直通时出现奇怪的枚举错误。这种情况下可以在虚拟机里的磁盘管理里看到磁盘,但打开分区时提示参数错误。解决方式通常是换硬盘盒,或者看看有没有桥接芯片的固件更新。

4.3 只能看到 U 盘,看不到移动硬盘

有朋友反馈,vSphere 虚拟机设置里的“USB 设备”下拉列表只能看到 U 盘,看不到移动硬盘。这种问题通常有两个原因。

第一,U 盘可能插在 ESXi 主机的板载 USB 口,而移动硬盘插在一块不被 ESXi 支持的 USB 扩展卡上。扩展卡上的 USB 控制器没有驱动,ESXi 只枚举到了板载控制器下的 U 盘。把移动硬盘改插到板载 USB 口即可。

第二,移动硬盘本身处于一种“半识别”状态,存储层已经把它识别为磁盘,但 USB 设备层没有完全就绪。可以用 3.2 小节里的esxcli hardware usb list确认它在 USB 层是否存在。如果 USB 层没有,但在存储层能看到mpx.vmhba33:C0:T0:L0,说明设备走的是 UAS 或者直挂模式,直通的时候需要在虚拟机里手动添加 PCI 设备(而不是 USB 设备)来访问,操作会复杂一些,普通场景下不推荐继续折腾,换硬盘盒更省事。

4.4 关于数据安全:直通不等于备份

这里想多啰嗦一句。很多人把移动硬盘直通给虚拟机后,就把它当成虚拟机里的普通磁盘来用,日常数据都往里放。我强烈不建议这样做,原因很简单:

  • USB 直通的稳定性受硬件、线材、供电、驱动等多重因素影响,掉盘概率比原生 SATA/SAS 高一个数量级。
  • 直通过程中,虚拟机的快照、vMotion 等功能兼容性有限,如果虚拟机带着 USB 直通设备做 vMotion,大概率会被阻止或提示需要关闭设备。
  • 移动硬盘本身通常也不是为企业级 7x24 小时运行设计的,连续读写时间长容易过热掉线。

所以我的建议是:移动硬盘在 ESXi 环境里的定位是“临时转运工具”或“离线备份盘”,直通给虚拟机用完之后,记得干净卸载并断开。真正重要的虚拟机数据,还是放到可靠的 RAID 或 NAS 共享存储上。

5. 我的一点个人体会

如果你问我这几年折腾 ESXi USB 存储最深刻的感受,我会说:ESXi 对 USB 设备的支持逻辑其实一点都不复杂,但它和普通操作系统的“插入即用”体验差得太远,所以很多人卡住,是因为一直在用 Windows 的使用习惯去思考 ESXi 的行为。做一次完整的硬件预检、命令行确认、虚拟机控制器配置,整个过程一旦走过一遍,后面再遇到类似的 USB 设备问题就能很快定位到环节了。

最后的实用小技巧:如果在esxcli hardware usb list里能看到设备,但虚拟机就是加不上,可以试试先断开该 USB 设备,在“编辑设置 → USB 设备”里刷新一次列表,多半是因为 vSphere Web Client 缓存了旧的设备状态。刷新之后重新选择,设备直通通常就正常了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询