ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

VMware Workstation Pro 17创建Linux虚拟机完整教程与避坑指南

VMware Workstation Pro 17创建Linux虚拟机完整教程与避坑指南 很多刚接触 Linux 的朋友折腾的第一个门槛往往是“怎么在一台 Windows 电脑上跑起一个 Linux 环境”而 VMware Workstation Pro 基本是大家绕不开的那个工具。我这些年不管是自己学习内核、搭测试环境还是帮同事搞信创适配、验证国产系统几乎天天都在跟虚拟机打交道。VMware Workstation Pro 17 这套软件说它一句“虚拟化里的瑞士军刀”不过分尤其是在创建和管理 Linux 虚拟机这块稳定性和功能的完整度确实能帮你省掉不少折腾时间。这篇文章我不会去讲那些花里胡哨的概念而是把我这么多年实际使用中反复用到、反复踩坑后沉淀下来的一套完整流程分享出来。从版本选型、安装配置到新建一台 Linux 虚拟机的每一步细节、参数怎么给、网络怎么选再到你十有八九会撞上的几个报错和排查办法全部一次说透。不管你是第一次接触虚拟机的纯新手还是已经在用但总被各种异常卡住的进阶用户照着这篇文章走一遍基本能把你日常 90% 的虚拟机创建问题解决掉。1. 内容整体设计与思路拆解1.1 为什么首选 VMware Workstation Pro而不是 VirtualBox 或 Hyper-V虚拟化工具的选择其实没有绝对的对错但 VMware Workstation Pro 在“创建 Linux 虚拟机”这个具体场景里的优势我用下来感受非常明显。首先是性能损耗控制得好。同样是跑一个 Ubuntu 桌面版VMware 的图形加速和磁盘 I/O 表现通常比 VirtualBox 更顺滑尤其是在你分配多核 CPU 和较大内存的情况下。VMware 的半虚拟化 SCSI 控制器和 NVMe 控制器优化能让 Linux 里的磁盘读写速度接近宿主机直接操作的感受这在编译内核或者跑数据库测试时差距非常明显。其次是快照机制极其可靠。做系统实验、搞内核调试、装各种乱七八糟的环境免不了把系统玩坏。VMware 的快照可以在创建时的瞬间保存整个系统状态想回滚就回滚而且快照之间的层级管理比 VirtualBox 做得清晰不少。这东西用一句话形容就是你乱搞的底气全是快照给的。再说 Hyper-V。当然它作为 Windows 自带的虚拟化方案部署成本最低。但如果你需要同时管理多个不同发行版、做不同的网络隔离实验Hyper-V 的配置复杂度反而更高而且它默认和 VMware Workstation 抢 Hyper-V 虚拟化层经常导致“虚拟机监控程序功能对该用户不可用”这类报错。我后面会专门讲这个问题怎么处理。简单说Windows 桌面环境下做日常 Linux 虚拟化VMware Workstation Pro 是我个人觉得综合体验最平滑的方案。1.2 版本选型为什么建议你直接用 VMware Workstation Pro 172024 年 5 月之后VMware Workstation Pro 对个人用户免费了这是个很大的变化。以前大家满世界找 16 的许可证密钥现在根本不用折腾那些东西了。你只需要去 Broadcom 官网注册一个账号下载 Pro 17 的安装包装完就处于个人许可状态可以合法免费使用。不过这里要提醒一句免费的是个人用户商用还是要付费的。如果你在公司环境里用它做开发、测试请务必确认公司的授权情况。我见过不少小团队因为没注意这点踩了 License 合规的坑这事情说大不大但真被查起来也挺麻烦。版本号选择上我还是建议大家直接上 17。17 相比 16 最大的改进是对新硬件和较新内核的 Linux 发行版支持更友好比如安装 Ubuntu 24.04 或者其他更新内核版本的系统17.5 以后的版本兼容性明显更好。你如果还在用 15.5 或者 16遇到虚拟机起不来、显卡驱动装不上、共享文件夹挂载失败这些诡异问题先别急着排查系统把 Workstation 升级到 17.5.2 以上大概率直接药到病除。2. 安装与基础配置要点2.1 下载、安装和许可激活的完整过程下载就直接去 Broadcom 官网搜索 VMware Workstation Pro选择 17.x 版本下载 Windows 版本安装包。安装过程没什么难度一路 Next 就行但有两个细节值得注意。第一安装路径尽量不要出现中文和空格。很多人图省事装在默认路径 C:\Program Files (x86)\VMware\VMware Workstation\这个路径其实没问题因为 VMware 自己处理了带空格的路径。真正让你泪流满面的是你自己把虚拟机镜像文件放在一个中文路径下比如“D:\虚拟机文件\”这种后面启动虚拟机时很容易报 “unable to find the vmx binary” 这类问题。我后面排查章节会细说这里先立个 flag所有和虚拟化相关的路径最好全用英文这是无数人用血泪换来的教训。第二安装完成后第一次启动如果你没登录 Broadcom 账号软件会提示你输入许可证密钥。个人免费版这里直接选择“用于个人使用”之类的选项即可不需要输入序列号。如果你之前用过 16 的许可证想升级也可以把密钥填进去但我实测下来 17 个人免费许可完全够用没必要再折腾旧密钥。2.2 BIOS/UEFI 层面最重要的前置设置虚拟化必须开启创建虚拟机之前有一件事必须先确认那就是你的 CPU 虚拟化功能Intel VT-x 或 AMD-V是否已经在 BIOS/UEFI 中开启。如果没开后面创建 Linux 虚拟机时你会发现 CPU 配置选项里“虚拟化 Intel VT-x/EPT 或 AMD-V/RVI”这个勾是灰的而且虚拟机启动起来会非常卡或者直接报错说硬件虚拟化不可用。具体操作是开机进 BIOS不同品牌按键不同一般是 Del/F2/F10找到 CPU Configuration 或 Advanced 菜单下的 Intel Virtualization Technology / SVM Mode设为 Enabled保存重启。这一步目前大多数新电脑默认是开启的但企业内部批量采购的机器偶尔会把这个功能关掉所以创建虚拟机前花 30 秒确认一下能避免后面一堆莫名其妙的问题。Windows 系统里怎么快速确认虚拟化是否开启打开任务管理器切到“性能”标签看 CPU 那一栏如果“虚拟化”显示“已启用”那就没问题。如果显示“已禁用”大概率是 BIOS 里没开或者你机器上装了 Hyper-V 导致虚拟化层被占用了。2.3 三种网络模式的选择逻辑NAT、桥接、仅主机到底怎么选对很多新手来说VMware 里最迷茫的设置就是网络模式。我先用最直白的话解释三者的区别再告诉你怎么选。NAT 模式是默认选项虚拟机通过宿主机共享 IP 上网。对宿主机来说虚拟机在 NAT 网络里对虚拟机来说它看到的是一个虚拟交换机所有流量经宿主机的网络出去。这时候虚拟机能访问外网但外网主动访问不到虚拟机需要做端口转发才行虚拟机之间可以互相访问。日常学习和绝大部分开发测试选 NAT 就够了省心又安全。桥接模式则是让虚拟机直接暴露在局域网中拥有和宿主机同一网段的独立 IP相当于局域网里多了一台独立的机器。需要虚拟机作为服务器对外提供服务或者要模拟真实网络环境比如搭集群测试、跑 K8s 节点这时候选桥接。仅主机模式是虚拟机只能和宿主机通信完全不能访问外网。适合做隔离测试或者模拟离线内网环境。我给一个简单的决策表使用场景推荐网络模式原因日常学习、跑普通服务NAT配置简单虚拟机能上网宿主机访问虚拟机也方便搭建服务对外提供访问桥接虚拟机拥有局域网独立 IP可直接被其他机器访问离线环境模拟、安全测试仅主机网络完全隔离不会污染局域网虚拟机间需要互访但不想暴露外网NAT 或仅主机根据是否要上外网选择我个人的经验是如果拿不准无脑用 NAT。NAT 模式下虚拟机访问外网没问题宿主机可以通过端口转发让外部设备访问到虚拟机里的服务绝大多数场景都覆盖了。3. 创建 Linux 虚拟机的完整实操流程3.1 新建虚拟机向导的核心参数怎么选进入 VMware Workstation Pro 主界面点击“创建新的虚拟机”。这里我推荐选“自定义高级”不要选“典型”。原因很简单典型模式帮你隐藏了很多细节而这些细节恰恰决定了你后面用起来是否顺手。选择“自定义”之后一路过来有几个关键节点硬件兼容性默认选当前 Workstation 版本即可比如 Workstation 17.x。如果你的虚拟机文件以后可能拿到别人机器上用可以降级选择较低版本但没必要一开始就选低版本。安装来源这里选“稍后安装操作系统”。我明确不建议在这里就挂载 ISO 镜像因为向导的安装过程经常会在你还没准备好分区方案时就开始自动化安装造成后面分区布局不是你想要的。稍后安装意味着你能更精確地控制后续安装的每一步。客户机操作系统选 Linux版本根据你要装的发行版选。比如安装 Ubuntu就选 Ubuntu 64 位安装 CentOS/Rocky Linux选 CentOS 7 64 位或 Rocky Linux 64 位。如果列表里没有精确对应的名字选一个最接近的 64 位版本一般问题不大。虚拟机名称和位置这步特别重要。名称尽量用英文小写路径也要全英文别带空格。比如 E:\VM-Machines\Ubuntu-2404 这种结构。我自己曾经因为图省事把虚拟机路径放在中文文件夹下面结果好几次升级 Workstation 之后虚拟机直接起不来报错就是前面提到的 vmx binary 找不到排查到头大。所以这里多啰嗦一句路径全英文规避一切玄学问题。3.2 处理器、内存、磁盘容量分配的计算依据到了固件类型和硬件资源配置这一步很多新手就开始纠结了。我的建议是不要照搬网上的“推荐配置”而是根据你宿主机的实际硬件和你的用途来决定。固件类型选择 UEFI 就好现在新的 Linux 发行版对 UEFI 支持已经很完善了而且 UEFI 启动比传统的 BIOS 启动更快对安全启动的支持也更好。除非你要装一些特别老的系统否则用 UEFI 没毛病。处理器配置里处理器数量建议固定为 1“每个处理器的内核数量”填你要分配的 CPU 核数。为什么要这样因为大多数操作系统对多路 CPU多个物理 CPU 插槽的调度和 License 处理跟单路多核不一样在虚拟机里给多个虚拟 CPU 插槽反而可能引发奇怪的问题而单路多核最通用。分配多少核我一般是宿主机 8 核以上的给虚拟机分 4 核做开发测试宿主机 4 核的分 2 核就差不多。内存分配这条要特别强调不是越多越好。分配过大的内存会导致宿主机卡顿甚至触发 Windows 的内存压缩机制反过来让整个系统变慢。一般规则是虚拟机内存不要超过宿主机物理内存的一半。比如宿主机 16GB虚拟机给 8GB宿主机 32GB虚拟机给 12~16GB。我实际测试容器、跑编译任务时4~8GB 已经完全够用了。网络类型按前面说的选 NAT 即可。I/O 控制器和磁盘类型默认的 LSI Logic SAS 适合许多老系统但如果你装的是新版本 Ubuntu、Fedora、CentOS Stream 这类建议选 NVMe。NVMe 虚拟磁盘在 Linux 下的性能表现明显更好而且现在 Linux 内核自带的 nvme 驱动很成熟不用担心识别不了。磁盘容量这里有个重要技巧。比如你未来打算装很多开发工具和 Docker 镜像建议直接给 60GB 以上。但关键在于**“将虚拟磁盘存储为单个文件”还是“拆分成多个文件”。如果你经常需要在不同电脑间拷贝虚拟机文件或者想节省物理磁盘空间选拆分但性能上单个文件略好。我自己的习惯是选“单个文件”因为虚拟机一般固定在某台机器上运行不常移动。然后下面“立即分配所有磁盘空间”这个选项不要勾**让它按需增长就好否则你定义 100GB 它马上在你物理硬盘上划掉 100GB非常浪费。3.3 通过 ISO 镜像安装 Linux 系统的关键步骤记录硬件配置完成后点“完成”回到主界面。这时右键虚拟机选择“设置”在 CD/DVD 里勾选“使用 ISO 镜像文件”选择你下载好的 Linux 发行版 ISO。然后开启虚拟机。以 Ubuntu 24.04 为例启动后会进 GRUB 引导界面选“Install Ubuntu”后面几步基本都是图形化操作。有几个值得说的细节分区方案不要用默认。很多新手直接点了“清除整个磁盘并安装 Ubuntu”这确实最省事但万一你以后想调整分区大小LVM 方案会灵活很多。我建议选“自定义存储布局”手动建三个分区/boot1GB用于存放引导文件swap跟你内存大小一致或者取 4GB早期内存不够时可以应急/根分区剩余全部空间如果你想单独挂载 /home 做数据隔离也可以从根分区里再切一块但个人使用不是必需安装期间勾选“为图形或无线硬件安装第三方软件”这个选项会帮你装上一些闭源驱动尤其是在 N 卡上否则进系统后图形界面可能非常卡顿。系统装完后别急着开心还有一步必做安装 VMware Tools或者 open-vm-tools。在 Workstation 菜单里选“虚拟机 - 安装 VMware Tools”然后进到 Linux 虚拟机的文件管理器里挂载那个虚拟光驱找到 tar.gz 文件解压执行安装脚本即可。Ubuntu 等系统其实自带了 open-vm-tools但为了更好的剪贴板共享、自适应分辨率和拖拽文件功能我还是推荐装一下完整版 VMware Tools。装完后重启虚拟机你就会发现分辨率自动适配窗口、鼠标进出虚拟机不再需要按 CtrlAlt体验提升一个档次。4. 常见问题与排查技巧实录4.1 虚拟机无法启动、报权限相关的错误这个报错属于高频问题报错原文大概是“VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用”。我遇到的情况和网上反馈的案例基本都聚焦在几个点上。第一VMware Authorization Service 服务没有启动。这个服务是 VMware 虚拟机的权限管理核心右击“此电脑 - 管理 - 服务和应用程序 - 服务”找到 VMware Authorization Service确认状态是“正在运行”如果不是右键启动并把它设置为自动启动。很多第三方优化软件会把这个服务禁用掉导致虚拟机一开机就报错。第二当前 Windows 用户对虚拟机文件目录没有完全控制权限。尤其是你把虚拟机放在 C 盘 Program Files 目录或者系统保护目录下权限控制很严格。解决方法是把整个虚拟机文件夹的权限赋给当前用户或者更省事的做法是把虚拟机移到非系统盘、非受保护目录比如 E:\VM-Machines下面。第三如果你用 UAC 严格控制权限可以尝试右键 VMware Workstation 图标选“以管理员身份运行”。虽然不是根因但有时确实能绕过一些权限问题。4.2 无法找到 vmx 二进制文件路径引发的连锁反应这个报错我前面提到过典型提示是 “unable to find the vmx binary ‘F:\虚拟机\vmware-vmx.exe’”。很多人不理解明明自己装好了 Workstation怎么 VMware 还找不到自己的主程序这里有两个常见原因。其一是你从旧版本 Workstation 升级后默认配置文件里还残留着旧版本的 vmx 路径或者你装的是非官方默认路径导致 Workstation 在新版本中无法正确定位 vmware-vmx.exe。其二是虚拟机文件路径中包含非英文字符或特殊字符比如中文目录“F:\虚拟机\”这会让 VMware 在启动虚拟机时解析路径失败找不到 vmware-vmx.exe。解决方法建议按顺序试检查 VMware Workstation 的安装目录确认 vmware-vmx.exe 确实存在于 X:\Program Files (x86)\VMware\VMware Workstation\x64\ 下64 位系统。如果存在重新运行 Workstation 安装程序选择“修复”修复完成后重启。如果是中文路径问题把整个虚拟机文件夹移动到纯英文路径然后重新打开虚拟机。我后来养成的习惯是虚拟机文件命名全英文、路径全英文、安装软件也全英文路径。有人说我强迫症但说实话这些年我身边出现虚拟机相关诡异报错的朋友95% 最后都栽在路径上。你也可以说这是玄学但与其排查半天不如一开始就避免。4.3 创建快照时提示“使虚拟机处于静默状态时出错”快照功能是我最喜欢 VMware 的点之一但很多人用快照时遇到过“使虚拟机处于静默状态时出错。有关详细信息请参见虚拟机的事件日志”的报错。这个“静默状态”是什么意思简单说就是 VMware 在创建快照前会通过 VMware Tools 让客户机操作系统把内存中的数据、文件系统缓存整理到一致状态以确保快照是“干净”的回滚后不会出现文件系统损坏。如果你在创建快照前没有安装 VMware Tools或者 Tools 服务异常VMware 就无法让这个虚拟机进入静默状态于是报错。但注意这个报错通常是“警告”性质的不一定导致快照创建失败只是快照的一致性打了折扣。如果你正在跑数据库之类的服务这种不一致快照回滚后可能数据丢失所以还是要重视。解决办法确认虚拟机里 VMware Tools或 open-vm-tools已经正确安装且服务在运行。尝试关闭虚拟机后再拍摄快照这样是最干净的一致快照。如果必须开机状态做快照检查磁盘空间是否充足快照文件需要额外磁盘空间。查看虚拟机事件日志定位具体是哪个操作超时或失败。顺便说个经验快照不是备份。如果你在虚拟机上做重要实验或开发工作千万不要把快照当成唯一的恢复手段还是要定期把虚拟机文件复制到外部存储做完整备份。快照层级越多性能损失越大而且一旦父快照文件损坏整个链上的快照都可能打不开。4.4 提示“虚拟机监控程序功能对该用户不可用”或与 Hyper-V 冲突这个报错近两年特别常见。它的根源是 Windows 自己开启了基于 Hyper-V 的虚拟化安全功能比如内核隔离、内存完整性VBS/HVCI或者你直接启用了“虚拟机平台”或“Hyper-V”功能。一旦 Windows 独占使用 CPU 的虚拟化能力VMware Workstation 想再通过 VT-x/AMD-V 直接访问硬件虚拟化资源就会碰壁。判断是不是这个问题去“控制面板 - 程序 - 启用或关闭 Windows 功能”里看若勾选了 Hyper-V、虚拟机平台、Windows 虚拟机监控程序平台、适用于 Linux 的 Windows 子系统WSL2 也依赖这个大概率就是冲突原因。解决办法其实有点反直觉要么永久关闭这些功能要么让 VMware 使用 Windows Hypervisor PlatformWHP作为后端。但 WHP 模式下 VMware 的性能会打折扣所以我个人更推荐关闭 Windows 的虚拟化安全功能把硬件虚拟化资源完全让给 VMware。具体操作分两步第一步在“Windows 安全中心 - 设备安全性 - 内核隔离详细信息”里关闭“内存完整性”VBS/HVCI重启。大部分人的问题在这一步就解决了。第二步如果还不行去“控制面板 - 启用或关闭 Windows 功能”里取消勾选 Hyper-V、虚拟机平台、Windows 虚拟机监控程序平台确定后重启。注意关闭这些功能可能会影响 WSL2如果你在用 WSL2虚拟机平台功能关闭后 WSL2 会用不了二选一。如果你必须要用 WSL2 又要用 VMware那就只能让 VMware 通过 WHP 工作在虚拟机的“处理器”设置里勾选“虚拟化 Intel VT-x/EPT 或 AMD-V/RVI”并在“高级”里勾选“通过 Windows Hypervisor Platform 使用二进制翻译”这样能同时共存但性能会有些损失。4.5 常见问题速查表问题现象常见原因快速解决办法无法连接到虚拟机权限报错VMware Authorization Service 未运行 / 文件目录无权限启动服务将虚拟机移到授权目录管理员身份运行 Workstation找到不 vmware-vmx.exe路径含中文特殊字符 / 安装损坏移动虚拟机到英文路径修复安装 Workstation创建快照时静默状态出错VMware Tools 未装 / 磁盘空间不足安装 Tools清理磁盘空间关机拍快照虚拟机监控程序功能对该用户不可用Hyper-V 或 VBS/HVCI 开启关闭内存完整性关闭 Hyper-V 相关 Windows 功能虚拟机启动极度卡顿BIOS 未开启 Intel VT-x/AMD-V进 BIOS 开启虚拟化任务管理器确认虚拟化已启用安装 Linux 后无法自适应分辨率未安装 VMware Tools安装 open-vm-tools / VMware Tools虚拟机无法上网网络模式选错 / NAT 服务异常检查 VMnet8 网络适配器重启 VMware NAT Service检查防火墙5. 一些我个人的使用习惯与最后提醒写到这里基础流程和常见问题也讲得差不多了。最后想分享几个我日常使用 VMware 跑 Linux 时总结出来的一些习惯谈不上什么高深技巧但确实帮我省了不少事。快照这个功能我用得非常多但越用越有节制。以前我是那种每做一步操作就拍一个快照的人结果快照越堆越多磁盘越占越满虚拟机也越来越卡。后来我改成只在关键里程碑拍刚装好系统拍一个“干净系统”装完开发环境拍一个“基础环境”做重要改动前再拍一个“改动前状态”。平时尽量保持两到三个以内其他情况宁愿多花几分钟导出 OVF 备份也不做过量的快照链。再看看资源分配。我给 Linux 虚拟机分配内存和 CPU 时基本都是“按需分配、宁少勿多”。比如写 Node.js、Python 脚本这种轻量开发2 核 4GB 就非常流畅了跑 Docker Compose 一类的集群测试才升到 4 核 8GB。因为虚拟机分配的资源是直接占用宿主机物理资源的你给虚拟机 8GB宿主机就真的少了 8GB 可用内存启动大型 Windows 应用就会开始卡。合理控制资源分配不仅让两台系统都流畅还能避免很多因为内存不足引起的玄学问题。还有一个习惯是定期清理没用的虚拟机。Workstation 界面里列着十几台虚拟机看着很丰满其实大多数是以前测试完就再也没动过的。它们占用的磁盘空间、挂载的虚拟机网络是真真切切的资源消耗。我的做法是每季度清理一次把不再需要的虚拟机文件直接删掉顺带检查一下 VMnet8 和 VMnet1 的网段配置避免时间长了网段冲突。如果你把这篇内容从头读到这照着“选自定义、路径全英文、内存分配不过半、分区手动建、网络默认 NAT、装完先装 Tools”这一套组合拳打下来创建一台 Linux 虚拟机基本不会再有什么大坑。真遇到问题了翻翻上面的排查表先把报错的关键词复制到搜索引擎里搜一圈再结合日志文件虚拟机目录下的 vmware.log里报错的行号去定位绝大部分问题都能解决。虚拟化这件事说到底就是一个“层”的概念硬件之上有虚拟机监控器虚拟机监控器之上是客户机系统客户机系统里面又跑着你的应用。明白了这一层套一层的关系以后无论换什么虚拟机软件、什么云平台思路都是通用的。希望这篇文章能帮你把 VMware Workstation Pro 这台“车”开顺手后面真正投入到 Linux 学习和开发里时少一点环境折腾多一点正事时间。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进