CentOS 7.9虚拟机安装全攻略:从镜像下载到故障排查
写这篇的原因很直接CentOS 7.9 在服务器场景里的使用率实在太高了不管是学习 Linux、搭个开发环境还是给公司内部跑点服务装 CentOS 都是第一道坎。网上教程不少但要么跳步骤要么只讲“照着点下一步”遇到问题就干瞪眼。这篇就把我这些年给客户、给同事、给自己装 CentOS 7.9 的完整流程和踩过的坑全部摊开从镜像下载、虚拟机创建到安装后的初始化配置和故障排查一条龙讲完。不管你是第一次碰 CentOS 的新手还是以前“会装但总出小毛病”的老手按这篇操作基本不会翻车。核心关键词就是CentOS 7.9、VMware 虚拟机、镜像下载、分区方式、网络配置、故障排查。看完你不仅能装出一个能用的系统还能理解每一步为什么要这么做。1. 装系统前的准备版本选择与镜像下载1.1 为什么要用虚拟机而不是直接装物理机很多第一次接触 CentOS 的读者会纠结是不是得找一台空电脑做启动盘然后把 CentOS 直接刷进硬盘里这个思路没错但如果你是学习用途或者需要做实验、跑测试环境我非常不建议直接往物理机上灌系统。原因有三个物理机装完就没有回头路了想换回 Windows 或者升级配置都得多折腾一轮。CentOS 安装过程中如果分区出错、引导写坏物理机上恢复数据的成本很高很可能直接丢资料。虚拟机可以随时快照、随时回滚比如你在 Linux 上想试试某个配置改了系统起不来了用快照一键还原比重装快太多了。所以我这里的教程默认基于 VMware Workstation。VMware 是目前最常用的桌面级虚拟机软件操作逻辑清晰和 CentOS 的兼容性也极好。如果你用的是 VirtualBox思路一致只是界面和部分菜单名称不一样参考着来也不会有大问题。1.2 版本选择的纠结7.9 还是 8.x 还是 Stream打开 CentOS 官网或者各大镜像站你会看到一堆版本号常见的有 CentOS 7.9CentOS 8.x还有 CentOS Stream 9。这里真的踩过太多坑我直接给你结论。CentOS 7.9目前最稳、企业存量最大、教程最多、各种软件兼容性最好的版本。它的生命周期原定于 2024 年 6 月 30 日结束但现在很多国内镜像站和第三方源依然保留着可用仓库作为学习、办公、内部测试环境完全够用。而且网上 90% 的 Linux 教程都是基于 CentOS 7 写的你遇到问题搜解决方案非常方便。CentOS 8.x这个版本不推荐因为它已经停止维护得很彻底镜像站基本只留一个空壳yum 源里的包也大多失效了新手装完连软件都装不了非常难受。CentOS Stream它是 RHEL 的上游滚动版本更新频率高适合想体验新功能的同学。但对于追求稳定学习和运维场景没必要折腾。一句话老老实实选 CentOS 7.9。这也是我全文会围绕的版本。1.3 镜像下载的正确姿势别去官网挤CentOS 7.9 的镜像文件大小大概 4GB 左右DVD 版下载时第一选择是用国内镜像站速度快、稳。推荐三个阿里云镜像站mirrors.aliyun.com/centos/7/isos/x86_64/清华镜像站mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/网易镜像站mirrors.163.com/centos/7/isos/x86_64/打开页面后你会看到几个不同版本名这里要注意区分。CentOS-7-x86_64-DVD-2009.iso这是标准安装盘包含了大部分常用软件包体积四五 GB本教程就用这个。CentOS-7-x86_64-Minimal-2009.iso最小化安装盘只有最基本组件体积小很多适合后续自己按需安装软件但整个安装过程险象环生新手容易缺这缺那不推荐第一次装就选它。CentOS-7-x86_64-Everything-2009.iso全量包体积巨大一般用不到。选 DVD 版下载后顺便做一件事校验文件完整性。镜像站通常旁边会有 sha256sum.txt 文件下载后对比一下哈希值。比如在 Windows 上用 PowerShell 算一下Get-FileHash .\CentOS-7-x86_64-DVD-2009.iso -Algorithm SHA256和站上的值比对一致再开始安装。这一步虽然稍显繁琐但能避免镜像中途下载损坏让安装卡在奇怪的位置这个坑我见过太多次了。2. VMware 里创建虚拟机参数怎么填才不别扭2.1 从 VMware 向导一步步创建空虚拟机这一步不需要急着用系统镜像启动我们先创建一个“空壳”虚拟机把硬件参数设置好再把镜像挂进去。打开 VMware Workstation点击“创建新的虚拟机”选择“自定义高级”能看到完整参数项比典型模式更可控。后续步骤里想存储为单个文件还是拆分成多个文件这里选“将虚拟磁盘存储为单个文件”就行性能稍好且管理方便。在“选择客户机操作系统”时“客户机操作系统”选 Linux“版本”下拉框里选择 CentOS 7注意别选成 CentOS 8 或 Red Hat Enterprise Linux 7版本匹配才可以用到更合适的驱动配置。这一步如果选错后续安装一般也能进行但 VMware 工具和硬件兼容性会存在隐患还是选对省心。2.2 CPU、内存和磁盘参数别贪多也别抠门关于资源分配我理解很多读者的内心是“我主机性能强多分点跑得爽”。但虚拟机分配资源有一个核心原则够用就好不要过分抢占宿主机资源。处理器建议至少 2 核。如果你的宿主机 CPU 很强给 4 核也行。处理器数量和每个处理器的内核数量加总就是总线程数比如“1 个处理器2 个内核”就代表 2 核。初学者不用在这个选项上焦虑算总核数就行了。内存建议 2GB2048MB起步。如果你打算装图形界面GNOME或者在虚拟机里跑多个服务建议 4GB 或更高。内存给太少的话安装时图形界面会卡得怀疑人生甚至安装失败。磁盘建议 40GB 到 60GB。装完系统加常用软件大概占用 5-10GB但这不意味着后面就够用了日志、临时文件、Docker 镜像都会悄悄挤占空间。磁盘容量设大一些只要没写满不会立刻占用宿主机真实空间所以放心给。网络类型这里先提一句默认选“NAT”即可。NAT 模式下虚拟机可以访问外网宿主机也能访问虚拟机和局域网里其他真机互访则需要额外配置端口转发或者改用桥接模式初学者最不容易出问题先用 NAT 把系统跑通再说。2.3 挂载 CentOS 镜像到虚拟光驱创建完空虚拟机后不要立刻点击“开启此虚拟机”。先回到虚拟机设置界面在“CD/DVD(SATA)”一项里勾选“使用 ISO 镜像文件”然后浏览选择你刚才下载好的 CentOS-7-x86_64-DVD-2009.iso 文件。同时建议顺手到“显示器”设置里把“加速 3D 图形”取消勾选因为 CentOS 装命令界面基本用不到 3D 加速开着反而可能在虚拟机里出现显示异常。做完这步就可以启动了。3. CentOS 7.9 安装全过程实操记录3.1 从开机到安装界面每一行都别选错启动虚拟机后屏幕会进入一个安装引导界面靠键盘上下方向键操作鼠标在这时还不能用。界面上有“Install CentOS 7”和“Test this media install CentOS 7”两个重要选项。第一次使用我建议选择“Test this media install CentOS 7”它会对镜像做一次完整性校验跑上几分钟确认镜像没问题后再进入安装。要是镜像损坏能在这一步就拦截掉省得安装过程中间报错。选完后按下回车系统会开始加载安装环境出现几个带[ OK ]的启动日志然后进入一个欢迎界面会让你选择安装过程中使用的语言。这里选择“中文简体”——不过要注意如果你以后日常工作都在 SSH 命令行里进行安装界面语言其实影响不大选中文主要是让自己看图方便系统底层妥妥还是 LANG 环境变量决定的。点“继续”之后就进入了真正的安装配置主界面。界面里有几个关键项需要逐一点进去设置分别是“软件选择”“安装位置”“网络和主机名”以及“ROOT 密码”。其他像语言、键盘、时区默认即可但时区最好顺手确认一下。3.2 软件选择命令界面还是图形界面取决于你干嘛点击“软件选择”立刻会看到很多组合。新手最常问的就是要不要带图形界面Server with GUI带图形界面的服务器安装完成后进入系统直接有桌面类似 Windows 的操作体验适合刚接触 Linux 的朋友或者你需要在这台机器上跑一些图形软件Android Studio、浏览器等。代价是占用的内存和磁盘更多开机启动的服务也更多。Minimal Install最小安装纯净的命令行环境没有桌面。服务器生产环境百分之百是这么用省资源、攻击面小、速度快也更贴近真实运维场景。缺点是刚开始对着黑底白字会有距离感。我的建议如果你不是抱着“一定要把 Linux 的基本操作走完”这种目标而是以后要长期使用服务器那么直接用 Minimal Install。学会在命令行里解决一切这个能力才是 Linux 的核心门槛。软件选择里还有别的选项比如带开发工具的“Development and Creative Workstation”新手可以暂时忽略。选一个主项点左上角“完成”返回。3.3 磁盘分区怎么选最省心自动分区还是手动分区然后是安装位置点进去后选中你分配给虚拟机的那个磁盘通常显示为sda容量会标出来。在“其他存储选项”里默认是“自动配置分区”。如果你是初学者或者只是搭测试环境选自动配置分区完全没问题。安装程序会自动创建 LVM 逻辑卷管理结构给/、/boot、/home等划分好空间这样的布局以后调整起来也比较灵活LVM 支持在线扩容。如果你有洁癖或者清楚知道自己想怎么分配比如单独给/data一个大分区那么可以选“我要配置分区”进入手动分区界面创建/boot512MB 或 1GB、/全部分配/swap视内存大小设置如内存 2GB就给 2GB swap确实更可控。以新手体验为目的的话我真心建议先自动分区。LVM 是 CentOS 默认的存储架构以后磁盘扩展什么的都有套路不会把自己卡死在分区规划上。点“完成”后安装程序显示“将删除此磁盘上的所有数据”——因为你的虚拟磁盘是空的直接确认就好。3.4 网络打开、时区确认、密码设置回到主界面点击“网络和主机名”。这一步必须操作安装时不把网络开起来装完再配反而费劲。我习惯先把“以太网”开关打开从“关”拨到“开”这时候如果 DHCP 网络分配正常会自动获得一个 IP 地址界面右上角会显示出来。同时可以顺手把主机名改成项目相关的名字例如mycentos最好全小写避免后续服务配置出奇怪问题。时区上如果你选中文界面大概率默认已经是“亚洲/上海”也就是北京时间不放心就点进“日期和时间”确认一下地图上“中国上海”是高亮状态。ROOT 密码是关键中的关键。点击“ROOT 密码”输入不少于 8 位的密码注意 CentOS 默认的密码策略要求包含大小写字母和数字太简单的密码比如纯数字 12345678会提示强度不足需要点击两次“完成”才能强制通过。我提醒一句系统默认策略是有它的道理的这台虚拟机以后要对外提供服务的话弱密码基本等于裸奔。确认所有必选项都完成后主界面右上角通常有个感叹号提示点击“开始安装”系统就进入安装流程了。这一步通常需要五到十分钟期间可以看看安装日志觉得无聊就等着。安装完成前会弹出“重新启动”按钮点击后虚拟机自动重启重启时会提示“请移除安装介质或按任意键继续”。因为虚拟光驱里还挂着 ISO这里可以按 Enter 让系统从硬盘启动或者去虚拟机设置里把 CD/DVD 改为“使用物理驱动器”避免每次开机都被引导。3.5 第一次登录见证从黑屏到 shell 提示符重启完成后你会看到 GRUB 引导界面它默认 5 秒后自动进入第一个内核。系统启动日志哗啦啦滚完最终停在一个login:提示符。输入root回车再输入刚才设置的 ROOT 密码输入时不显示任何字符这不是键盘坏了而是出于安全的正常行为回车。如果一切顺利你的屏幕上会出现类似[rootmycentos ~]#的命令提示符恭喜CentOS 安装成功你现在已经拥有了一个最基本的 Linux 环境。4. 装完之后的黄金半小时初始化配置4.1 网络设置从“能上网”到“固定 IP”安装时我们虽然开启了网络但那很可能是 DHCP 分配的一个随机 IP。以后想通过 SSH 连这台虚拟机或者在上面部署服务IP 地址老变会让人非常崩溃。所以登录后的第一件事就是把 IP 固定下来。CentOS 7 的网络配置核心文件位于/etc/sysconfig/network-scripts/文件名一般叫ifcfg-ens33网卡名可能是 ens33、eno16777736 等可以通过ip addr命令确认。打开这个文件vi /etc/sysconfig/network-scripts/ifcfg-ens33改成类似下面的内容TYPEEthernet BOOTPROTOstatic NAMEens33 DEVICEens33 ONBOOTyes IPADDR192.168.150.100 NETMASK255.255.255.0 GATEWAY192.168.150.2 DNS1223.5.5.5 DNS2114.114.114.114这里面最容易出错的三个地方BOOTPROTO 必须从 dhcp 改成 static。GATEWAY 必须和 VMware 里 NAT 模式的网关一致。怎么查网关在 VMware 的“编辑 - 虚拟网络编辑器”里选 VMnet8NAT 模式点“NAT 设置”可以看到网关 IP常见是 192.168.150.2 或 192.168.xx.2。DNS 建议多用国内公共 DNS例如 223.5.5.5阿里或 119.29.29.29腾讯。保存后重启网络systemctl restart network此时再用ip addr查看IP 地址应该已经变成了你设定的静态地址。顺手测一下网关和公网ping -c 3 192.168.150.2 ping -c 3 www.baidu.com如果网关通而公网不通大概率是 DNS 没配好如果网关都不通那就是网关 IP 写错了或者 VMware 的 NAT 网段和文件里不一致回头把网段对齐就行。4.2 用 SSH 远程连接把鼠标扔掉CentOS 虚拟机里直接操作终端也能过日子但字体小、复制粘贴不顺手、查看日志不方便长期用真的很累。我的习惯是装完系统后立刻回到宿主机用 SSH 客户端连接虚拟机这样操作窗口、复制命令都舒服得多。CentOS 7 默认安装了 OpenSSH Server一般开机自启。先确认一下状态systemctl status sshd如果显示 active (running)就可以在 Windows 宿主机上打开 Xshell、MobaXterm 或者直接 Windows 自带的 PowerShell 输入ssh root192.168.150.100第一次连接会提示确认主机指纹输入yes再输入 root 密码就登录上了。接下来的所有操作都可以在这里完成。如果你和虚拟机不在同一个 NAT 网段或者虚拟机用的是桥接模式但物理网络有访问控制SSH 可能连不上这时候先回虚拟机里用ip addr确认 IP再用宿主机ping虚拟机 IP 试试网络通不通一步一步排查。4.3 换 yum 源和基础环境配置CentOS 7 使用的是yum包管理器但默认仓库的镜像地址在海外国内服务器拉包速度极慢有时候一个命令卡几分钟。强烈建议换成国内镜像源。简单方式直接把 CentOS-Base.repo 替换成阿里云源。执行cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo.backup curl -o CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache这里要注意CentOS 7 官方源停止维护后阿里云源里的部分组件仍然保留日常安装基础包没有问题。如果你需要某些特殊包且源里找不到再考虑 EPEL 源yum install epel-release。基础工具包建议早点装齐免得后面用到一个装一个yum install -y vim wget net-tools lrzsz unzip zipnet-tools装完你就能用ifconfig命令了很多老教程都会用到它。4.4 防火墙与 SELinux需要知道的两个“拦路虎”CentOS 7 默认开启了 firewalld对于刚配置好的服务比如你装个 Nginx监听 80 端口从外部访问发现根本访问不通多半就是防火墙没放行。先看当前开放的端口firewall-cmd --list-all需要放行某个端口时firewall-cmd --add-port80/tcp --permanent firewall-cmd --reload--permanent表示永久生效不加的话重启后就失效。这个细节很关键我见过很多人在测试环境临时放行了端口结果服务器一重启服务又访问不了一脸茫然。SELinux 是 CentOS 另一个安全机制它对文件权限、网络端口等都做强制访问控制。初学者阶段可以考虑临时关闭它避免各种“明明有权限却被拒绝”的诡异问题。修改/etc/selinux/configSELINUXdisabled改完后重启系统或者运行setenforce 0临时生效。当然等你对 Linux 熟悉了还是建议把它重新打开认真学习 SELinux 的授权方式毕竟生产服务器的安全防线越多越好。不过在这篇教程的范围内先关掉能省很多麻烦。5. 常见故障排查与避坑实录5.1 虚拟机开不了机、黑屏、卡在引导界面怎么办这几个现象看起来五花八门但核心原因就那么几类逐个排查镜像文件损坏或不完整所有怪异安装问题里这是第一名。回头确认 sha256sum不行就重新下载。虚拟机内存分配过低2GB 以下时图形安装界面可能卡死或直接黑屏。把虚拟机设置里的内存调大到 4GB。VMware 版本太老不兼容新版 CentOS 7.9 的内核升级 VMware Workstation 或者关掉虚拟化引擎中的“虚拟化 Intel VT-x/EPT”试试。CPU 虚拟化没开启物理机 BIOS 里的 Intel VT-x 或 AMD-V 没有开启VMware 会在启动虚拟机时直观地报错进 BIOS 开启即可。遇到安装过程中某个进度停住不要着急重启。可以按CtrlAltF2切到另一个终端查看日志或者直接再等几分钟很多安装卡顿其实是磁盘速度慢。5.2 ping 不通网关的排查思路这是热词里非常高频的问题也是每个初学者几乎都会遇到的一个坎。当你发现虚拟机里ping不通网关、上不了网时别慌按下面顺序从前到后排查第一步看 VMware 虚拟网络编辑器里 VMnet8 的网段记住网关 IP。第二步在虚拟机里ip addr查看当前网卡 IP确认是否在同一个网段。如果在不同网段那数据包根本没机会出虚拟机。第三步看/etc/sysconfig/network-scripts/ifcfg-ens33里的 GATEWAY 是否和虚拟网络编辑器一致。这里极其容易写错多一个点少一个数字都不行。第四步检查ONBOOTyesCentOS 7 里网卡默认 ONBOOT 可能是 no导致重启后网卡压根没启动。第五步把NetworkManager服务和network服务的关系理清楚。CentOS 7 里两者共存时偶尔吵架简单粗暴的做法是停用 NetworkManagersystemctl stop NetworkManager systemctl disable NetworkManager使用传统的 network 服务管理网络稳定性更高。我后来排查自己那台装了 GUI 的 CentOS发现是 NetworkManager 把配置文件给覆盖了改完还是不行最后干脆禁用 NetworkManager 才解决问题。作为服务器环境用传统的 network 管理反而少很多奇怪毛病。5.3 磁盘扩容虚拟机磁盘空间不够了的处理很多教程装虚拟机时磁盘只给 20GB等你在里面装 Docker、拉几个镜像磁盘突然就满了。扩容不是简单地在 VMware 设置里把磁盘大小改大就完事——你还要在系统内部把新空间分配给分区或逻辑卷。如果你安装时使用了默认 LVM 布局扩容比较简单先关闭虚拟机在 VMware 里把磁盘大小从 20GB 调整到 40GB。启动虚拟机进入系统执行lsblk查看磁盘空间你会看到sda已经变成 40GB但分区和 LVM 还没利用新空间。执行以下命令扩展分区、物理卷和逻辑卷以根目录在 centos/root 为例growpart /dev/sda 2 pvresize /dev/sda2 lvextend -l 100%FREE /dev/mapper/centos-root xfs_growfs /上面四步分别是让分区表识别新空间、扩展到物理卷、把空余空间全部分配给 root 逻辑卷、最后让 XFS 文件系统扩容。如果你是 ext4 文件系统最后一步要换成resize2fs。跑完你会发现根目录空间已经翻倍整个过程不需要重启。如果你安装时没有用 LVM而是直接分区扩容会麻烦很多要借助 GParted 或者重建分区这也是为什么我强烈建议安装时按默认 LVM 配置分区。5.4 离线环境安装 RPM 包与依赖冲突很多公司内网环境无法直接连外网没法用yum install直接装软件这时候就得离线安装。常见套路是在一台能联网的同版本 CentOS 机器上下载好 rpm 包再拷贝到离线机器安装。反向拿最常见的一个场景举例内网机器要装某个软件 A但 A 依赖libssl.so.10系统里只有libssl.so.1.1直接rpm -ivh A.rpm就会报依赖缺失。这时候不要硬装正确的做法是yum install --downloadonly --downloaddir/root/rpms A在有网的机器上把 A 和它的所有依赖全部下载到指定目录然后打包拷贝到目标机器在目标机器上执行rpm -Uvh /root/rpms/*.rpm --nodeps --force--nodeps这种办法是强力绕过依赖检查不到万不得已别用。更稳妥的是先安装目录中的所有 rpm让 rpm 自己处理依赖顺序yum localinstall /root/rpms/*.rpm这个命令会在本地目录里查找依赖并全部安装比手写 rpm 顺序靠谱得多。5.5 关于远程端口修改、Redis 登录问题的一点实操补充热词里有两个场景在实际中经常遇到修改远程端口和 CentOS 里访问 Redis。修改 SSH 远程端口比如把 22 改成 2222首先要编辑/etc/ssh/sshd_config找到#Port 22去掉注释并改成Port 2222。改完执行systemctl restart sshd注意不要断开当前连接先在另一个终端测试新端口能连上确认没问题再退出。否则一旦新端口配置有问题你连接已断开就只能去虚拟机控制台操作非常被动。Redis 这边CentOS 上通过 yum 或源码安装后redis.conf里如果bind 127.0.0.1那么外部网络默认连不上。即使改了bind 0.0.0.0还有protected-mode yes和requirepass两道关卡。新手最常遇到的“登录进 Redis”报错基本就是 protected-mode 或者密码问题。临时验证可以redis-cli -h 192.168.150.100 -p 6379 -a 你的密码 ping生产环境建议把 protected-mode 保持开启只放开按需的 bind 和密码别图省事全关。6. 一些我积累下来的小习惯最后说几个只有经过多台机器折腾后才能体会的小贴士。第一安装完成后第一时间做一次系统快照。VMware 里的“虚拟机 - 快照 - 拍摄快照”起个名“刚刚装好”后面再怎么折腾都不会心虚坏了直接恢复。第二root 密码不建议设得太花哨但要足够长。你可以用“一句话的首字母数字特殊符号”比如My1stCentos!好记又有足够强度而不是硬背一串乱码。第三CentOS 7 的systemctl命令要早点习惯。网上有些老教程还在用service network restart和chkconfig在 7 里它们仍然能用但看服务状态和设置开机自启更标准的是systemctl status和systemctl enable。两个体系混着用容易记混干脆全部用 systemctl。装系统这件事看着步骤多其实都一样真正难的是装完之后你会不会配置、排查、优化。这篇教程里凡是容易踩坑的地方我都单独标了出来。你按照步骤走完一台干净、稳定、远程可管理的 CentOS 7.9 虚拟机就拿下了一大半。剩下的就交给实战中慢慢积累吧。