
CentOS 7 详细安装教程从镜像下载到虚拟机跑起来一篇就够了做运维这行绕不开 CentOS 7哪怕现在新的系统出了不少很多公司的生产环境和学习环境还是用着它。你要学 Linux、搭服务、跑 Docker、配数据库CentOS 7 都是非常适合入门和练手的系统。这篇教程我把整套流程完整过一遍从下载镜像文件、创建虚拟机到分区配置、网络初始化、更换 yum 源每一步都写清楚为什么这么做有哪些坑要避开。哪怕是刚接触 Linux 的新手照着操作也能把系统装起来。这次我以 VMware Workstation 为例来讲这也是目前绝大多数机房、实验环境、个人电脑上最常用的虚拟机软件。至于 CentOS 8、Stream 这些版本后面我会单独开文章聊这篇只专注 CentOS 7尽量把细节讲透让你装完之后不是稀里糊涂点完下一步而是能明白每一步背后到底发生了什么。1. 安装前的准备与镜像下载1.1 先确认你要的是哪个版本的 CentOS 7很多新手上来就搜“CentOS 7 下载”结果进官网一看版本号有 7.9、7.8、7.6架构有 x86_64、aarch64文件还有 DVD、Minimal、Everything 之分当场就懵了。我先把这些概念理顺。CentOS 7 的最后一个大版本是 7.9.2009对应的 ISO 文件名通常是CentOS-7-x86_64-DVD-2009.iso。如果现在要装新机直接拿这个版本就行不要去找 7.0 或者 7.2因为老版本的内核漏洞比较多而且 yum 源的官方仓库已经归档后续在线装软件会比较麻烦。架构方面Intel 和 AMD 的普通电脑都选x86_64ARM 架构的机器才用aarch64。再说 ISO 类型。DVD 版是完整安装包包含大多数常用软件包单文件大概 4G 左右适合本地安装这也是我最推荐新手使用的版本。Minimal 版只有几百兆装完是纯命令行没有图形界面适合对 Linux 已经有了解、想要精简环境的人。Everything 版是一个大而全的软件合集体积超过 8G除非你要做离线软件仓库否则不建议直接用它来装系统。日常学习就选 DVD 版没有悬念。image 文件下载地址优先选国内镜像阿里云、网易、清华这些都有 CentOS 仓库速度比官网快太多。以阿里云为例直接访问mirrors.aliyun.com/centos/7/isos/x86_64/找到CentOS-7-x86_64-DVD-2009.iso下载即可。下载完之后顺手记一下文件大小如果只有几百 KB 那肯定是下载出了问题。1.2 虚拟机软件选 VMware 还是 VirtualBox虚拟机软件这块我推荐 VMware Workstation Pro原因很直接它对 CentOS 的硬件兼容性做得好图形界面操作顺手快照、克隆、文件拖拽这些功能都成熟稳定。VMware 现在对个人用户也开放了免费许可个人学习用途直接去官网注册一个账号就能申请到免费的 Workstation Pro 序列号安装完填进去就行。VirtualBox 当然也能用而且开源免费但默认配置下显卡支持、拖拽传输、USB 设备的兼容性略逊一筹新手容易在装完系统后发现分辨率不对、文件传不进去体验会打折。如果你机器性能比较一般VirtualBox 也不是不能用两个软件的安装流程差异不大。只是后面的教程步骤我以 VMware Workstation 为准软件界面版本在 15 到 17 之间都差不多菜单名基本不变。1.3 安装 VMware 时的三个小细节VMware 安装过程本身没什么难度一路 Next 就行但有几个细节会影响后面的使用体验。第一如果电脑上装了 360、腾讯管家这类带虚拟化拦截功能的软件安装 VMware 时最好先退出避免个别组件被拦截。第二安装完成后打开 VMware进入“编辑 — 虚拟机网络编辑器”确认 NAT 模式的网卡配置没有被其他软件改掉这一步先不用操作后面网络部分我会再提到。第三如果你的 CPU 是 AMD 平台并且电脑 BIOS 中开启了 SVM 虚拟化功能VMware 里默认创建的虚拟机性能会更好要是创建虚拟机时提示“此主机不支持虚拟化”需要重启进 BIOS 把 Intel VT-x 或 AMD SVM 打开这个问题在较老的电脑上比较常见。2. 创建虚拟机与硬件配置2.1 新建虚拟机的完整步骤打开 VMware Workstation点击“创建新的虚拟机”我建议选择“自定义高级”而不是“典型推荐”。虽然典型模式更快但自定义模式可以让我们更好地控制后面每个硬件细节。具体步骤虚拟机兼容性选择 Workstation 15.x 或更高版本这个选项影响的是虚拟机硬件规范跟你宿主机的 VMware 版本没有直接关系选默认即可。安装来源选择“稍后安装操作系统”我们先把虚拟机的硬件配置好再把 ISO 挂载进去启动安装。这一步选择“安装程序光盘映像文件”也可以但“稍后安装”更灵活后续换镜像文件不用重新创建虚拟机。客户机操作系统选择“Linux”版本选择“CentOS 7 64 位”。如果你的列表里没有 CentOS 7 64 位选 Red Hat Enterprise Linux 7 64 位也是可以的两者内核兼容。虚拟机名称和位置名称随意位置选择空间充足的磁盘。注意虚拟机的磁盘文件会占用真实磁盘空间别装在只有 20G 空闲的 C 盘上。处理器配置一般设置 2 个处理器、每个处理器 1 核也就是一共 2 核。如果你的电脑本身是 8 核以上给 4 核也不过分但要留一部分资源给宿主机。内存CentOS 7 图形化安装和运行建议至少 2GB最好是 4GB。内存太小安装图形界面时会明显卡顿。网络类型选 NAT 模式这是新手最稳妥的选择。I/O 控制器类型默认 LSI Logic磁盘类型默认 SCSI。这两个不用改CentOS 7 默认就能识别。磁盘容量建议 40GB 起步选择“将虚拟磁盘拆分成多个文件”。先别勾选“立即分配所有磁盘空间”和“预分配空间”否则创建时会立刻占用大量真实磁盘空间。完成之后在虚拟机设置里把刚才下载的 ISO 挂载到 CD/DVD 中并勾选“启动时连接”。2.2 磁盘拆分成多个文件的理由为什么反复强调“将虚拟磁盘拆分成多个文件”因为 VMware 的磁盘文件默认按 2GB 大小切分虚拟机关机后每个小文件独立存在系统里实际用了多少真实磁盘就占用多少不会一开始就把 40GB 吃掉。如果你选了“立即分配所有磁盘空间”创建瞬间就会在宿主机磁盘里划走整整 40G万一你后面不想要这个虚拟机了删除文件时也比较麻烦。拆分成多个文件还有一个好处备份时可以按时间点分别拷贝某个文件损坏不会导致整个虚拟机彻底不可用。实际运维中我见过不少因为磁盘单文件过大、宿主机文件系统不支持超过 4G 的大文件导致虚拟机迁移失败的案例拆分存储能避免这种问题。当然单文件的好处是性能可能好一点但日常学习根本感知不到差距所以推荐拆分。2.3 网络模式的选型NAT 不是随便选的网络模式有三个桥接、NAT、仅主机。新手直接选 NAT我就展开说说为什么。NAT 模式下虚机通过宿主机共享 IP 上网虚拟机的网段由 VMware 自己维护比如 192.168.159.0/24外界不需要关心这个网段宿主机能上网虚机就能上网。这个模式最大的好处是安全且不容易把局域网搞乱长时间运行不会跟宿主机所在局域网里的其他设备抢 IP宿主机换网络环境从家里到公司也不会影响虚机连接。桥接模式下虚机会直接占用一个局域网真实 IP路由器能看到它看起来更“真实”但一旦你换了 WiFi 或者换了路由器虚机网络基本就要重新配置。仅主机模式则完全不能访问外网一般用来做隔离测试。综合来看NAT 是学习和测试最省心的选择。2.4 安装前记得检查这三个设置创建完虚拟机先别急着开机打开“虚拟机设置”确认三件事第一CD/DVD 中已经挂载了 CentOS-7-x86_64-DVD-2009.iso并且勾选了“启动时连接”第二软驱设备里有“Floppy”最好直接移除这个设备在现代机器上没什么用偶尔还会导致虚拟机启动卡住第三USB 控制器和声卡这类设备可以留着但对服务器场景来说也不是必须的如果你追求纯净环境可以把声卡、打印机都移除减少不必要的设备中断。顺手把“显示”里的“加速 3D 图形”勾上装完桌面环境之后图形界面会更流畅。3. 操作系统安装全流程3.1 开机后的引导界面第一个坎一切就绪点击“开启此虚拟机”。屏幕会出现 VMware 的 BIOS 启动画面然后进入 CentOS 7 安装引导界面。这里通常会看到三个选项Install CentOS 7、Test this media install CentOS 7、Troubleshooting。我见过很多新手卡在这一步不知道按什么键。直接用键盘上下键选择第一项 Install CentOS 7 然后回车就行。第二项是校验光盘完整性我之前下载镜像比较早曾经遇到过 ISO 文件损坏导致安装到一半报错如果你对下载的文件不放心可以选第二项让它校验一遍。校验过程大概要几分钟第一次安装图省事可以直接忽略若安装中途报“找不到安装源”再回来校验也不迟。如果是比较老的 VMware 版本可能启动后黑白屏或者直接跳过引导界面最常见的原因是 BIOS 启动顺序里没有把 CD/DVD 放在最前面。回到虚拟机设置在“虚拟机设置 — CD/DVD”里确认已经连接 ISO点击开机后立刻连续按 Esc 键进入一次性启动菜单手动选择 CD-ROM 启动即可。3.2 语言选择中英文界面怎么选安装开始后CentOS 7 会先让你选择语言。这里我给新手一个建议如果你是想以后从事运维或者服务器管理安装过程可以直接用英文因为真实的服务器系统基本不会有人给你切成中文常用的路径、报错信息、日志都是英文早点适应对你的学习更有帮助。如果只是个人学习、暂时还没习惯英文界面选简体中文也完全没有问题后面我提到的每个菜单名我都会把中英文对照写出来方便你对照。语言确定之后会进入安装主界面左侧是配置项右侧是“开始安装”按钮。按顺序处理下面几个配置项目。3.3 软件选择选带桌面的版本还是最小安装“软件选择SOFTWARE SELECTION”是安装配置里非常关键的一项。默认是“最小安装”只安装最基础的内核和命令行工具装完是纯黑屏终端。如果你之前没怎么接触过 Linux直接最小安装很容易被劝退所以我建议第一次安装就选“GNOME Desktop桌面”这不是说生产服务器要装桌面而是为了方便你熟悉这套系统有图形界面在学文件管理、网络配置、浏览器访问都非常直观。等你熟悉了命令行再用“最小安装”重装一次那时候你会发现最小安装才是你真正需要的服务器形态。这里有个大坑如果用 GNOME Desktop安装时间会比最小安装长不少软件包数量多尤其是安装进度达到 60% 左右时耐心等待就好。另外如果你选的是 DVD 版 ISO桌面组件包都在本地镜像里不需要联网下软件包如果你用的是 Minimal 版 ISO那在软件选择界面根本不会出现 GNOME Desktop 选项所以这也是我前面推荐 DVD 版的另一个原因。3.4 磁盘分区逻辑自动分区还是手动分区“安装位置INSTALLATION DESTINATION”是新手最容易弄不明白的地方。我的建议很明确第一次安装选自动分区就行不需要手动折腾。进入安装位置界面选中目标磁盘一般就是唯一一块 40GB 的虚拟磁盘点击左上角“完成Done”即可。CentOS 7 会自动创建 /boot、/根分区以及 swap 分区对学习场景来说完全够用。手动分区什么时候需要以后你搭数据库、做存储实验需要单独规划数据盘、日志盘再手动分即可。这里我讲一下手动分区的基本概念方便你未来上手。手动分区需要点击“我要配置分区”选择标准分区模式一般创建 3 个分区/boot大小为 1GB 左右类型为 ext4/xfs存放内核和引导文件。swap交换分区相当于 Windows 的虚拟内存大小可以设为内存的 1 到 2 倍比如 4GB 内存就分 4GB 或 8GB。/根分区剩下的空间全给它类型 xfs。不建议单独给/home分太大很多人习惯把 /home 单独分区结果系统盘用着用着根分区空间不足而 /home 剩一大半反而难受。3.5 网络与主机名先打开网卡总开关“网络与主机名NETWORK HOST NAME”界面上你会看到一个网卡名称比如 ens33右侧是开关按钮。开关现在是“关”的你要先把它拨到“开”然后注意看下方对应的 IP 地址是否会变成一个类似 192.168.159.x 的地址。如果出现了 IP说明 DHCP 已经分配成功那么安装完系统之后大概率是可以直接上网的。我这里总是提醒学员很多人装完系统发现上不了网十有八九就是因为安装时没有打开这个开关导致网卡默认没有激活。主机名Hostname默认是 localhost.localdomain你可以顺手改成自己想要的名字比如 centos7-node1。注意主机名不要包含空格和特殊字符尽量用字母、数字、短横线。配置完这些再设置“root 密码ROOT PASSWORD”和“创建用户USER CREATION”。root 密码务必记住后续很多操作都要用。创建普通用户部分可以勾选“让此用户成为管理员”这样你平时登录可以用普通账号需要执行管理命令时再通过 sudo 提权从习惯上就比一直拿 root 操作要安全。点击“开始安装”后系统进入安装状态页面上会有进度条同时显示正在安装的软件包比如xorg、firefox、gnome-shell耐心等待。出现安装完成提示后点击“重启Reboot”按钮。3.6 重启后的许可确认与初始化重启时VMware 里可能会出现“重启后屏幕黑屏”或停留在“Press any key”界面这很正常按一下回车即可。重启进入的界面有第一步“许可信息LICENSE INFORMATION”不勾选“我接受许可协议”是没有办法继续的直接勾选接受点完成。还会出现“网络账户”之类的设置项直接跳过即可企业环境常常需要账号注册但 CentOS 本地安装不需要绑定任何云账号。接着系统会进入登录界面输入你刚才创建的普通用户名和密码图形桌面就出现了。到这一步系统安装就算完成了。如果你的目标是无桌面最小安装重启后你会看到一个纯文本的login:提示符输入 root 和密码登录后面所有操作都会在命令行下进行。本文后面的初始化配置将以命令行操作为主因为这才是 Linux 服务器真正的工作方式。4. 安装完成后的初始化配置4.1 登录后先确认几个基本信息不管是图形界面还是命令行登录成功后先敲几个命令确认系统状态。打开终端依次执行cat /etc/redhat-release uname -a ip addr ping -c 4 www.baidu.com第一个命令确认系统版本正常会输出类似CentOS Linux release 7.9.2009 (Core)。第二个命令查看内核版本CentOS 7 默认内核是 3.10.x看到这个版本号不要慌这是 CentOS 7 的正常内核不代表系统很老很多生产环境用的就是它。第三个命令看网卡有没有拿到 IP第四个命令测试能不能访问外网。如果 ping 不通别急着怀疑网络先看下一小节。如果安装时没有打开网络开关现在 IP 大概率是空的。先进入网卡配置文件所在目录cd /etc/sysconfig/network-scripts/ ls找到类似ifcfg-ens33的文件用 vim 或 vi 编辑vi ifcfg-ens33把这个文件里ONBOOTno改成ONBOOTyes保存退出然后重启网络服务systemctl restart network再执行ip addr网卡应该就能拿到 IP 了。这种“安装时没开网卡导致装完后上不了网”的问题几乎每周都能在群里看到有人问。4.2 固定 IP 还是 DHCP测试环境可以先 DHCP学习阶段用 DHCP 自动获取 IP 就够了省心、不会断网。但如果你以后要搭服务、做集群、配 SSH 远程连接就必须固定 IP否则重启虚拟机之后 IP 变化所有配置全要跟着改。固定 IP 有两种方式一种是在 VMware 的虚拟网络编辑器里设置保留地址一种是在系统里直接写静态 IP。系统内静态配置的方法如下vi /etc/sysconfig/network-scripts/ifcfg-ens33改成BOOTPROTOstatic IPADDR192.168.159.100 NETMASK255.255.255.0 GATEWAY192.168.159.2 DNS1223.5.5.5 DNS2114.114.114.114 ONBOOTyes这里面的 GATEWAY 地址要跟 NAT 模式的实际网关一致。在 VMware 菜单“编辑 — 虚拟网络编辑器”里选择 VMnet8就能看到 NAT 设置里的网关 IP通常类似 192.168.159.2。IPADDR 自己选一个 VMnet8 网段内的可用地址比如 100与网关、宿主机本身的 IP 不冲突即可。改完保存执行systemctl restart network ip addr看到静态 IP 生效就说明配置没问题。如果重启网络时报错多半是配置文件里的某项拼写有误检查大小写和等号周围是否有空格空格和引号是网络配置报错的两大元凶。4.3 关闭防火墙和 SELinux测试环境建议生产环境要谨慎CentOS 7 默认开启了 firewalld 防火墙和 SELinux。在真实服务器上这两个东西是安全防线不能随便关。但在自己虚拟机里做实验尤其是后面要装 Nginx、MySQL、Docker 的时候如果没放行端口外部怎么都访问不进你的服务排查半天才发现是防火墙拦截特别影响学习心情。所以测试环境我一般直接关闭。systemctl stop firewalld # 立即停止防火墙 systemctl disable firewalld # 禁止开机自启 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config改 SELinux 的配置文件需要重启才能完全生效如果你不想重启临时设置成宽松模式setenforce 0 getenforce看到输出Permissive就说明本次会话已经生效。注意这些操作仅限你自己学习和实验环境生产服务器上关闭防火墙和 SELinux 需要走正规流程确认好安全边界之后再操作。4.4 更换 yum 源让软件安装真正快起来CentOS 7 官方 yum 源在国内外访问速度都很一般所以安装完系统的第一步我习惯先把 yum 源切换到国内镜像。以阿里云源为例备份原始源文件mkdir -p /etc/yum.repos.d/backup mv /etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/backup/然后下载新的仓库文件CentOS 7 上我一般用这两个curl -o /etc/yum.repos.d/CentOS-7.repo https://mirrors.aliyun.com/repo/Centos-7.repo如果你访问外网有困难也可以直接去阿里云镜像站手工下载这个 repo 文件再上传。然后清理缓存并生成新的缓存yum clean all yum makecache测试一下源是否生效yum -y install vim wget net-tools git如果安装顺利说明源配置没问题。家里和学校带宽比较慢时这个过程可能要多等一两分钟属正常现象。装完之后可以通过which vim、which net-tools或ifconfig来验证工具是否可用。net-tools提供ifconfig、netstat等命令虽然新系统默认没有但很多人习惯了它装上不亏。4.5 安装增强工具享受文件拖拽和自适应分辨率要在 VMware 里用 CentOS 的图形界面建议安装开源的 open-vm-tools。这是 VMware 官方维护的驱动集合装完之后可以实现宿主机和虚拟机之间的文件拖拽、剪贴板共享、屏幕分辨率的自动适配。最小安装的命令行环境同样建议装因为 virtio 网络驱动和磁盘驱动的效率会更好。yum -y install open-vm-tools安装完重启虚拟机。如果是桌面环境你还会发现窗口分辨率可以自动跟随 VMware 窗口变化了不再是一块 800x600 的小屏幕。图形桌面下还可以在 VMware 菜单栏的“虚拟机 — 安装 VMware Tools”里操作系统会挂载一个虚拟光驱里面有 tar.gz 的安装包解压后运行vmware-install.pl。但说实话open-vm-tools 一步搞定没必要折腾那个老流程。5. 常见问题与排查技巧5.1 安装界面卡住、黑屏或报错我在很多机器上装过 CentOS 7遇到过几次卡在引导界面的情况。排除硬件兼容性问题后最常见的原因是 ISO 文件损坏或者 VMware 版本太老无法正确解析新格式的镜像。可以用 MD5 校验工具对比一下镜像文件的哈希值但更省事的方案是直接重新下载一次镜像。还有一种是引导参数问题在安装引导界面按 Tab 键把quiet改成nomodeset然后回车启动有些显卡兼容性较差的机器这样就能正常进入图形安装界面。安装过程中如果报错dracut或could not find kernel image多半也是 ISO 文件不完整重新下载基本能解决。5.2 安装完成后无法联网这是最高频的问题逻辑很简单先看网卡有没有 IP再看网关和 DNS。ip addr没有 IP就去查ifcfg-ens33文件里的ONBOOT是否为 yes。有 IP 但 ping 不通外网先ping 192.168.159.2也就是网关如果网关不通多半是 NAT 网络配置有问题回到 VMware 虚拟网络编辑器把 VMnet8 的 NAT 设置恢复默认。网关通了但ping www.baidu.com不通那就是 DNS 问题编辑/etc/resolv.conf确保有类似nameserver 223.5.5.5的配置或者直接改 ifcfg 文件中的 DNS1。还有一个小坑是系统里同时存在 NetworkManager 和 network 服务时配置改完要重启network服务而不是只执行ip addr刷新。5.3 磁盘空间只剩一点点了CentOS 7 安装完很多人习惯分 20G 磁盘装上桌面、Docker、数据库之后才发现空间紧张。处理办法有两个一是给虚拟机扩容在 VMware 虚拟机设置里直接增加磁盘容量然后在系统内执行growpart扩展根分区二是重装系统时直接把磁盘给到 50G 甚至 80G。我建议学习机直接用 40G 以上一步到位。日常要养成定期清理 yum 缓存和日志的习惯yum clean all journalctl --vacuum-size100M5.4 常见问题速查表场景大概率原因解决方向系统安装到一半报找不到安装源ISO 损坏或下载不完整重新下载镜像或校验 MD5虚拟机启动黑屏显卡兼容性问题或 BIOS 虚拟化未开启引导参数加nomodeset进 BIOS 开启 VT-x/SVM网卡没有 IP安装时未开启网卡或 ONBOOTno修改 ifcfg 文件为ONBOOTyes重启 network 服务能 ping 通网关但 ping 不通外网DNS 配置错误检查/etc/resolv.conf或 ifcfg 的 DNS1图形界面分辨率只有 800x600未安装 open-vm-toolsyum -y install open-vm-tools后重启yum install速度很慢默认官方源切换阿里云镜像源并makecacheSSH 远程连接被拒绝sshd 未启动或防火墙拦截systemctl start sshd放行 22 端口或关闭 firewalld5.5 再补一个很有用的快照习惯装完系统、做完初始化配置之后我强烈建议你在 VMware 里拍一张快照。具体操作是虚拟机关机状态下右键虚拟机名称选择“快照 — 拍摄快照”给快照命名比如“CentOS7-初始化后”。这样以后系统被你折腾坏了比如改坏网络配置、装了个不兼容的软件包、整个系统起不来直接恢复到这张快照三秒钟就回到一个干净、能上网、yum 源已配置好的初始状态。这个习惯无论是学习还是实际工作都受益无穷我自己的虚拟机里通常保留两到三个关键快照点刚装完系统、初始化完成、完成某个服务搭建后。覆盖操作一定要确认好别把唯一的一份好快照覆写了。我个人在实际操作中的体会是装系统这件事动手走一遍比看十篇教程管用。第一次装可能花一两个小时但只要踩过一遍坑后面再装就快得多。你可以试着在装完系统后自己动手把网络配成静态 IP、装一个 Nginx、再用另一台虚拟机去访问它整个过程走通Linux 的基本操作能力就算正式入门了。如果安装过程中碰到本文没有覆盖到的问题先冷静下来看报错信息把关键日志贴到搜索引擎里基本都能找到答案。