ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

VMware虚拟机安装CentOS 7.9最小化系统完整指南

VMware虚拟机安装CentOS 7.9最小化系统完整指南 装机这事干了十几年每次给新环境做基础镜像都得走一遍VMware装CentOS的流程。CentOS 7.9作为7系列最后一个版本生命周期到2024年6月底才结束虽然现在已经进了EOL阶段但存量业务和离线环境里它依然是绝对的主力。这篇把从下载镜像到装完系统、配好网络的完整过程捋一遍重点讲清楚每个步骤背后的原因以及那些一不留神就踩进去的坑。1. 安装前的准备工作下载CentOS 7.9镜像与确认VMware版本1.1 ISO镜像的下载渠道和版本选择逻辑装CentOS 7.9第一步不是急着开VMware而是先把镜像准备好。官方源已经停止维护了现在能正常用的主要是各高校和云厂商的镜像站比如清华 tuna、阿里云 mirrors还有网易的镜像站。下载的时候注意看清楚目录结构CentOS 7.9对应的是7.9.2009这个版本号不需要纠结为什么叫2009那是CentOS的版本命名规则跟发布日期没有直接对应关系。镜像站里一般给几个不同文件生产环境装虚拟机优先选CentOS-7-x86_64-Minimal-2009.iso体积大概不到1GB。这个Minimal版本不带图形界面装完只有命令行跑服务够用也干净。如果你需要装带桌面的开发环境才选DVD版那个4GB多的镜像一般场景用不上下载还浪费时间。还有一个小细节下载完建议核对一下SHA256校验值镜像站通常会提供一个sha256sum.txt文件。别嫌麻烦网络传输出问题导致ISO文件损坏的情况我碰到过不止一次装到一半各种奇怪的报错最后发现是ISO文件不完整。# 以Linux/macOS为例校验下载好的ISO echo 在这里粘贴镜像站提供的校验值 CentOS-7-x86_64-Minimal-2009.iso | sha256sum -c -如果是Windows环境PowerShell里用Get-FileHash命令效果一样。这一步能拦截掉绝大多数装不上的问题。1.2 VMware Workstation版本与虚拟机兼容性VMware Workstation Pro从16到17都在用版本号高低对装CentOS 7.9影响不大但要注意一个兼容性的细节创建虚拟机时选择Workstation版本比如“Workstation 16.x”这决定了虚拟硬件的规格上限。CentOS 7.9的内核是3.10属于比较老的内核如果选太新的虚拟硬件版本虽然多数情况下也能跑但偶尔会出现一些莫名其妙的兼容性小毛病尤其是涉及VMware Tools或者内核模块编译的时候。稳妥做法是选Workstation 16.x这一档CentOS 7.9的支持最成熟。另外VMware Workstation 17对Win 11的Hyper-V共存优化更好如果宿主机开了Windows沙盒或者WSL建议用17版配合新版驱动卡顿感会少很多。不过无论17还是16安装CentOS 7.9这个场景不需要纠结太多装好之后如果虚拟机运行异常再考虑调兼容性。2. 创建虚拟机每个配置项背后的原因2.1 新建虚拟机向导与典型/自定义的选择打开VMware Workstation主界面点创建新的虚拟机。这里会有典型推荐和自定义高级两个选项。我每次都选自定义不是因为典型模式不能用而是自定义模式一步到位把想调整的硬件配置和固件类型都直接定好避免创建完再改的麻烦。进入自定义后选择虚拟机的硬件兼容性这个上面说过了选Workstation 16.x即可。接下来是安装程序光盘映像文件这一步这里有个操作层面很关键的点先不急着加载ISO文件。在客户机操作系统这一步选择Linux版本下拉找到CentOS 7 64位然后虚拟机名称和位置自己定位置建议放到空间充足的盘不要放C盘系统盘里。磁盘容量默认给20GB这个先别改得太小。如果这一步直接选了稍后安装操作系统创建完虚拟机之后再去编辑虚拟机设置里挂载ISO也是一样的效果没有任何区别。我习惯的流程是先用稍后安装操作系统建一个空虚拟机配置好硬件再单独挂ISO去启动安装这样哪些环节出问题一眼就能看出来。2.2 内存、CPU和磁盘的合理分配硬件配置这块的取舍逻辑需要说清楚。CentOS 7.9最小化系统本身占用内存极低512MB就能跑起来但生产环境上跑的实际业务不会只有系统本身。我的建议是内存至少2GB起步有条件给到4GB。不要只给1GB装系统的时候anaconda安装器在图形界面阶段会比较吃内存内存太少偶尔会卡住或者异常退出这点尤其在装了较多软件包时越发明显。CPU2核一般来说够用如果要在虚拟机上编译东西4核也不嫌多。物理机核心数允许的情况下不要给超过物理机逻辑核心数的CPU给虚拟机这会导致性能反而下降。磁盘默认20GB对于最小化系统加常规服务部署是够用的。但如果要装数据库、容器镜像或者缓存类应用建议直接给到40-60GB后头扩容麻烦事多。磁盘类型在自定义向导里可以直接选NVMe或SCSI。SATA盘类型的兼容性最好但从性能角度说NVMe虚拟磁盘在CentOS 7.9下性能会好一些。驱动方面CentOS 7.9对虚拟NVMe设备支持得很好装完系统一般不用额外装驱动就能识别。 需要注意的是虚拟磁盘先单独存成一个单文件还是分割成2GB的小文件这个选项建议保持默认的将虚拟磁盘拆分成多个文件。虽然单文件性能略好但万一文件损坏了拆分模式恢复起来要容易得多。而且新版VMware的默认拆分模式性能损失可以忽略不计。2.3 网络适配器NAT模式与桥接模式的适用场景网络模式是个容易被忽略但实际很关键的配置。VMware提供几种网络模式平时我们最多用的就是NAT模式和桥接模式。桥接模式虚拟机和宿主机在同一个网段相当于局域网里的一台独立机器外部设备可以直接访问虚拟机。适合需要对外提供服务的场景比如在虚拟机里部署测试环境让别人访问。NAT模式虚拟机通过宿主机共享IP访问外部网络外部网络看不到虚拟机虚拟机之间可以通过虚拟交换机互通。适合仅需虚拟机访问外网、不需要外部主动连入的场景。安装阶段建议直接用NAT模式。原因很简单NAT模式不需要跟物理网络环境打交道DHCP分配IP稳定不会出现宿主机换了WiFi虚拟机IP也跟着变这类干扰。装完系统后再根据实际需要切换或配置静态IP。很多新手一上来就选桥接结果公司网络里有DHCP防护或者MAC过滤虚拟机拿不到IP就误以为装系统失败了其实问题和安装本身一点关系都没有。3. 最小化安装的完整流程与分区方案选择3.1 从ISO引导到安装界面选项虚拟机创建完后设置里确认CD/DVD已加载了CentOS-7-x86_64-Minimal-2009.iso启动虚拟机就会出现CentOS 7的安装引导界面。这里只有几个选项Install CentOS 7正常安装Test this media install CentOS 7先校验安装介质再安装ISO源一般不必校验Troubleshooting排障模式直接选第一项。如果有特殊硬件需要加内核参数可以按Tab键在启动项上编辑但现在在虚拟机里装几乎没有这个必要。等它加载完vmlinuz和initrd就会进入图形化的安装界面语言选择选中文-简体中文就好选英文也完全没问题只是界面语言不一样核心流程没有任何区别。3.2 软件选择、磁盘分区、网络与主机名、root密码进入安装主界面后有四个主要配置项需要处理软件选择SOFTWARE SELECTION这一步是区分最小化和带GUI的地方。点击进去左侧选带GUI的服务器右侧选最小安装。我说慢着——如果你要的是标准最小化系统左侧选最小安装就行。左侧列表选最小安装右边默认勾选的就是一组最基础的包集合不带图形界面、不装GUI工具装完直接进命令行。这里有个小技巧如果需要常用调试工具可以勾选中开发工具那一组但默认最小安装包的baserepo里不一定有常用命令安装完系统后单独yum install也可以。安装位置INSTALLATION DESTINATION点击后不需要手动分区保持默认的自动配置分区直接点完成。默认自动分区会用LVM逻辑卷管理把磁盘分成/boot和根卷这种方案在虚拟机里最省事、最稳妥。等到后面需要扩磁盘、加数据盘的时候再学手动分区第一次装机能自动就自动。唯一要注意的是如果磁盘容量想重新分配在安装位置界面底部可以手动配置分区。但在CentOS 7.9里我建议除非你明确知道要分/home、/data这类独立挂载点否则不要手动折腾LVM徒增工作量还容易出错。网络与主机名NETWORK HOST NAME这是安装过程中最容易被忽视的。打开后默认网卡是已关闭状态需要手动打开。把开关拨到开系统就会通过DHCP自动拿到一个IP。主机名可以顺手改掉比如叫localhost.localdomain改为node1或vm-centos之类的业务名。这时候如果网络显示已连接就先安心的继续往下走没连上也不用怕装完系统后再配置是一样的。注意安装界面里开了网卡且用DHCP拿到IP了不代表重启后一定还有这个IP后面还要确认网络配置文件里ONBOOT是不是yes。root密码ROOT PASSWORD设置root密码如果密码强度不够界面会提醒但可以选择完成两次强制使用。建议第一次装就设一个强密码后头再改也行。这些都配置完后点击开始安装。安装过程会跑一阵子期间可以点软件选择或网络与主机名来调整但一般没必要。等安装进度走到100%点重启。3.3 重启后可能遇到黑屏或系统起不来的情况重启阶段偶尔会出问题。最常见的是重启后卡在黑屏或者左上角光标闪烁怎么等都没反应。这事在VMware里出现概率不高但碰到了别慌大概率是虚拟机的显卡显存设置太小或者固件类型不对。处理方法强制关闭虚拟机在编辑虚拟机设置里把显示器的加速3D图形关掉把显存调大一点到64MB或128MB。如果还不行检查虚拟机设置里的虚拟机芯片组和固件类型是否为UEFI还是BIOSCentOS 7.9两种都能引导但如果安装时用UEFI重启卡住改成BIOS重新装一次也行。 一般虚拟化环境下我建议用BIOS也就是传统固件装CentOS 7兼容性最省心UEFI虽然支持也没问题但没必要在虚拟化环境里选它给自己添麻烦。4. 系统装完后的第一件事网络、仓库和基础配置4.1 配置静态IP的方法和“改了不生效”的常见原因重启完进入CentOS的命令行输入root账户和密码登录。这时候最常见的情况是网卡没起来ip addr看网络接口发现没有IP地址这是正常现场。问题根源在于安装界面里你虽然手动打开了网络但CentOS 7默认网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33里ONBOOT还是no按名字看ens33是VMware里最常用的网卡名也有可能是ens32或ens160。这个文件默认生成的配置就是这么保守你要做的第一件事就是把它改成yes。# 查看网卡配置文件 cat /etc/sysconfig/network-scripts/ifcfg-ens33如果走的是DHCP自动获取只需要把ONBOOTno改成ONBOOTyes重启网络服务即可systemctl restart network如果业务需要固定IP则改成如下形式TYPEEthernet BOOTPROTOstatic NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.80.100 NETMASK255.255.255.0 GATEWAY192.168.80.2 DNS1223.5.5.5 DNS2114.114.114.114这里要特别强调GATEWAY的配置。NAT模式下VMware虚拟机的网关一般是虚拟网卡里面那个网段的.2地址具体可以在VMware的编辑-虚拟网络编辑器里查看NAT设置。很多人静态IP配置完ping 192.168.x.1没问题但是一ping 网关就不通十有八九就是网关地址填错了。配置完之后记得systemctl restart network ping -c 3 网关地址 ping -c 3 223.5.5.5注意这里网关通了之后再ping 223.5.5.5如果外部IP通而域名ping不通那就是DNS解析的问题看看/etc/resolv.conf里有没有正确的DNS配置。4.2 yum仓库的本地初始化与在线源配置装完最小化系统下一步一般就是yum update但现在CentOS 7已经EOL原生的mirrorlist.centos.org指向已经失效yum install会报各种Could not resolve host或者404错误。解决办法是把仓库源指向还在提供CentOS 7归档服务的镜像站。比较常用的是阿里云镜像站、清华tuna的centos-vault目录。操作方式就是把/etc/yum.repos.d/CentOS-Base.repo里的mirrorlist和baseurl替换成可用的vault路径。# 以阿里云vault源为例 sed -i s|^mirrorlist|#mirrorlist|g /etc/yum.repos.d/CentOS-Base.repo sed -i s|^#baseurlhttp://mirror.centos.org/centos|baseurlhttps://mirrors.aliyun.com/centos-vault/7.9.2009|g /etc/yum.repos.d/CentOS-Base.repo yum clean all yum makecache这一步做完yum install vim net-tools wget lrzsz这些基础工具就能正常装了。这里有个坑有些镜像站的vault目录下文件名可能带7.9.2009而系统里/etc/os-release显示的版本是7.9两者对应的是同一个版本不影响使用。如果仓库文件被改乱过最简单暴力的办法是把/etc/yum.repos.d/下所有.repo文件都清掉重新写一个干净的repo文件内容只用baseurl指向可用的vault源。 实测下来清华源和阿里源速度都还行如果拉了比较重的依赖包建议加fastestmirror插件自动选延迟最低的镜像yum install -y yum-plugin-fastestmirror4.3 安装VMware Toolsopen-vm-tools和官方tools的选择CentOS 7.9在VMware里装完建议尽快装一套VMware Tools这样才能支持文件拖拽、剪贴板共享、自适应分辨率这些实用功能。安装方式有两种一种是装open-vm-tools这也是VMware官方推荐的方案直接从源里装yum install -y open-vm-tools systemctl start vmtoolsd systemctl enable vmtoolsd另一种是走VMware菜单里的安装VMware Tools挂载虚拟光驱后手动安装。在老项目或者CentOS 7的环境里很多人习惯用VMware官方的tools包因为它带一些vmware-hgfs相关的内核模块可以支持更细粒度的宿主机文件夹共享。我的建议是优先用open-vm-tools。CentOS 7的内核版本和open-vm-tools的适配已经很成熟了装上就能用不用编译内核模块省去装kernel-devel和gcc的麻烦。只有当open-vm-tools在特殊应用场景比如需要跟VMware的某些高级功能联动里出现兼容性问题时才考虑用VMware官方tools。5. 装完之后常见的坑网络不通、无法SSH、yum源失效5.1 ping不通网关或外网排查链路与解决手段装完系统后最让人心态崩溃的就是网络问题。我按排查链路整理一下先看网卡状态ip addr查看网卡是否有IP没有就检查/etc/sysconfig/network-scripts/ifcfg-ens33里的配置BOOTPROTO、ONBOOT、IPADDR这些字段对不对改完之后systemctl restart network。ping网关网关不通就是虚拟网络编辑器里NAT网段和虚拟机IP不在同一段或者宿主机防火墙拦了VMware的虚拟网卡流量。可以打开VMware的虚拟网络编辑器把VMnet8子网IP记下来再改ifcfg文件里的IP和网关保证在同一网段。ping外网IP通但域名不通DNS配置问题。检查/etc/resolv.conf或者直接在ifcfg里追加DNS1、DNS2。全都不通确认宿主机网络正常虚拟机网络NAT模式下只有宿主机能共享上网宿主机断网虚拟机当然也断网。还有一个隐蔽的坑CentOS 7的NetworkManager服务可能会跟network服务抢网卡控制权。如果你按传统方式改了ifcfg-ens33重启后不生效可以在/etc/sysconfig/network-scripts/ifcfg-ens33里加一行NM_CONTROLLEDno再重启network服务避免NetworkManager又把配置覆盖回去。5.2 SSH连不上firewall和sshd配置一起查最小化系统默认是装了OpenSSH Server的一般重启之后SSH直接能连。但很多人在VMware的NAT模式里宿主机去连虚拟机IP发现连不上。这时候两个地方要查一是systemctl status sshd看服务是不是起来了没起来就systemctl start sshd systemctl enable sshd。二是防火墙没放行22端口。CentOS 7默认的firewalld是开启的最小化安装也带firewalld服务。# 查看防火墙状态 firewall-cmd --state # 永久放行SSH服务 firewall-cmd --permanent --add-servicessh # 重新加载防火墙规则 firewall-cmd --reload粗暴一点的方式是直接停掉防火墙但那是测试环境才干的事。生产虚拟机老老实实放行端口千万别关防火墙。这里也顺带提一下如果用的是NAT模式宿主机要访问虚拟机不需要在VMware里做端口映射直接访问虚拟机当前IP就行NAT模式和桥接模式的区别就在于“出网”方向和外部主动访问的可见性。想从局域网其他机器也要访问虚拟机就切到桥接模式。5.3 磁盘空间不足的教训/boot分区和yum缓存CentOS 7默认自动分区方案下/boot分区只有约1GB内核升级、旧内核太多时容易爆掉。最小化系统还好但一旦频繁yum update旧内核不会自动清除/boot空间可能不够导致更新失败。解决办法是定期清理旧内核# 查看已安装的内核 rpm -qa | grep ^kernel # 删除旧的、当前运行版本以外的内核包 yum remove kernel-旧版本号yum install的缓存也会占磁盘空间用yum clean all定期清一下。这都是最小化系统长期运维的基础习惯装完就养成习惯后头少操心。还有一个建议CentOS 7.9装完后尽早做一次系统快照。VMware的虚拟机很方便在系统干净、网络配置完成、yum源可用这个状态下打个快照后面不管是配置改崩了还是软件装废了一个回滚就搞定比重装系统省时间太多。打快照的时机很关键一定是刚装完系统且能联网的时候而不是等装了一堆东西之后再打那快照体积大回滚了还得重新配环境。6. 结合实际使用场景的进一步优化建议6.1 时区同步与基础内核参数调整装完CentOS 7.9通用的基础配置里还有两项容易被忽略时区和时间同步。虚拟机默认时区可能是UTC跟宿主机时间对不上日志排查时会疯掉的。# 设置时区为上海/北京时间 timedatectl set-timezone Asia/Shanghai # 开启NTP时间同步最小化系统默认带了chrony systemctl start chronyd systemctl enable chronyd timedatectl set-ntp yes如果虚拟机所在环境不允许出外网做NTP同步就把chrony.conf里的server地址改指向内网NTP服务器。另外可以顺手把/etc/sysctl.conf里的一下常用内核参数做做调整比如net.ipv4.ip_forward在需要做内网转发的时候才需要开默认不用动。6.2 最小化系统后续装软件时的源依赖和依赖包最小化系统跟DVD完整版的差异在实际装软件时体现得特别明显。你可能会遇到yum install xxx时报缺依赖比如libX11、libXext这类东西其实都是因为minimal包里没有图形相关的库。这不算问题因为最小化系统本来就不需要这些库装依赖时让yum自动解析就行。唯一要注意的是yum源里如果既有Base仓库又有EPEL仓库EPEL仓库的包可能会覆盖部分基础包装之前看清楚。需要EPEL源时yum install -y epel-releaseEPEL源对CentOS 7的支持也有对应EOL的问题同样可能需要把源地址调整到vault镜像。一句话总结就是凡是官方仓库失效的问题就找vault镜像顶上凡是依赖缺包的问题先yum install -y epel-release再装就能解掉大部分。整个VMware装CentOS 7.9的最小化流程走下来真正卡人的环节往往不在安装本身而在系统装完之后的网络和源配置上。把这几个点提前想清楚整个流程能顺畅很多。
返回列表