
VMware里装Linux这事儿我前前后后折腾了快十年从最早在XP上用Workstation 5.5跑RedHat 9到现在用Workstation 17装CentOS 7.9踩过的坑比很多人写过的教程都多。你搜到这篇说明你已经在找怎么把CentOS跑进虚拟机里了。这个组合确实是入门Linux最经典、最不容易劝退的路径——Windows当底系统不影响日常使用虚拟机里随便折腾装坏了删掉重来也就几分钟的事比直接拿物理机装双系统要稳得多。这篇我按自己的实操习惯把整个流程从头到尾捋一遍。VMware Workstation的下载安装、CentOS镜像的选择、虚拟机的配置参数、系统安装的每一项选择、装完之后的初始化设置、还有最容易翻车的几个坑全部给你掰开揉碎了讲。文章是按我自己当年从零开始学的时候最想看到的标准写的尽量做到每一步都能照着点点完就能通通完就能用。1. 装之前先把这两个东西准备好1.1 VMware Workstation选哪个版本VMware Workstation分Pro和Player两个产品线。Player是免费版功能砍了不少日常学习凑合能用但快照、克隆、高级网络这些实用功能都没有。这里建议直接装Pro版Workstation Pro对个人使用现在已经免费去VMware官网下载就能拿到正版授权不用再满世界找许可证密钥。注意认准官网的下载入口第三方下载站捆绑的流氓软件能恶心你半天。版本选择上新电脑用17.x老电脑或者CPU较旧的用16.x也行。不过Workstation 16以上版本对硬件要求不算低CPU要支持虚拟化技术并且得在BIOS里打开Intel的叫VT-xAMD的叫SVM内存最低8G起步16G才比较舒服。如果你的电脑配置捉襟见肘可以考虑VMware Workstation 15.5这种老版本运行起来更轻快。安装过程没什么玄学一路Next就行。装完第一次启动如果是17 Pro版本安装时会提示输入许可证密钥。个人许可证在官网注册个账户就能申请到。网上流传的各种密钥说实话真假难辨不如直接走官方通道来得干净。1.2 CentOS 7.9镜像下载的注意事项既然是学习用途首推CentOS 7.9。虽然CentOS 7已经在2024年6月停止维护但它的使用基数实在太大网上随便搜个问题都有答案教程也多到泛滥拿来练手正合适。国内下载镜像站推荐阿里云、清华、中科大这三个速度都很快。选版本的时候注意不要选成DVD版以外的其他变种。CentOS的镜像主要有这么几类DVD ISO标准安装盘4G左右包含常用软件包安装时可离线选择大部分软件包推荐用这个Minimal ISO最小安装盘900M左右只带一个光秃秃的内核和最基本的命令适合折腾达人Everything ISO全量安装盘10G左右所有包都在里面一般没必要下这个如果你用CentOS 7.9找名字里带x86_64的DVD版就对了。CentOS 8和Stream版本现在也能用但毕竟Stream的定位偏滚动更新学会了7再往高版本迁移也不难初学者没必要直接硬刚新版本。另外顺手说一句如果你的机器是ARM架构比如Apple Silicon的Mac那VMware的Workstation Pro for Mac跑不了x86的CentOS得用VMware Fusion或者UTM这类别的方案。咱们这篇主要讲x86架构Windows下的场景ARM的情况不多展开。2. 创建虚拟机的关键参数别乱选2.1 新建虚拟机向导里的几个核心选项打开VMware Workstation点击“创建新的虚拟机”。有两个选项“典型(推荐)”和“自定义(高级)”。这里建议选“自定义”别嫌麻烦自定义能让你看到并控制更多参数尤其是磁盘类型和虚拟化引擎后面出问题的时候你就知道多动这几下值不值了。进入向导后到“安装程序光盘映像文件”这一步直接浏览选择你下载好的CentOS 7.9 ISO镜像。VMware会自动识别到“CentOS 7 64位”。客户机操作系统选Linux版本选CentOS 7 64位。这里千万别选错如果选成CentOS 6或UbuntuVMware的虚拟硬件配置和驱动适配会有差异装的时候容易出一些莫名其妙的问题。命名和位置这一步虚拟机名字随意但位置注意别装在C盘系统盘。虚拟机文件动辄几十G放系统盘会把C盘塞满影响整机性能。放D盘或者单独的硬盘分区比较稳妥路径里也尽量不要有中文和空格。2.2 处理器和内存配置的原则处理器配置这里初学者不太容易搞明白“处理器数量”和“每个处理器的内核数量”的关系。简单说你物理机CPU是几核的虚拟机里总共分配几核比较合理。比如物理机是8核你可以给虚拟机分2个处理器、每个2核总共4核。不需要把8核全给虚拟机宿主机自己也要跑东西全给出去会卡到你怀疑人生。内存分配是重点。CentOS 7本身带图形界面的话2G内存能跑但会比较吃力。建议给4G这是体验和性能比较平衡的阈值。如果物理内存16G给4G完全没压力如果物理内存8G给2G也行但桌面环境会明显卡顿。磁盘大小方面建议分20G起步。如果你只是学Linux命令20G够用如果打算装数据库、Docker这类服务直接给30G-40G。硬盘空间不值钱后面扩着难受。2.3 网络类型选择NAT和桥接有什么区别网络这块是大多数人云里雾里的地方。创建虚拟机时网络类型有三个选项桥接模式、NAT模式、仅主机模式。NAT模式默认推荐虚拟机通过宿主机共享IP上网虚拟机对外访问网络没问题但外部设备不能直接访问虚拟机。这就像你家里装了台路由器家里人上网都走同一个宽带出口外人想直接连到你房间里那台电脑就很难。对于学习Linux来说NAT模式完全够用也是最安全省心的方式。桥接模式虚拟机直接和宿主机在同一局域网里等于你的虚拟机和物理机都是这个网络里的独立设备。这个模式适合你需要在局域网内给虚拟机单独分配IP、并且让别人也能访问到虚拟机里的服务时使用。但配置起来要对网段、网关有一定了解初学者留到后面熟悉了再折腾。仅主机模式虚拟机和宿主机之间才能互通虚拟机不能上外网。这种模式适合需要隔离环境做实验的场景一般用得少。初学阶段无脑选NAT就对了能上网又不影响现有网络环境。3. CentOS 7.9安装全程图解关键点3.1 启动安装前的最后检查虚拟机配置参数确认无误后点击“完成”。回到VMware主界面选中这台虚拟机点“开启此虚拟机”。如果之前ISO选对了几秒后屏幕会出现一个黑底白字的界面上面是几个选项Install CentOS 7安装CentOS 7Test this media install CentOS 7检测安装介质并安装Troubleshooting故障排查正常情况下选第一项直接回车。如果装到一半提示找不到安装介质或者校验失败再回来选第二项检测一下但一般不需要。等进度条走完会进入图形化安装界面。如果卡在黑屏或进度条长时间不动大概率是虚拟化没开或者虚拟机配置太低这个后面常见问题里我再细说。3.2 安装信息摘要里必须动的那几项进入安装界面后看到的是一个“安装信息摘要”的界面里面默认配置了很多项有些不用动有些必须改。这里说几个关键项日期与时间区域选Asia/Shanghai也就是上海时区。不改的话系统默认用的是UTC时间后面你看日志、文件时间戳都会差8个小时很影响排查问题。软件选择这是最关键的一步。默认是“最小安装”只有命令行没有图形界面。如果你想要桌面环境点进去选“GNOME桌面”。命令行爱好者可以直接用最小安装但我建议初学者第一次装带桌面的版本毕竟有图形界面兜底很多操作不容易让人手足无措。安装位置点进去选“我要配置分区”然后选择“标准分区”或“LVM”。初学者不用纠结直接选“自动配置分区”也可以系统会帮你合理划分/boot、/、swap这几个目录。如果你想手动分一般建议/boot给500Mswap给内存大小或者2G剩余全部给/。但说实话第一次装自动分区完全是够用的省心不出错。以上三项设置完点左上角“开始安装”进入用户设置阶段。3.3 root密码和用户创建避免踩的坑开始安装之后界面上会要求设置ROOT密码和创建用户。root密码这块没啥技术含量就是别设太简单。需要注意的是root用户是系统超级管理员密码忘了会很麻烦建议设置成你容易记住但又不容易被破解的。创建用户时如果你勾选了“将此用户设为管理员”这个用户就被加入了wheel组可以用sudo提权。这是日常使用最方便的配置建议勾上。安装过程大概5-10分钟取决于你的硬盘速度和给虚拟机分配的配置。等进度条跑完点击“重启”重启之后如果出现一个黑屏界面显示“localhost login:”或者直接进入图形化欢迎界面就说明系统装成功了。4. 装完系统后必做的五件事4.1 VMware Tools安装--别跳过会有大问题很多人装完Linux就急着开始敲命令然后发现鼠标卡在虚拟机窗口里出不来屏幕分辨率也固定在800x600不能调。这基本都是没装VMware Tools的锅。VMware Tools是VMware提供的增强工具包装了之后才能实现鼠标无缝切换、自适应分辨率、共享剪贴板这些功能。CentOS 7的安装盘里自带开源的open-vm-tools所以安装方式很简单在虚拟机终端里执行sudo yum install -y open-vm-tools装完重启一下虚拟机鼠标丝滑分辨率正常一切都舒服了。这一步真的别省不然你在虚拟机和宿主机之间来回捣鼓鼠标都能烦死。4.2 网络配置和ping不通网关的排查安装时默认使用DHCP自动获取IP理论上开机就能上网。但很多人装完CentOS后会发现ping不通外网也ping不通网关。先在终端里执行ip addr看看网卡有没有获取到IP。如果eth0或ens33下面没有inet地址试试sudo dhclient如果还是不行大概率是网卡默认没启用。CentOS 7的网络配置文件在/etc/sysconfig/network-scripts/下通常是ifcfg-ens33。查看这个文件vi /etc/sysconfig/network-scripts/ifcfg-ens33把ONBOOTno改成ONBOOTyes保存退出然后重启网络服务sudo systemctl restart network这一步是解决CentOS 7装完上不了网的最高频操作没有之一。4.3 修改IP地址从DHCP到静态DHCP分配的IP是动态的重启虚拟机可能就变了。如果你后面要在虚拟机上部署服务顺手把IP改成静态比较好。编辑同一个配置文件ifcfg-ens33改成类似下面的内容BOOTPROTOstatic ONBOOTyes IPADDR192.168.xxx.xxx NETMASK255.255.255.0 GATEWAY192.168.xxx.2 DNS1223.5.5.5这里有个关键点在VMware默认NAT模式下网关通常填192.168.xxx.2不是192.168.xxx.1。这个值可以在VMware的“编辑-虚拟网络编辑器”里查看NAT设置确认。很多人IP改成静态后连不上网就是网关填错了。DNS填223.5.5.5阿里DNS或者114.114.114.114114DNS都可以国内环境下223.5.5.5的实际体验会好一些。改完执行sudo systemctl restart network让配置生效。网络这块恕我直言是初学者最容易卡住的地方但也是排查起来最有迹可循的地方。记住一个排查思路先看网卡有没有起来ip addr再看网关能不能通ping网关最后看DNS解析是否正常nslookup域名。按这个顺序排查90%的网络问题都能找到病根。4.4 关闭IPv6和SELinux的实用建议IPv6在国内实际应用环境里对绝大多数学习场景并没有增益反而可能在网络排查时干扰判断。建议直接关掉echo net.ipv6.conf.all.disable_ipv61 | sudo tee -a /etc/sysctl.conf echo net.ipv6.conf.default.disable_ipv61 | sudo tee -a /etc/sysctl.conf sudo sysctl -pSELinux是CentOS的安全增强模块初衷很好但对初学者来说是个绊脚石比如你明明配置了Nginx访问却显示无权限十有八九是SELinux在拦。想顺顺利利地学习建议先把SELinux设为宽容模式sudo sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config sudo setenforce 0注意SELINUXdisabled需要重启后才完全生效setenforce 0只是临时关掉当前会话。如果你后面搞清楚了SELinux的来龙去脉再把它打开也不迟。现阶段省下的排查时间都够你多敲几十条命令了。4.5 yum仓库源换成国内镜像源CentOS 7默认的yum源是官方源在国内环境下慢得让人崩溃。装完系统第一件事个人强烈建议先把源换成阿里云或者清华的镜像源。# 先备份原始的repo文件 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 下载阿里云的repo文件 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 清理缓存并重新生成 sudo yum clean all sudo yum makecache这一步做完你yum install东西的速度会有质的飞跃。5. 虚拟机和系统常见问题排查速查5.1 虚拟机打开或安装时报错“已开启虚拟机监控程序”这个问题在装机阶段最常见打开某个虚拟机时提示“此主机支持Intel VT-x但Intel VT-x处于禁用状态”。这个本质就是CPU虚拟化功能在BIOS里被关掉了。解决方式重启物理机开机按Del或F2进BIOS设置界面找到Intel Virtualization Technology或Virtualization不同主板叫法不同改成Enabled保存退出。这个操作不影响你原有的操作系统和数据放心改就行。5.2 安装CentOS时总是蓝屏或者重启Win10/Win11下装虚拟机蓝屏排查优先级排序如下Hyper-V和内核隔离是否开启。Windows的Hyper-V功能会和VMware抢虚拟化资源导致冲突。解决办法是“控制面板-程序-启用或关闭Windows功能”把Hyper-V、Windows虚拟机监控程序平台、适用于Linux的Windows子系统这几项全部取消勾选。内存是否分配过大。给虚拟机分配超过物理内存一半以上也可能导致内存不足蓝屏。降一降虚拟机内存试试。BIOS里的VT-x没开启。和上面情况一样按前述步骤开启。5.3 宿主机能访问虚拟机但外部机器无法访问这个问题本质是NAT模式的天然限制。NAT模式下虚拟机在VMware自己创建的私有网段里外部设备比如同一局域网的其他电脑无法直接访问虚拟机。解决思路有两条按需选择改用桥接模式让虚拟机和宿主机处于同一局域网这样外部设备可以像访问普通电脑一样访问虚拟机。继续用NAT模式在VMware的“虚拟网络编辑器”里做端口转发把宿主机的某个端口映射到虚拟机的某个端口上。这种方式适合单独开放某个服务比如SSH或Web服务不用改整台虚拟机的网络模式。5.4 虚拟机磁盘空间不够怎么扩容CentOS装好之后用着用着发现磁盘满了这是很多人的痛点。容量不够有两个解决层面虚拟硬盘扩容在VMware主界面“虚拟机设置-硬盘-工具-扩展”填你要扩展后的容量大小。注意这个操作是在物理层面把虚拟磁盘文件扩大不是真正的分区扩容所以做完这一步还要看下一条。分区扩容虚拟机里的分区还是原来的大小不会自动跟着变大。用fdisk和resize2fs可以调整分区但这操作有点技术含量不熟练容易出错。更省心的方案如果你最开始给虚拟机分的是LVM逻辑卷直接lvextend扩容就很方便。所以你看前面提到分区方案时我为什么说“自动分区”也行就是因为自动分区默认就用LVM后面扩容会省不少事。5.5 解压zip文件中文乱码的问题压缩包在Windows下用WinRAR或2345好压压缩时中文文件名默认编码是GBK而Linux下的unzip默认按UTF-8解压就会显示成乱码。最简单的解决办法用unar这个工具替代unzipsudo yum install -y unar unar yourfile.zipunar会自动识别编码方式中文文件名就正常了。如果你不想装新工具也可以试一下unzip -O GBK yourfile.zip不过在部分CentOS版本上unzip可能不支持-O参数。所以还是建议直接用unar一劳永逸。5.6 虚拟机时间比宿主机快8小时怎么办如果你没有设置时区就安装了系统会发现虚拟机里用date命令查看时间比北京时间快了8小时。这跟前面安装时设置时区是同一个问题。如果你已经装完了可以用命令修正sudo timedatectl set-timezone Asia/Shanghai这条命令执行完时间就跟着宿主机的时间同步了不需要再额外折腾NTP。6. 装完CentOS后下一步学什么怎么练系统装好环境跑通很多人突然就不知道该干什么了。这里根据自己的带人经验给几个循序渐进的练习方向第一周目标熟练使用文件操作命令ls、cd、cp、mv、rm、文本查看命令cat、tail、grep、vi编辑器的基本操作。这期间就是大量重复练习比如给文件重命名、批量查看日志文件、在几十个大文本里搜关键字用到什么查什么查完就记下来。第二周目标理解用户和权限体系。创建用户、创建组、设置sudo权限、修改文件属主和属组、调整读写执行权限。这块是入门阶段最难啃的一部分建议结合需求来练比如创建一个只能访问特定目录的账号用来跑某个服务。第三周目标部署一个真实服务。搭建一个LAMPLinux Apache MySQL PHP环境或者简单点Nginx PHP把你的电脑变成一台能跑网站的服务器。这一步做完你对Linux网络配置、防火墙、进程管理、日志排错的理解会突飞猛进。第四周目标用Linux把我的日常生活包起来。比如写个shell脚本自动备份某个目录做一个定时任务每周自动清理日志这些才是真正把Linux变成生产力的东西。我在实际带人的过程中发现很多人被困住的根本原因不是命令记不住而是不知道为什么要做这件事。所以与其看一堆命令手册不如设定一个“做完某些事情”的目标让命令为你的目标服务。还有一个小技巧遇到不懂的命令先用命令 --help或者man 命令查文档再上网搜。自己先理解一遍和别人直接告诉你答案学习效果差距很大。别图快这个阶段扎实点后面你就知道值了。7. 写在最后的几条真心建议虚拟机跑CentOS这件事技术上没有太多难度真正教你东西的是在装的过程中解决问题的思维方式。我见过太多人卡在某个地方就想放弃其实翻车多数就那几个原因——虚拟化没开、网络没配好、SELinux拦路、镜像源太慢这篇文章里基本都讲到了。最后再分享一个小经验建议每完成一个阶段的配置就做个快照。比如刚装完系统可以做第一个快照配好网络再做第二个装完开发环境做第三个。后面不管怎么折腾坏了恢复快照几秒钟就能回到上一个正常状态这种安全感会极大地提升你继续折腾Linux的意愿。快照功能在VMware的“虚拟机-快照-拍摄快照”里记得用起来。等你在虚拟机里把CentOS玩熟了想搞Docker、Kubernetes、数据库、自动化运维都可以在这个基础上继续往里装东西。一台虚拟机不够就再建一台多台虚拟机组个局域网练集群这些都是后话。好了开始你的Linux之旅吧。