开头干运维和做开发的朋友几乎都躲不开 VMware CentOS 这套组合。我最早是在一台 8G 内存的老笔记本上折腾虚拟机那时照着网上教程一步步点结果装完不是网络不通就是开机黑屏后来才发现一大半问题都出在最基础的步骤上。这篇就以 VMware Workstation 为宿主带你完整走一遍 CentOS 的安装配置全流程从镜像下载、虚拟机创建到系统分区、网络固定 IP再到 VMware Tools 和快照这些必做项每一步会解释为什么这么选、有哪些坑。无论你是刚接触 Linux 的初学者还是想在本地搭环境做实验的开发者按这个流程走完基本不会再被“装好却用不了”的问题卡住。1. 装系统前的资源准备版本、镜像和宿主机评估很多人上手就下载 VMware、下载 CentOS然后一路下一步结果装到一半发现镜像不对、磁盘不足、网卡型号不兼容只能推倒重来。准备工作做足后面能省一半折腾时间。1.1 版本选择VMware 和 CentOS 到底怎么配对先说 VMware。目前主流是 VMware Workstation Pro 16 和 1717 对 Windows 11 和较新的 CPU 支持更好界面也更清爽。如果你手头有正版授权就用正版没有的话可以先用试用版或者使用个人免费许可博通收购后已经宣布 Workstation Pro 对个人用户免费直接去官网下载即可。不建议用太老的 15 及以下版本对新版 CentOS 的内核和显卡适配不好。再说 CentOS 版本。CentOS 8 已于 2021 年底停止维护CentOS 9 Stream 是滚动更新版生产环境用得更多的是 7.9。虽然 CentOS 7 的官方维护也在 2024 年 6 月结束了但对于本地学习、测试、跑 Docker 和常规服务来说7.9 的资料量最大、兼容性最稳、第三方软件源最全所以我这篇以 CentOS 7.9 为例。如果你打算长期学新特性可以直接用 CentOS Stream 9 或换到 Rocky Linux / AlmaLinux但操作步骤基本一致照搬没问题。1.2 镜像下载别直接在第三方站乱下CentOS 7.9 的镜像一般有 DVD、Minimal、Everything 三种版本。DVD 版自带常用软件包安装时能选的组件多适合大多数场景Minimal 版只有最基础的系统装完连网卡命名都要自己适应适合想从零手动搭环境的朋友Everything 版包最全但镜像体积大、下载慢除非你完全离线部署否则没必要。下载渠道推荐清华开源镜像站、阿里云镜像站或者 CentOS 官方镜像列表。这里有一个关键细节下载完一定要校验 SHA256 校验和防止文件损坏或不完整。我曾见过有人下了个半截镜像安装时卡在 “无法读取安装源” 上折腾一整天才发现是文件损坏。校验命令很简单在 Linux 下用sha256sum CentOS-7-x86_64-DVD-2009.iso在 Windows 下用 PowerShell 执行Get-FileHash .\CentOS-7-x86_64-DVD-2009.iso -Algorithm SHA256拿结果和镜像站提供的值比对一致再开始。1.3 宿主机资源评估给虚拟机分多少才不卡创建虚拟机前先确认宿主机物理内存和磁盘剩余空间。CentOS 7 的图形化安装最低要求 1GB 内存但实际跑起来不卡至少建议 2GB如果你后续还要在里面跑 Docker、Kafka、数据库这些建议分 4GB 以上。CPU 核心数可以按宿主机逻辑核的一半左右分配比如 8 核机器给 4 核。磁盘方面系统安装本身用不到 10GB但后续装软件、下镜像、做实验会很快膨胀建议直接给 60GB 到 80GB 的虚拟磁盘别一次性分太大占着真实空间也没关系VMware 默认是动态增长只有真正写入数据才会占用宿主机磁盘。这里有个常见误区给虚拟机分配 100GB 并不意味着立即占用宿主 100GB所以空间上不用太抠。2. 创建虚拟机的核心步骤与参数决策准备工作做完了开始动手创建虚拟机。这一阶段看起来就是“点几下向导”其实里面每个选项都会影响后续使用重点说三个地方向导类型、硬件参数、网络模式。2.1 向导选择用“自定义”而不是“典型”VMware 新建虚拟机时提供“典型”和“自定义”两种方式。“典型”虽然快但默认配置可能不是最优比如网卡走 NAT、磁盘格式、虚拟化引擎都可能不是你要的。建议选“自定义”这样能一步步确认所有选项。创建流程是文件 - 新建虚拟机 - 自定义(高级) - 下一步 - 选择“稍后安装操作系统”。这里别选“安装程序光盘映像文件(iso)”因为稍后还要调整硬件提前挂载镜像容易出幺蛾子。接着客户机操作系统选择“Linux”版本在下拉里选 “CentOS 7 64位”。这一步决定了 VMware 给你虚拟机的 BIOS/UEFI 类型、虚拟网卡型号、IO 控制器类型选错了后面很麻烦。2.2 硬件参数内存、CPU、磁盘和虚拟化引擎的权衡处理器设置里处理器数量填 1每个处理器的核心数量按你之前的资源评估填 2 到 4。虚拟化引擎勾选“虚拟化 Intel VT-x/AMD-V/RVI”前提是宿主机 BIOS 里已开启虚拟化技术。这一步很多新手忽略导致虚拟机里 64 位系统装不了提示 “此主机支持 Intel VT-x但 Intel VT-x 处于禁用状态” 之类以后跑 KVM 嵌套虚拟化也会失败。内存建议 2048MB 起步如果你打算做编译或大数据实验直接给 4096MB 或更多。内存设置有两个注意点一是不要超过宿主机物理内存的一半否则宿主机和虚拟机一起卡二是“预留所有虚拟机内存”这个选项非必需勾了反而限制宿主机内存动态调度不建议开。网络类型这里我单独再说建议先用 NAT。原因后面 2.3 小节展开。磁盘设置里虚拟磁盘类型选 NVMe 还是 SCSICentOS 7.9 和较新的 VMware 版本都支持 NVMe性能更好如果选 SCSI 也没问题兼容性更广。磁盘容量给 60 到 80GB选“将虚拟磁盘拆分成多个文件”。拆分文件的好处是便于移动、备份和挂载缺点是单文件性能略低一点点但日常使用感受不出差异。如果你后续要把虚拟机拷贝到别的机器或上传到服务器拆分文件会方便很多。2.3 网络模式NAT、桥接、仅主机到底怎么选VMware 提供三种网络模式这也是初学者最容易懵的地方NAT 模式虚拟机通过宿主机共享 IP 上网宿主机相当于一个 NAT 网关。虚拟机之间可以互相通信虚拟机也可以访问外网但外部设备无法直接访问虚拟机。这个模式最适合学习和测试因为不需要占用局域网 IP也不受路由器限制拔了网线换个 WiFi 都不影响虚拟机上网。桥接模式虚拟机直接和宿主机在同一局域网内拥有独立 IP就像一台真实的主机接到你的交换机上。外部设备可以直接访问虚拟机适合做服务器测试比如要发布 Web 服务给局域网其他机器访问就用桥接。仅主机模式虚拟机只能和宿主机通信不能访问外网。适合做隔离实验比如测试恶意软件、搭建完全封闭的环境。日常学习建议 NAT后文固定 IP 配置也是基于 NAT 来写。很多人一上来就选桥接结果宿舍或公司局域网本身有限制、路由器开了 AP 隔离虚拟机分不到地址折腾半天其实不是系统问题是网络模式选错了。2.4 虚拟机文件存放和数据备份的坑向导快结束时会让你选虚拟机文件的存储位置。默认在C:\Users\用户名\Documents\Virtual Machines\但这个位置有两个问题一是 C 盘空间紧张容易导致磁盘满进而虚拟机运行异常二是系统重装或还原时虚拟机文件可能被删掉。我习惯单独建一个D:\VMs或E:\VirtualMachines目录把所有虚拟机放在一起方便集中管理和备份。这里多说一句备份虚拟机的核心文件是.vmx虚拟机配置和.vmdk虚拟磁盘。不要直接复制正在运行的虚拟机的 vmdk 文件那样容易损坏。正确做法是关机后复制或者用 VMware 的“克隆”功能生成副本。定期打快照也可以起到备份作用但快照不能替代整体备份因为快照文件依赖原始 vmx/vmdk。3. 安装 CentOS 7 系统的完整实操虚拟机创建好了接下来挂载镜像并安装系统。这一步是整个流程里最耗耐心、也是出错最多的阶段我会把每一步的选择和背后的原因说明白。3.1 挂载镜像、启动并进入安装界面在虚拟机设置里CD/DVD 选项选择“使用 ISO 镜像文件”浏览到你下载的 CentOS 7.9 DVD 镜像。记得把“启动时连接”勾上然后开启虚拟机。启动后会看到 CentOS 的引导界面第一项 “Install CentOS 7” 是图形化安装第二项 “Test this media install CentOS 7” 会先校验光盘/镜像再安装。理论上第一次装建议选第二项但如果你已经校验过 SHA256直接选第一项节省时间。接着会让你选安装语言中文用户选“简体中文”就行。不要担心英文水平选中文环境后面安装界面全中文很多选项一看就懂。然后进入安装主界面这里有几个关键配置项软件选择、安装位置、网络和主机名、根密码等。3.2 软件选择最小化安装还是带 GUI软件选择那里默认是 “最小安装”只有命令行界面适合服务器场景。如果你刚接触 Linux建议选 “带 GUI 的服务器” 或者直接选 “GNOME 桌面”。前者会装上图形界面和常用运维工具适合既想体验桌面又想保留服务器特性的需求后者是纯桌面环境类似装了个 CentOS 桌面的 Windows。我的建议是如果主要目的是学习 Linux 命令和管理选最小安装就够了因为图形界面会多装几百个软件包既占内存又干扰学习如果非要用浏览器、图形化工具选带 GUI 的服务器。这里还要注意软件选择会影响后续磁盘分区方案。如果在 “安装位置” 里点 “我要配置分区”那么不管选什么软件包你都可以自己规划分区结构。新手如果什么都不动直接点“安装位置 - 完成”系统会自动使用 LVM 自动分区这样通常也能用但后续扩容时你会发现 / 分区和 swap 分区的分配不一定合理。所以我建议手动分区。3.3 分区方案/boot、swap、/ 的大小怎么定在安装位置界面选择“我要配置分区”然后点左上角的“完成”进入手动分区。磁盘分区方案选“LVM”这是 Linux 常用的逻辑卷管理机制好处是以后可以动态调整大小比直接使用标准分区灵活。接下来创建以下挂载点/boot放内核和引导文件建议 1024 MiB。用 ext4 文件系统不要用 LVM因为引导加载器对 LVM 的依赖程度低一些划分独立分区更稳定。swap交换分区建议大小等于物理内存的大小。如果内存给了 4GBswap 就给 4096 MiB。如果内存很大超过 16GB可以适当减到内存的一半。swap 在物理内存不足时充当“溢出区”太小会导致内存吃紧太大则浪费磁盘。/根分区分剩余全部空间。把所有剩余空间都放进根分区以后不用担心 / 满了。你也可以单独分出 /home但默认建议根部全给 /更省心。还有一种常见做法是单独挂载/data或/opt用于放置数据和软件但这通常是在生产环境里基于清晰的管理边界考虑的。本地实验只需要 /boot、swap、/ 三段就够。分区创建完后在“接受更改”前务必确认 “目标磁盘” 选的是虚拟磁盘千万别在真实磁盘上瞎分区。确认无误后接受更改回到安装主界面。3.4 网络与主机名安装过程中就把 IP 弄好安装主界面里点击“网络和主机名”先把主机名改成你喜欢的格式比如localhost.localdomain或者自定义一个centos7-node。然后打开以太网开关也就是把网卡设为启动状态。如果使用 DHCP此时会自动获取到 NAT 网段的 IP比如 192.168.x.x。为了后续连接方便我建议在安装阶段就设置静态 IP而不是等装完再改。点击“配置”进入 IPv4 设置方法改为“手动”添加一个地址比如 NAT 网段是192.168.88.0/24网关是192.168.88.2DNS 填8.8.8.8和223.5.5.5。这里网关和网段怎么知道打开 VMware 的“编辑 - 虚拟网络编辑器”选择 NAT 模式的 VMnet8里面会显示子网 IP 和 NAT 网关地址。不同版本的默认网段不一样一定要先查再填。如果你在这里没设置好 IP装完也可以手动改网卡配置文件但稍微绕一些所以安装时直接一次性配好会省很多事。3.5 设置 root 密码与创建普通用户安装主界面里点“根密码”设置 root 密码。密码别太简单至少大小写字母加数字组合。同时可以创建普通用户勾选“将此用户设为管理员”。这里不要图省事只建 root 用户日常操作尽量用普通用户需要提权时用sudo能减少很多误操作风险。设置完这些后点击“开始安装”等待安装进度条走完。完成后点击“重启”重启后首次进入需要接受许可证就是那个“LICENSE INFORMATION”界面点进去勾选“我接受许可协议”再点“完成配置”。不做这一步你可能永远停在 unconfigured 状态没法进入系统。4. 装完必做的系统配置和优化系统能开机只是第一步装完 VMware Tools、配置网络、确认防火墙这些才是最影响使用体验的部分。4.1 VMware Tools 的安装用 open-vm-tools 还是官方工具VMware Tools 的作用包括自动适应分辨率、支持剪贴板共享、鼠标无缝切换、提升磁盘 IO 性能等。如果没装这个你会发现全屏模式下分辨率不对、鼠标卡在窗口边缘、复制粘贴操作失效特别影响体验。安装方式有两种。第一种是安装官方 VMware Tools在虚拟机菜单栏点击“虚拟机 - 安装 VMware Tools”系统内会挂载一个 CDROM解压VMwareTools-*.tar.gz然后运行./vmware-install.pl一路回车默认安装。这种方式最通用但不同版本可能会有内核编译依赖需要提前装好gcc、kernel-devel这些包。第二种是安装 open-vm-tools它是开源的 VMware 虚拟化工具包已经被主流 Linux 发行版收录用yum install -y open-vm-tools就能装。CentOS 7 的源里有现成包安装后无需编译稳定性和兼容性比官方工具还好我目前个人推荐这种方式。装完重启虚拟机分辨率一般会自动适配剪贴板共享也就生效了。如果你想装官方工具但遇到 “准备 32 位服务失败” 这类提示多半是缺少 32 位库装上对应的glibc.i686一般能解决。不过既然有 open-vm-tools不折腾官方工具也完全够用。4.2 网络配置静态 IP、DNS、重启后不失效的问题安装时如果没来得及配静态 IP现在在命令行里也可以改。CentOS 7 的网络配置文件在/etc/sysconfig/network-scripts/ifcfg-ens33设备名可能是ens33或ens160。打开这个文件修改以下内容TYPEEthernet BOOTPROTOstatic IPADDR192.168.88.129 NETMASK255.255.255.0 GATEWAY192.168.88.2 DNS1223.5.5.5 DNS28.8.8.8 ONBOOTyes改完执行systemctl restart network或service network restart。如果提示重启网络失败先检查 IP 是否和宿主机冲突再看网关对不对。注意 CentOS 7 里网络管理服务可能是 NetworkManager重启网络的命令有时会被拦截可以执行systemctl restart NetworkManager试一下。测试连通性时先ping 192.168.88.2测网关再ping 8.8.8.8测外网 IP最后ping baidu.com测 DNS 解析。如果 IP 能通但域名解析不了基本是 DNS 配置有问题。有人会奇怪为什么ping baidu.com提示 unknown host那多半是/etc/resolv.conf里的 DNS 配置被 NetworkManager 覆盖了。确认 /etc/sysconfig/network-scripts/ifcfg-ens33 里 DNS 配置正确再重启网络服务。另外CentOS 7 自带 firewalld 防火墙默认开启。如果你要测试 HTTP 服务记得执行firewall-cmd --permanent --add-servicehttp然后firewall-cmd --reload否则外部访问不了。出于学习目的如果不想被防火墙干扰也可以直接systemctl stop firewalld并systemctl disable firewalld但务必清楚这只是本地实验环境的选择。4.3 快照与克隆装好环境的两种“后悔药”系统刚配置干净时第一件事就是打快照。快照相当于一个“时间还原点”系统搞挂了、软件装坏了几十秒就能回滚。在 VMware 菜单栏点“虚拟机 - 快照 - 拍摄快照”填个名称比如 “初始安装完成”就行。快照建议在系统干净时打之后每完成一个重要配置比如装好 Docker、配好 Java再打一个。克隆则适合要复制多套相同环境做集群实验的场景。克隆前必须关机右键虚拟机 - 管理 - 克隆。如果选择了“链接克隆”会共享原始磁盘数据省空间但原始虚拟机坏了克隆也会受影响“完整克隆”是完全独立的副本更保险只是占更多磁盘空间。克隆出来的虚拟机会生成新的 MAC 地址但网卡配置文件里可能还写着原来的 MAC 和 UUID启动后网络可能不通处理办法是删除 70-persistent-net.rules 或重新配置 ifcfg 文件具体问题在下一节梳理。5. 常见问题与排查技巧实录装机的过程中总会遇到一些让人摸不着头脑的问题我把自己踩过的坑和身边人常遇到的汇总一下方便你对照排查。5.1 安装时黑屏、卡在启动界面怎么办如果是启动虚拟机后黑屏但能看到光标闪烁或者有启动声音多半是虚拟机分辨率或显卡兼容性问题。可以在 vmx 配置文件里加一行mks.enable3d FALSE禁用 3D 加速也可以尝试在虚拟机设置里把显卡显存从默认调低或调高试试。还有一种情况是 VMware 和新版 Windows 的 Hyper-V 冲突表现为启动虚拟机后一直卡在带小点的黑屏界面。解决办法是在 Windows 功能里关闭 Hyper-V、虚拟机监控程序或者用管理员权限运行bcdedit /set hypervisorlaunchtype off后重启。这个坑我在装 Ubuntu 时遇到过CentOS 也一样可能触发。如果安装界面卡在 “Installing ...” 长时间不动不要急着关有可能是磁盘 IO 慢或者在后台执行安装脚本。先等 10 到 15 分钟。如果还不动检查宿主机磁盘空间是否足够安装过程中虚拟磁盘要增长宿主机空间不足会导致写入卡死。安装时如果报错 “No network devices available”通常是虚拟机网卡型号和系统内核不兼容。建虚拟机时网卡选 e1000 或 vmxnet3 试试一般 e1000 兼容性最好。5.2 装好了却 ping 不通外网排查顺序要固定网络问题排查的顺序很关键我经常遇到用户 ping 不通第一个反应就是重配 IP其实最快的方法是按 “虚拟网卡 - 宿主机防火墙 - 虚拟机网卡配置 - DNS” 的顺序逐层排查。先在宿主机上 ping 一下虚拟机的 IP如果不通检查 VMware 服务是否在运行尤其是VMware NAT Service和VMware DHCP Service。这两个服务在 Windows 服务管理里右键启动并设为自动。很多精简版或绿色版 VMware 不会自动安装这两个服务NAT 模式下虚拟机自然无法上网。再进虚拟机 ping 网关比如ping 192.168.88.2。如果不通大概率是 ifcfg 文件里 BOOTPROTO 还是 dhcp但网卡没从 DHCP 拿到地址改成 static 并配置正确的网关后重启网络。如果网关通了但外网 IP 不通检查宿主机防火墙是否拦截了 NAT 流量可以先临时关闭 Windows 防火墙测试。如果外网 IP 通了但域名解析不了重点排查 DNS。这些排查顺序可以用一张表总结现象排查方向常用命令/操作虚拟机之间互不通VMware 网络模式是否一致、网段是否冲突虚拟网络编辑器统一检查 VMnetping 不通网关网卡未启动、IP 配置错误ip addrsystemctl restart network外网 IP 不通宿主机防火墙、NAT 服务异常检查 VMware NAT/DHCP 服务域名解析不了DNS 配置错误或 DNS 服务不可达cat /etc/resolv.confnslookup baidu.com5.3 后来发现磁盘不够用扩容最稳妥的方式CentOS 7 装完用一段时间磁盘空间可能告急。如果你当初用 LVM 分区扩容很方便。整体思路是先扩大虚拟磁盘大小再在系统里扩展 LVM 逻辑卷和文件系统。具体步骤关机在虚拟机设置里把磁盘大小从 60GB 调到 80GB开机进入系统执行lsblk确认 sda 分区大小已经变成 80GB。然后依次执行growpart /dev/sda 3 pvresize /dev/sda3 lvextend -l 100%FREE /dev/mapper/centos-root xfs_growfs /这里有几个前提你的根分区是 LVM 的第三个分区通常是/dev/sda3卷组名和逻辑卷名可能不同用vgdisplay和lvdisplay查看确认。如果你当初用的是标准分区而不是 LVM扩容步骤会很麻烦需要新建分区再挂载这也是我在前面强调用 LVM 的原因。扩容最常见的报错是growpart命令找不到先yum install -y cloud-utils-growpart装上。如果显示NOCHANGE说明分区已经是最大了先确认虚拟磁盘大小在 VMware 设置里真的改了且虚拟机是关机状态下改的。扩容不需要重装系统但任何涉及分区和文件系统的操作都应该提前打快照这是我反复强调的。5.4 开机后网卡编号变了eth0 变 ens33 不习惯CentOS 7 默认采用一致性网络设备命名网卡名不是传统的 eth0而是基于物理位置命名的 ens33、ens160 等。对习惯用 eth0 的人来说可能不习惯但这不是故障不用强行改回 eth0。如果你实在想改需要在 grub 内核参数里加net.ifnames0 biosdevname0然后重建 grub2 配置重新生成 /etc/udev/rules.d/70-persistent-net.rules这会引入很多不确定性本地学习没必要折腾。克隆虚拟机后网卡不通的问题也和这个命名机制有关。克隆会把原系统的网卡配置带过去但新机器网卡的 MAC 地址变了ifcfg 文件里的 UUID 和 HWADDR 还指向旧机器导致网卡起不来。解决办法是编辑/etc/sysconfig/network-scripts/ifcfg-ens33把 HWADDR 一行删掉UUID 也删掉或改成新的然后重启网络。如果还是不行检查/etc/udev/rules.d/下有没有遗留的网卡规则文件有就删掉重启。结尾玩 VMware 和 CentOS 这些年我最大的体会是“会装系统”不等于“会用系统”。很多问题比如网络不通、磁盘不够、克隆后起不来其实都源于最开始的几个决策——镜像版本选没选对、网络模式用没用对、分区方案够不够灵活。把这几个基础打牢后面不管是学 Docker、跑数据库还是搭集群都能少走很多弯路。最后再分享一个小习惯每次装完一个阶段性的干净环境立刻打一个快照搞崩了三十秒就能回来这个成本低、收益大的动作真希望我在第一次装 CentOS 时就知道。