
前几天有个朋友找我说他笔记本上想跑个 Linux 做实验资料下了一堆结果卡在最开头那一步——在 VMware 里新建虚拟机装 CentOS 7.9开机就报一堆他看不懂的错。我让他把屏幕拍过来发现问题根本不在系统本身而是几个特别小的配置项虚拟机网络模式选成了仅主机、网卡没设开机自启、镜像下到一半断过也没校验。这三个坑任意踩一个后面都会变成装是装上了但用不了的状态。这篇就把 VMware 虚拟机安装 CentOS 7.9 这整套流程从头到尾拆开讲一遍。不只给步骤更重要的是讲清楚每一步为什么这么填、哪些参数填错了后面会很难受、装完之后还有哪些必须做的收尾动作。CentOS 7.9 这个版本在 2024 年已经进入生命周期尾声网上不少教程的内容已经过期照着做会踩坑所以我会把版本现状、镜像源处理、工具选择这些容易忽略的地方一并说清。适合刚接触虚拟机的同学也适合装了十几台机器但总在某些细节上翻车的老手对着检查一遍。1. 为什么现在还有人执着于 CentOS 7.9 这个版本1.1 CentOS 7.9 是哪个版本它现在的处境是什么先把身份说清楚CentOS 7.9 的完整版本号是 7.9.20092009 代表 2020 年 9 月发布的滚动构建号。它是整个 CentOS 7 大版本的最后一个版本之后 CentOS 项目就转向了 CentOS Stream传统的稳定复刻版路线就此终结。7.9 的官方维护周期在 2024 年 6 月 30 日结束这意味着官方不再推送安全更新主镜像站也陆续把包挪到了 vault 归档目录。这就带来一个很现实的问题很多教程里那句yum install 装个软件现在直接跑会报 404。不是你的命令写错了是源地址已经不提供服务。后面第 5 章会专门讲怎么把源切到归档地址这是现在装 CentOS 7.9 绕不过去的一步。那为什么还要用它因为在企业内网、教学环境、老项目的验证场景里大量现成的部署文档、安装脚本、中间件配置都是围绕 CentOS 7 写的。你换成 Rocky 或者 Alma很多细节要对比如 systemd 单元文件写法的细微差异、防火墙规则、SELinux 策略、甚至某些商业软件只认/etc/redhat-release里的特定字符串。装一台 7.9 做环境对齐比在新系统上逐个排查兼容性问题要省事得多。1.2 VMware Workstation Pro 17 现在的授权情况顺便把一个被问烂了的问题说明白VMware Workstation Pro 从 17 版本开始个人使用已经免费官方渠道下载安装后选个人用途即可不需要再去找所谓的密钥。商用场景仍然需要走订阅授权这是两回事。网上流传的各种注册码来源不明装上之后能不能稳定运行、有没有被动过手脚都不好说为了省这点事给自己埋雷不值当。下载路径上现在的官方下载入口已经并入 Broadcom 的支持门户站内搜索产品名就能找到。安装包体积在 600MB 上下17.5.x 系列是比较新的小版本。装的时候有个细节如果你的宿主机上装着旧版本的 Workstation建议先卸载干净再装新版卸载残留会导致新版本启动时提示网络组件异常这个坑在第 6 章还会提到。顺带说一下汉化的事。网上搜虚拟机汉化包下载的人不少但 VMware Workstation 17 的官方安装包本身已经内置简体中文安装时会跟随系统语言自动切换不需要额外下载任何第三方汉化文件。来路不明的汉化包往系统目录里替换文件风险自己掂量。1.3 这套组合适合谁不适合谁说句实在话如果你只是想学 Linux 基础命令CentOS 7.9 完全够用而且资料最全。但如果你打算把它当长期跑业务的环境或者需要最新版本的内核特性、需要新的编译器版本那还是考虑 Rocky Linux 9 或者 AlmaLinux 9 更合适CentOS 7 的软件仓库停留在旧版本很多新工具需要自己编译折腾成本不低。虚拟机软件这一侧也一样。VMware Workstation Pro 适合在 Windows 或 Linux 桌面上做单机实验图形界面友好、快照方便、网络配置直观。如果你需要的是服务器级别的虚拟化那方向就完全不同了不该用桌面版软件去硬扛。选型这一步想清楚后面能少走很多弯路。2. 动手之前要先确认的三件事2.1 镜像从哪来为什么 sha256 校验不能省CentOS 7.9 的安装镜像有两个常用版本CentOS-7-x86_64-DVD-2009.iso大约 4.4GB包含完整的软件包集合CentOS-7-x86_64-Minimal-2009.iso大约 1GB只带最基础的运行环境。选哪个取决于你要不要图形界面和常用工具链——做服务器实验选 Minimal 就够要 GNOME 桌面或者需要装一堆开发包用 DVD 版可以少联网几十次。镜像现在要去归档站找主站已经没有 7.9 的目录了。下载完成后必须做的一件事是校验哈希值因为 4GB 的文件下载中途断线、被浏览器缓存截断、甚至镜像站同步不完整都会导致安装到一半报介质检查失败。文件损坏这件事最恶心的地方在于它往往不会在开头就暴露而是在装到某个包的时候突然报错让你以为是分区或者硬件问题白白排查半天。Windows 上用 PowerShell 校验Get-FileHash .\CentOS-7-x86_64-DVD-2009.iso -Algorithm SHA256Linux 或 macOS 上更简单sha256sum CentOS-7-x86_64-DVD-2009.iso拿输出的值和官方归档页给出的sha256sum.txt对照一个字符都不能差。这一步花你三十秒能省掉后面可能的一小时。2.2 宿主机的硬件下限和 BIOS 里的虚拟化开关VMware 官方给的最低配置是 64 位处理器、4GB 内存、1GB 空闲磁盘。但这是能启动的门槛不是用得舒服的门槛。我的实际建议是宿主机内存 16GB 起步系统盘留出至少 60GB 空闲空间因为每台虚拟机加上快照、交换文件很容易吃掉 30GB 以上。真正容易被忽略的是 BIOS 里的虚拟化开关。Intel 平台叫 Intel Virtualization TechnologyVT-xAMD 平台叫 SVM Mode位置通常在 Advanced 或者 CPU Configuration 菜单下。如果这个开关没打开VMware 会在启动虚拟机时直接弹窗提示此主机支持 Intel VT-x但 Intel VT-x 处于禁用状态虚拟机根本起不来。部分品牌的笔记本还会额外要求关闭 Secure Boot 才能正常加载虚拟化模块。打开方式开机时反复按 F2、Del 或者 F10不同品牌不一样看开机第一屏的提示进 BIOS 后找虚拟化相关选项设为 Enabled保存退出。注意有些主板在开启了虚拟化之后还要把可信执行之类的选项一并处理具体看主板文档。2.3 和 Hyper-V、WSL2 抢资源导致的蓝屏这个坑我踩过。宿主机是 Windows 10 或 11装完 VMware 后新建虚拟机一开机整个 Windows 直接蓝屏重启错误代码指向虚拟化相关模块。原因通常是宿主机上启用了 Hyper-V、WSL2、Windows 沙盒或者内核隔离里的内存完整性这些功能会占用 CPU 的虚拟化扩展和 VMware 直接冲突。处理办法有两个方向。如果你近期不用 WSL2 和 Hyper-V用管理员权限打开命令提示符执行bcdedit /set hypervisorlaunchtype off然后在Windows 安全中心 → 设备安全性 → 内核隔离里把内存完整性关掉重启系统。重启后可以用bcdedit /enum确认 hypervisorlaunchtype 的值是 Off。如果你确实需要同时用 WSL2 和 VMware那就得升级到较新的 Workstation 版本新版对 Hyper-V 共存的支持好一些但性能上仍然会有损耗而且网络配置会变得复杂。我的建议是实验机器上二选一别折腾共存。顺便说一句重启之后如果 VMware 提示网络组件需要重新配置让它自动修复就行别手动去设备管理器里删网卡容易越删越乱。3. 新建虚拟机时那几个真正影响后续的参数3.1 典型安装和自定义安装的差别在哪新建向导第一步就是选典型还是自定义。典型模式会自动帮你决定硬件兼容性版本、磁盘类型这些参数三分钟点完自定义模式会多出十几屏包括硬件兼容性、处理器数量、磁盘接口类型、是否预分配空间等等。我的做法是第一次装某类系统用自定义走一遍把每个参数看清楚之后再装同类系统直接用典型。因为典型模式有个隐性习惯——它默认的硬件兼容性版本跟着当前 Workstation 版本走如果你需要把虚拟机文件拷给用旧版 Workstation 的同事兼容性版本太高会打不开。自定义模式下可以把兼容性降到 15.x 甚至更低保证跨版本可用。另外提醒一下向导里选稍后安装操作系统比直接挂 ISO 更稳妥。先建好空虚拟机、检查一遍硬件参数再挂镜像启动出问题的时候排查范围小很多。3.2 CPU、内存、磁盘到底该分多少这部分没有标准答案但有几条经验规律可以照着套。虚拟 CPU 数量的分配原则是不要超过宿主机物理核心数的一半。比如宿主机是 8 核 16 线程给虚拟机分 2 到 4 个 vCPU 都合理宿主机只有 4 核 8 线程给 1 到 2 个就够了。给得太多反而拖慢整体性能因为宿主系统自己也要用 CPU虚拟机之间还会互相抢。内存的分配相对宽松一点留够宿主机自己能跑起来的量剩下的可以分出去。8GB 内存的宿主机给虚拟机 2GB 比较安全16GB 的宿主机给 4GB 完全没问题。这里要特别注意一点——VMware 分配给虚拟机的内存在虚拟机开机期间是被整体占用的不是按需分配的。所以别把宿主机内存全分出去否则宿主机自己会开始疯狂读写页面文件整个系统卡成幻灯片。磁盘这一项Minimal 安装 10GB 勉强够但建议直接给 20GB带 GUI 的安装给 40GB。因为虚拟机磁盘是按需增长的你给 40GB 不等于立刻占用 40GB实际占用会随着你往里写数据慢慢涨上去。给大一点几乎没成本给少了后面扩容虽然也能做但 LVM 扩容、分区表调整这些操作对新手不太友好。下面这张表是我常用的分配参考可以直接对照宿主机情况抄宿主机配置vCPU内存磁盘适用场景4核8线程 / 8GB1-22GB20GBMinimal 命令行实验8核16线程 / 16GB2-44GB40GB带 GUI 或跑中间件12核以上 / 32GB4-88GB60GB多节点集群模拟3.3 网络模式三选一选错了后面全是麻烦这一步是新手翻车率最高的地方。VMware 提供三种主要网络模式很多人随手选了默认值装完发现虚拟机 ping 不通外网或者宿主机访问不到虚拟机里的服务然后开始怀疑是系统装坏了。模式虚拟机 IP 来源能否访问外网宿主机能否访问虚拟机典型用途桥接物理局域网的 DHCP能能直接用虚拟机 IP需要被局域网其他机器访问NATVMware 虚拟 DHCP能能通过 IP 或端口映射单机实验最省事仅主机VMware 虚拟 DHCP不能能纯隔离的测试环境做单机实验我一般选 NAT。原因很直接它不依赖你当前所在的物理网络环境换个 Wi-Fi、接个手机热点都不影响虚拟机上网IP 段固定配置静态 IP 的时候不用考虑和局域网冲突。桥接模式的好处是虚拟机在局域网里显示为一台独立设备别的机器能直接访问它但缺点也明显——你换个网络环境虚拟机的 IP 就得跟着变如果设了静态 IP 反而会导致上不了网。仅主机模式适合做安全测试或者断网实验虚拟机完全出不去只能和宿主机以及别的仅主机模式虚拟机通信。这个模式的坑在于很多人误选了它然后花半天时间去查为什么 yum 装不了软件。3.4 磁盘拆分与预分配这个选项别乱点自定义向导走到磁盘那一步会有两个选项一是将虚拟磁盘存储为单个文件还是拆分成多个文件二是要不要立即分配所有磁盘空间。拆分成多个文件的选项勾上是更好的选择。它会把磁盘切成若干个 2GB 左右的小文件好处是方便拷贝和迁移——单个大文件在跨文件系统复制时更容易出问题而且某些备份工具对小文件更友好。性能上的差异在普通机械硬盘时代比较明显现在 SSD 环境下几乎感觉不到。立即分配所有磁盘空间这个选项勾上之后会立刻在宿主机上生成一个完整大小的磁盘文件。好处是碎片少、写入性能稳定坏处是你给 40GB它就立刻占掉 40GB。做实验的环境没有这个必要不勾让它按需增长就行。还有一个容易被忽略的设置虚拟机的交换文件位置。默认会放在和虚拟机文件同一个目录如果你的系统盘空间紧张可以在虚拟机设置的选项 → 高级里把交换文件指定到别的盘符。这个小设置能让你的 C 盘多活很久。4. CentOS 7.9 安装向导逐屏拆解4.1 引导菜单和介质检测那一步虚拟机开机后会进入引导菜单几个选项分别是Install CentOS 7直接安装、Test this media install CentOS 7先检测介质再安装、Troubleshooting故障排查。如果你前面没做哈希校验建议选第二项让安装程序自己把整个 ISO 扫一遍。它会在屏幕上滚动显示检测进度和每个文件的校验结果全部 PASS 才会进入安装。这一步对老机器或者 USB 启动场景特别有价值。虚拟机上用 ISO 文件启动理论上不太容易出错但如果 ISO 文件本身下载时损坏了介质检测就是最后一道防线。检测完了如果有一堆 FAIL别犹豫重新下镜像。Troubleshooting 里的选项平时用不到但你可能会遇到开虚拟机直接进 GRUB 命令行或者屏幕黑掉的情况这时候可以回来看这个菜单里的Rescue a CentOS system和启动参数调整。4.2 软件选择怎么选才能少装一堆没用的包进入图形安装界面后第一件事是选语言。这里推荐选英文原因不是崇洋媚外而是中文界面下的报错信息和日志搜索起来很麻烦——你拿中文错误信息去搜能搜到的资料比英文少一个数量级。安装完系统之后照样可以装中文语言包和输入法。语言选完之后主界面上有两个必须点进去的项SOFTWARE SELECTION 和 INSTALLATION DESTINATION。左侧那个 SOFTWARE SELECTION 决定了系统装完之后自带什么软件右边那些选项容易让人挑花眼。Minimal Install只有最基本的命令行环境装完约占 1GB 空间。做服务器实验首选干净、启动快、攻击面小。Infrastructure Server在最小安装基础上加了 DNS、DHCP、文件服务等基础设施组件。Server with GUI带 GNOME 桌面的服务器版本方便不熟悉命令行的同学上手。GNOME Desktop完整桌面环境体积最大。Development and Creative Workstation带开发工具链写代码、编译项目方便。我的习惯是纯粹学命令和做服务实验选 Minimal需要什么再单独装要给不熟悉命令行的同事用选 Server with GUI。千万不要为了保险选带桌面的完整版装完之后一堆用不上的服务在后台跑反而增加排查干扰。右侧还有一个勾选项叫Add-Ons for Selected Environment里面能加上开发工具、系统管理工具、安全工具等。Minimal 环境下建议顺手勾上Development Tools可以省掉后面装 gcc、make 这些编译工具时的依赖排查。4.3 安装位置和手动分区怎么切点了 INSTALLATION DESTINATION 之后会看到宿主机分配给你的那块虚拟磁盘。默认是自动配置分区安装程序会按 LVM 方案把磁盘切成 /boot、swap 和根分区。对新手来说自动分区能用但有个问题——默认的根分区在 LVM 上容量是按磁盘比例的后面想扩容或者重建分区会多绕几步。我的做法是选我要配置分区手动切三个分区挂载点建议容量文件系统说明/boot1GBxfs存内核和引导文件1GB 足够swap内存的 1-2 倍swap内存 4GB 以下按 2 倍以上按等量/剩余全部xfs根分区装系统软件分区方案选标准分区还是LVM这是个选择。LVM 的好处是后面可以动态扩容比如你发现磁盘不够用了在 VMware 里扩大虚拟磁盘后用 lvextend 直接扩根分区不用重装。标准分区则更直观出问题了用救援模式挂载和修复都更简单。做实验环境我一般选 LVM因为扩容这个场景早晚会遇到。CentOS 7 的默认文件系统是 xfs不要改成 ext4除非你有明确的兼容性需求——xfs 在大文件和高并发场景下表现更好而且手册和资料绝大部分都是按 xfs 写的。手动分区的时候注意一个细节分完区要确认分区方案下拉框里显示的是你实际建的分区而不是自动生成的。有时候界面上会同时保留自动方案和你手建的方案安装的时候点错就是另一套分区了。4.4 网络与主机名安装阶段就把它打开这一步非常多的人会跳过后果就是装完系统后发现 ping 不通任何东西。CentOS 7 的安装程序里网络默认是关闭的而且网卡的开机自启选项默认也不勾。也就是说即使你在安装时手动打开网络装完之后重启网卡还是不会自动起来。正确的做法是在安装界面点 NETWORK HOST NAME进去后看到 ens33 这个网卡具体名字可能是 ens33、ens160 等取决于虚拟机硬件版本把右上角的开关拨到 ON然后在下面的主机名框里填一个有意义的名字比如node01。填完之后点 Apply 保存。这一步做对了装完系统至少能立刻上网。但更彻底的方案是在这里顺手配置静态 IP省得装完系统再改配置文件。配置静态 IP 需要三个信息IP 地址、子网掩码或前缀、网关地址。NAT 模式下网关通常是虚拟网络里x.x.x.2这个地址具体的网段可以在 VMware 的编辑 → 虚拟网络编辑器里选中 VMnet8 查看。不过我个人更推荐装完系统再用命令行配静态 IP因为安装界面里的网络配置器对新手不太友好字段含义容易搞混。先让它 DHCP 拿个地址装完系统再改配置文件出错了好排查。另外注意 KDUMP 那一项默认是开启的。它的作用是在系统崩溃时把内存内容转存到磁盘用于分析会额外预留一部分内存。做实验环境建议关掉能省下几百 MB 内存而且用不上这个功能。SECURITY POLICY 那一项保持默认就好除非你们公司有统一的合规基线要求。4.5 root 密码和普通用户密码复杂度这个坑分区和网络配完点开始安装安装过程中会提示你设置 root 密码和创建普通用户。这里有个细节如果你设置的 root 密码过于简单比如纯数字或者字典词界面上的完成按钮点了会弹出提示你需要再点一次完成才能强制通过。这不是 bug是安装程序在做弱密码提醒。做本地实验环境密码简单点无所谓反正是隔离的。但有一点要注意如果你打算给这台虚拟机开 SSH 并且暴露到局域网弱密码就是明确的安全隐患收集扫描的机器人几分钟就能试出来。这种情况请老老实实用强密码或者干脆禁用 root 的 SSH 登录只允许普通用户登录后 su。普通用户的创建是可选的但我建议建一个。日常操作都用普通用户加 sudo需要 root 的时候再切这是好习惯。建用户的时候注意勾上将此用户设为管理员否则你的用户不在 wheel 组里sudo 会用不了还得手工去改 /etc/sudoers。5. 首次开机后的收尾动作清单5.1 网卡开机自启以及静态 IP 怎么配系统装完重启用 root 或你创建的普通用户登录第一件事是敲ip addr看有没有 IP。如果 ens33 那一项下面只有inet6的地址或者干脆什么都没有说明网卡没起来。CentOS 7 的网卡配置文件在/etc/sysconfig/network-scripts/目录下文件名是ifcfg-ens33这种格式。用 vi 打开它关键是三个字段BOOTPROTOstatic ONBOOTyesONBOOTyes是解决开机不自启的关键BOOTPROTO改成 static 表示用静态 IP然后补上地址信息IPADDR192.168.100.10 PREFIX24 GATEWAY192.168.100.2 DNS1223.5.5.5 DNS2114.114.114.114这里的 IP 段要和 VMware 里 VMnet8 的网段对应。去编辑 → 虚拟网络编辑器看 VMnet8 的子网地址通常是192.168.x.0网关是192.168.x.2。你要配的 IP 就取同网段下一个没被 DHCP 池占用的地址。VMware 的 DHCP 默认从.128开始分配所以.10到.100这段通常都是安全的。改完之后重启网络服务systemctl restart network再用ip addr确认地址生效然后ping 223.5.5.5测外网连通性ping www.baidu.com测 DNS 解析。两个都通网络这块就算完成了。注意如果systemctl restart network卡住很久最后报错通常是配置文件里写错了一个字符或者网关地址和实际网段对不上。用journalctl -xe看具体报错别硬重启。5.2 CentOS 7 停止维护之后yum 源该怎么处理前面提过CentOS 7 在 2024 年 6 月底结束维护官方主站的 7.9 目录已经下架。所以现在装完系统执行yum update大概率会看到一堆Cannot find a valid baseurl或者 404 错误。这不是网络问题是源地址失效了。解决办法是把/etc/yum.repos.d/目录下那些 repo 文件里的镜像地址指向归档目录。批量处理的命令大致是这样执行前建议先备份整个目录cd /etc/yum.repos.d/ mkdir -p /tmp/repo-bak cp *.repo /tmp/repo-bak/ sed -i s/mirror.centos.org/vault.centos.org/g *.repo sed -i s/^#.*baseurlhttp/baseurlhttp/g *.repo sed -i s/^mirrorlisthttp/#mirrorlisthttp/g *.repo yum clean all yum makecache这几条命令做的事情分别是把域名从主站换成归档站、把被注释掉的 baseurl 释放出来、把失效的 mirrorlist 注释掉。最后清缓存重建索引。国内环境下用阿里云或者清华的归档镜像速度会快很多路径是mirrors.aliyun.com/centos-vault/7.9.2009/这种形式把 repo 文件里的地址整体替换掉即可。各家镜像站的目录结构略有差异替换前先去网页上确认一下实际路径别直接照抄。5.3 SSH、防火墙和 SELinux 的处置策略Minimal 安装默认已经带了 openssh-server装完系统就能用 SSH 连。检查一下服务状态systemctl status sshd如果没起来systemctl enable --now sshd打开并设为开机自启。然后用宿主机的终端工具连一下虚拟机 IP能连上说明网络和服务都正常。防火墙这块CentOS 7 默认用 firewalld默认区域已经放行了 SSH所以内网连 SSH 不会有问题。但如果你要跑 Web 服务、数据库需要额外放行端口firewall-cmd --permanent --add-port8080/tcp firewall-cmd --reload做纯本地实验环境很多人会图省事直接把 firewalld 关掉systemctl stop firewalld systemctl disable firewalld这么干在隔离的 NAT 网络里没什么问题但心里要清楚这是降低了防护等级。如果这台虚拟机要暴露在局域网上别关老老实实按需放行端口。SELinux 是个更微妙的选项。默认状态是 enforcing也就是启用状态。它经常在你配置 Web 目录、挂载共享文件夹、跑自定义服务的时候跳出来拦住你报一堆权限拒绝。很多教程的第一句话就是先关掉 SELinux我不太推荐这种一刀切做法因为关掉之后你会失去一层保护而问题只是被掩盖了等你哪天在别的机器上重开 SELinux同样的坑还得再踩一遍。我的建议是遇到 SELinux 报错先看audit.log里具体的拒绝项用semanage或者chcon针对性地调整策略如果实在调不通又是纯实验环境改成 permissive 模式观察也就是记录但不拦截比直接 disabled 更容易定位问题。# 临时切换到 permissive setenforce 0 # 永久修改需要编辑 /etc/selinux/config把 SELINUXenforcing 改成 permissive 或 disabled注意从 enforcing 改成 disabled 需要重启才生效而 permissive 用 setenforce 立刻生效。5.4 open-vm-tools 和官方 VMware Tools 该装哪个装上工具之后虚拟机才能支持屏幕分辨率自适应、宿主机和虚拟机之间复制粘贴文本、拖拽文件、时间同步这些功能。没有它虚拟机就是一个瞎眼的窗口分辨率锁死在 800x600鼠标在宿主机和虚拟机之间切换还要按 CtrlAlt。现在有两条路线。第一条是装open-vm-tools这是开源实现直接走 yum# 命令行环境 yum install -y open-vm-tools systemctl enable --now vmtoolsd# 带图形界面的环境 yum install -y open-vm-tools open-vm-tools-desktop systemctl enable --now vmtoolsd第二条是挂载 VMware 自带的工具镜像走图形安装向导。这条路常见的问题就是那个让人抓狂的报错继续运行脚本未能在虚拟机中成功运行。如果您在此虚拟机中配置……。这个提示的原因通常有三类缺少 perl 解释器、缺少 gcc 和 make 编译工具、内核头文件版本和当前运行内核不匹配。对 CentOS 7.9 来说我的建议是直接用 open-vm-tools。它在官方源里依赖自动解决升级内核之后不用重新编译模块。官方版 VMware Tools 的优势主要在某些特殊硬件和商业场景普通实验用不上。装完之后重启一次虚拟机然后试试宿主机和虚拟机之间的复制粘贴以及拖动窗口时分辨率是否自适应这两个功能正常就说明工具装对了。5.5 第一件该做的事是拍快照系统刚装好、网络刚配通、工具刚装完这个状态是后面所有实验的起点。在动任何配置之前先拍一个快照。VMware 菜单里的虚拟机 → 快照 → 拍摄快照名字填base-clean或者初始干净系统描述里写清楚当前状态比如CentOS 7.9 Minimal静态 IP 192.168.100.10已装 open-vm-tools。这个描述很重要因为快照存多了之后你根本记不住哪个是哪个。有了这个快照后面你实验玩崩了、配置改乱了、装软件把依赖搞冲突了一键回滚两分钟回到干净状态。这比装第二台虚拟机省事得多也比试图手工卸载软件可靠得多。我见过太多人舍不得花两分钟拍快照最后花两小时重装系统。6. 高频故障的排查链路6.1 虚拟机 ping 不通外网按这个顺序查这是最高频的问题别一上来就重启虚拟机按顺序排查效率最高。第一步ip addr看网卡有没有拿到 IP。没拿到检查ONBOOT是不是 yes、systemctl restart network有没有报错。第二步如果有 IP 但 ping 网关不通检查 IP 和网关是不是同一个网段。子网掩码写错一位地址就跑到别的网段去了。第三步网关通但 ping 外网 IP 不通。这时候去宿主机上检查 VMware 的两个服务有没有跑起来VMware NAT Service和VMware DHCP Service。在 Windows 的服务管理器里找或者在宿主机命令行用 net stop/start 系列命令。这两个服务挂了NAT 模式下虚拟机就出不去。第四步外网 IP 通但域名解析失败。这是 DNS 配置问题检查/etc/resolv.conf里的 nameserver 地址或者网卡配置里的DNS1字段。用nslookup www.baidu.com测一下具体是哪个环节断的。第五步全都通但某个特定网站访问不了。这就不是虚拟机的问题了检查宿主机的网络策略。这五步走下来百分之九十的网络问题都能定位。关键是别跳步很多人跳过第一步直接去改 IP结果问题在 DNS 上白折腾。6.2 VMnet1 或 VMnet8 出现黄色感叹号宿主机设备管理器里看到VMware Virtual Ethernet Adapter for VMnet1或者 VMnet8 带个黄色感叹号网卡显示该设备无法启动这种情况通常是虚拟网卡驱动出问题了。最常见的诱因是系统更新、安全软件清理、或者装过别的虚拟化软件比如 VirtualBox、Docker Desktop 自带的网络组件之后造成的冲突。处理办法按由轻到重来试第一招打开 VMware 的编辑 → 虚拟网络编辑器点左下角的还原默认设置。这个操作会把所有虚拟网络适配器删除重建能解决大部分驱动状态异常。执行前注意你手工配置过的虚拟网络比如自定义的网段、端口映射会被重置需要重新配。第二招如果还原默认设置之后还是感叹号去设备管理器里右键那个网卡卸载设备勾上删除此设备的驱动程序软件然后重启。重启后打开 VMware 的虚拟网络编辑器它会自动重新安装驱动。第三招如果反复出现考虑用官方提供的清理工具把 VMware 彻底卸载一遍再重装。残留的驱动和注册表项是这类问题的根源普通卸载清不干净。6.3 那几个让人看不懂的报错逐个说报错提示实际原因处理方式继续运行脚本未能在虚拟机中成功运行缺 perl、gcc、make 或内核头文件版本不匹配改用 open-vm-tools或补齐依赖再装无法在更新服务器上找到组件请联系技术支持工具更新检查走网络失败虚拟机设置里把工具更新改为手动此虚拟机似乎正在使用中上次异常退出留下 .lck 锁文件关闭 VMware 后删除 .lck 目录再开我已移动该虚拟机 / 我已复制该虚拟机虚拟机文件路径变化后的确认提示原地启动选移动拷贝到别处选复制未找到操作系统引导顺序里硬盘排在光驱后面但光驱是空的检查虚拟机设置里的启动顺序关于我已移动该虚拟机这个选项很多人随手点错。选我已经移动该虚拟机VMware 会保留原来的 MAC 地址和 UUID选我已经复制该虚拟机它会生成一套新的标识。如果你是把虚拟机文件拷到另一台机器上同时保留原机器那台必须选复制否则两台机器 MAC 一样网络会出问题。6.4 主机怎么访问虚拟机里的 Web 服务NAT 模式下宿主机和虚拟机之间是能互相访问的虚拟机可以直接 ping 宿主机 IP宿主机也能直接访问虚拟机的 IP。所以最简单的做法是在宿主机的浏览器里直接输虚拟机的 IP 加端口比如http://192.168.100.10:8080。但有一类场景需要注意宿主机外面的设备想访问虚拟机的服务NAT 模式下就做不到因为虚拟机 IP 是私有的。这时候有两个选择一是改成桥接模式让虚拟机直接暴露在局域网二是做端口映射。端口映射的配置在虚拟网络编辑器里选中 VMnet8点NAT 设置里面有个端口转发的按钮。添加一条规则主机端口 8080虚拟机 IP 填虚拟机的实际地址虚拟机端口填服务监听的端口。配好之后宿主机所在局域网的其他机器访问宿主机IP:8080就会被转发到虚拟机上。顺便说一句虚拟机里跑的服务默认可能只监听 127.0.0.1从外部访问会连不上。检查一下服务的监听地址改成0.0.0.0再用ss -tlnp确认监听状态。7. 把一台机器变成可复用模板7.1 克隆之前必须清理的四样东西一台配好的虚拟机直接克隆会克隆出一堆重复标识导致网络冲突、日志混乱。克隆前要清理这几个地方第一是/etc/machine-id。这是 systemd 用来标识机器的唯一 ID重复会导致某些服务行为异常。清空它然后重新生成rm -f /etc/machine-id systemd-machine-id-setup第二是网卡配置里的 UUID 和 MAC 地址。ifcfg-ens33里如果有UUID和HWADDR这两行删掉。重装之后系统会自动分配新的。第三是 SSH 主机密钥。如果两台机器密钥一样安全上是个隐患rm -f /etc/ssh/ssh_host_*删掉之后下次启动 sshd 会自动重新生成。第四是命令历史和日志。history -c清掉当前会话历史/root/.bash_history和用户的对应文件也删掉/var/log下的日志看情况清理。这一步主要是保持模板干净别把自己填过的密码、临时改过的命令带出去。清完之后关机再拍个快照然后从这个状态开始克隆。7.2 完整克隆和链接克隆怎么选VMware 提供两种克隆方式。完整克隆会生成一套完全独立的虚拟机文件占用和原虚拟机几乎一样大的磁盘空间但独立性强删掉原虚拟机不影响它。链接克隆只在磁盘上记录和原虚拟机的差异部分占用空间小得多但它依赖原虚拟机的磁盘文件原虚拟机被删或者被改链接克隆就废了。我的用法是需要长期保留、独立使用的用完整克隆一次性的测试场景用链接克隆。比如搭三节点集群直接把模板完整克隆三份改改主机名和 IP 就完事省去三次重复的系统安装。克隆出来的机器一定要改三样主机名hostnamectl set-hostname node02、IP 地址、以及上面说的那些唯一标识。改完重启网络确保每台机器 IP 不冲突。7.3 快照的管理和磁盘占用的关系快照不是免费的。每拍一个快照VMware 就会记录下当前磁盘和内存的状态后续所有的写入都会记录到增量文件里。快照层次越深读磁盘时的开销越大性能下降越明显。而且快照文件本身也是要占空间的一个用了半年的虚拟机快照文件有时候比原始磁盘还大。我的习惯是快照不超过三层。通常是初始干净系统一层装好基础环境一层当前实验前一层。实验结束确认没问题就把中间那层删掉合并。VMware 的快照管理器里能看到每个快照占用的空间定期清理一下。还有一个常见误区是拿快照当备份用。快照不是备份它和原磁盘文件在同一个目录下磁盘坏了两个一起丢。真正的备份是把虚拟机整个目录拷到外部存储或者用单独的备份工具做。7.4 删除虚拟机时把目录一起清干净在 VMware 里右键虚拟机管理 → 从磁盘中删除会把虚拟机的所有文件删掉。但有个前提你得确认这个虚拟机的文件目录没有被其他虚拟机引用比如链接克隆的父磁盘就躺在原虚拟机目录里删了原虚拟机那些链接克隆全废。如果你只是想从列表里移除但保留文件用移除而不是删除。移除之后文件还在以后可以重新打开。手工删除目录的时候注意.lck这个后缀的文件夹——如果虚拟机的进程还在跑直接删目录会失败或者留下损坏的文件。正确顺序是先在 VMware 里关机确认进程退出再删目录。如果遇到过关机之后仍然提示文件被占用重启宿主机是最省事的办法。另外如果卸载 VMware Workstation 之后发现网络适配器还留在设备管理器里或者重新装的时候报组件冲突用官方的清理工具跑一遍。这个工具会清掉注册表项和残留驱动比手动删干净得多。我在实际操作中的体会是虚拟机这个东西的复杂度全在配置细节上系统安装本身反而是最简单的部分。真正拉开差距的是网络模式的判断、快照策略的设计、克隆前的清理这些看起来是小事的环节它们决定了你的实验环境是三天两头出问题还是能稳定用上一年。另外强烈建议第一次装完整套流程之后把这台机器的设置项截图存一份——下次再装对着自己的截图走比翻别人的教程快十倍。