VMware 创建虚拟 USB 磁盘

1929 字
10 分钟
VMware 创建虚拟 USB 磁盘

VMware 创建虚拟 USB 磁盘#

步骤 1:使用 VMware Virtual Disk Manager 创建虚拟磁盘#

创建虚拟 USB 磁盘(示例:16GB):

Terminal window
set "path=C:\Program Files (x86)\VMware\VMware Workstation;%path%"
vmware-vdiskmanager.exe -c -s 16GB -t 0 "virt-usb-key.vmdk"
Terminal window
$env:Path += ;C:\Program Files (x86)\VMware\VMware Workstation;"
vmware-vdiskmanager.exe -c -s 16GB -t 0 "virt-usb-key.vmdk"

参数说明见附录 #vmware-vdiskmanagerexe-参数说明

常见问题:创建过程中的警告信息 执行命令后,您可能会看到类似以下的警告:

Terminal window
>vmware-vdiskmanager.exe -c -a lsilogic -s 64GB -t 0 "virt-usb-key.vmdk"
VixDiskLib: Failed to initialize PhoneHome library.
Creating disk 'virt-usb-key.vmdk'
DISKLIB-LIB_SIZE : Unable to get file system ID for filename "R:\virt-usb-key.vmdk"
Virtual disk creation successful.
警告信息原因处理方式
VixDiskLib: Failed to initialize PhoneHome libraryVMware 客户体验改进计划(CEIP)的遥测功能初始化失败忽略 - 已知的无害警告
DISKLIB-LIB_SIZE: Unable to get file system ID新创建的磁盘尚未格式化,无法获取文件系统 ID正常 - 格式化后即可消除

✅ 结论:只要出现 Virtual disk creation successful,就表示磁盘已成功创建,警告不影响功能。

步骤 2:编辑虚拟机配置文件(.vmx)#

⚠️ 重要

确保目标虚拟机完全关闭(不是挂起状态)。

找到虚拟机目录下的 .vmx 文件(例如 Windows 10.vmx),用记事本打开并添加以下配置:

使用 USB 2.0(EHCI)#

# 启用 USB 2.0 控制器(EHCI)
ehci.present = "TRUE"
ehci.pciSlotNumber = "34"
# 添加虚拟 USB 磁盘
ehci:0.present = "TRUE"
ehci:0.deviceType = "disk"
ehci:0.fileName = "virt-usb-key.vmdk"
ehci:0.readonly = "FALSE"
# USB 设备权限(Workstation 16.2.1+ 需要)
usb.restrictions.defaultAllow = "TRUE"

使用 USB 3.0(xHCI)#

如需USB 3.0支持,添加以下配置:

# 启用 xHCI(USB 3.0)控制器
usb_xhci.present = "TRUE"
usb_xhci.pciSlotNumber = "192"
# 将虚拟磁盘挂载到 xHCI
usb_xhci:0.present = "TRUE"
usb_xhci:0.deviceType = "disk"
usb_xhci:0.fileName = "VUSBDisk.vmdk"
usb_xhci:0.readonly = "FALSE"
usb_xhci:0.speed = "16"
# USB 设备权限(Workstation 16.2.1+ 需要)
usb.restrictions.defaultAllow = "TRUE"

配置项详解见附录#vmx-文件配置说明

步骤 3:启动虚拟机并初始化磁盘#

启动虚拟机

进入磁盘管理(Windows 客户机):

右键”此电脑” → “管理” → “磁盘管理”

或运行 diskmgmt.msc

初始化磁盘:

找到未分配的磁盘(显示为”未知”)

右键选择”初始化磁盘” → 选择 MBR 或 GPT

创建简单卷并格式化:

右键未分配空间 → “新建简单卷”

选择文件系统(NTFS/FAT32/exFAT)

完成格式化

💡提示

格式化完成后,虚拟USB盘即可像普通U盘一样使用,支持文件复制、软件安装、甚至制作启动盘。

进阶配置#

添加多个虚拟USB设备 如需添加第二个虚拟U盘,修改配置:

USB 2.0#

# 第一个虚拟USB盘
ehci:0.present = "TRUE"
ehci:0.deviceType = "disk"
ehci:0.fileName = "virt-usb-key1.vmdk"
# 第二个虚拟USB盘
ehci:1.present = "TRUE"
ehci:1.deviceType = "disk"
ehci:1.fileName = "virt-usb-key2.vmdk"

USB 3.0#

# 第一个虚拟USB盘
usb_xhci:0.present = "TRUE"
usb_xhci:0.deviceType = "disk"
usb_xhci:0.fileName = "virt-usb-key1.vmdk"
# 第二个虚拟USB盘
usb_xhci:1.present = "TRUE"
usb_xhci:1.deviceType = "disk"
usb_xhci:1.fileName = "virt-usb-key2.vmdk"

故障排查#

问题解决方案
虚拟机无法识别USB设备检查 .vmx 文件路径是否正确,确认虚拟机已完全关闭后修改
磁盘显示为”脱机”在磁盘管理中右键选择”联机”
无法格式化以管理员身份运行磁盘管理,或尝试使用 diskpart 命令
Workstation 16.2+ 无法连接确保添加 usb.restrictions.defaultAllow = "TRUE"

附录#

vmware-vdiskmanager.exe 参数说明#

参数功能描述命令格式示例
-c创建磁盘
创建一个新的空白虚拟磁盘文件。需配合 -s (大小), -t (类型) 等参数使用。
vmware-vdiskmanager.exe -c -s <磁盘容量> -a lsilogic -t 0 <磁盘文件路径>
-d碎片整理
整理虚拟磁盘文件的碎片,优化宿主机的读写性能。仅适用于动态增长型磁盘。
vmware-vdiskmanager.exe -d <磁盘文件路径>
-k收缩磁盘
释放虚拟磁盘中未使用的物理空间(减小宿主机上的文件大小)。需先在客户机内清理文件。
vmware-vdiskmanager.exe -k <磁盘文件路径>
-n重命名
修改虚拟磁盘文件的名称。需指定源文件和目标文件路径。
vmware-vdiskmanager.exe -n <原磁盘文件路径> <新磁盘文件路径>
-p准备收缩
为收缩操作做准备。需先通过 DiskMount 工具将虚拟磁盘挂载到宿主机,然后指定挂载点。
vmware-vdiskmanager.exe -p Z: (Z为挂载的盘符)
-r转换磁盘
更改磁盘类型(如将“预分配”转为“动态增长”,或合并/拆分文件)。
vmware-vdiskmanager.exe -r <原磁盘文件路径> -t 0 <新磁盘文件路径>
-x扩容磁盘
增大虚拟磁盘的最大容量。扩容后需在虚拟机系统内扩展分区。
vmware-vdiskmanager.exe -x 100GB <磁盘文件路径>
-R修复检查
检查稀疏虚拟磁盘的一致性并尝试修复错误。
vmware-vdiskmanager.exe -R <磁盘文件路径>
-e链一致性检查
检查磁盘链(包括快照文件)的一致性,确保没有断裂或损坏。
vmware-vdiskmanager.exe -e <磁盘文件路径>
-D设为可删除
解除磁盘的锁定状态,使其可被删除。通常用于从其他产品复制过来的磁盘。
vmware-vdiskmanager.exe -D <磁盘文件路径>
-U删除链接
删除/断开单个磁盘链接(通常用于处理快照链中的特定节点)。
vmware-vdiskmanager.exe -U <子磁盘文件路径> (例如Snapshot-000001.vmdk)

创建和转换的附加选项#

参数作用适用场景
-a定义虚拟磁盘的适配器类型
lsilogic:适用于大多数现代 Windows (XP/7/10/11) 和 Linux 系统。
buslogic:适用于较老的 Windows (NT/2000) 系统。
ide:适用于非常古老的系统或作为从盘挂载。
仅用于 创建 (-c)
-s设定虚拟磁盘的最大容量仅用于 创建 (-c)
-t定义磁盘文件的存储方式
0: 单个动态增长文件(默认)
1: 动态增长,拆分为多个 2GB 文件
2: 预分配空间,单个文件
3: 预分配空间,拆分为多个 2GB 文件
用于 创建 (-c) 和 转换 (-r)
-z设定压缩率(0-9),仅针对流媒体优化的磁盘。仅用于 转换 (-r) 且 -t 5

.vmx 文件配置说明#

配置项 (Key)作用说明典型值 / 备注
*.present启用硬件
告诉虚拟机是否存在某个硬件设备。
"TRUE""FALSE"
例如:usb_xhci.present = "TRUE" (启用USB 3.0)
*.pciSlotNumberPCI 插槽定位
指定设备在虚拟主板上的插槽位置,防止重启后硬件顺序变动。
"32", "33", "192"
通常由系统自动分配,手动指定可固定位置。
*.deviceType设备类型定义
定义该接口连接的是什么类型的设备。
"disk" (磁盘)
"cdrom" (光驱)
"usbhub" (集线器)
*.fileName文件路径映射
指向实际的 .vmdk 磁盘文件或 ISO 镜像路径。
"Windows10.vmdk" (相对路径)
"D:\VMs\Disk.vmdk" (绝对路径)
*.parentUSB 拓扑父级
定义设备的上游连接。
"-1":代表直接连在根控制器上(无中间集线器)。
*.portUSB 端口号
定义设备插在父级设备的哪个物理端口上。
"0", "1", "2"
用于固定设备连接位置。
*.speed强制 USB 速度
强制设备以特定速度模式运行(主要用于直通调试)。
见下方速度值对照表
例如:"16" 强制 USB 3.0。
usb.restrictions.defaultAllow解除连接限制
允许 USB 设备在未手动确认的情况下自动连接。
"TRUE"
新版 VMware 解决 USB 设备“连不上”或“需手动点击”的必备参数。

USB 速度值对照表#

十进制值十六进制值对应的 USB 标准
10x1USB 1.0/1.1 (1.5 Mbps)
20x2USB 1.1 (12 Mbps)
40x4USB 2.0 (480 Mbps)
160x10USB 3.2 Gen 1 (5 Gbps)
320x20USB 3.2 Gen 2 (10 Gbps)
640x40USB 3.2 Gen 2x2 (20 Gbps)

参考链接 https://blog.csdn.net/weixin_43657424/article/details/160217204

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

VMware 创建虚拟 USB 磁盘
https://www.satxm.top/posts/virt-usb-vmdk/
作者
Satxm
发布于
2026-05-13
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Satxm
Satxm's Book
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
50
分类
12
标签
47
总字数
26,673
运行时长
0
最后活动
0 天前

文章目录