CentOS 7 安装实战:从镜像下载到系统配置的完整指南

CentOS 7 安装实战:从镜像下载到系统配置的完整指南

1. 从零开始:为什么今天还要安装CentOS 7?

如果你正在看这篇文章,大概率是刚接触Linux运维、后端开发,或者需要搭建一个稳定的服务器环境。面对市面上Ubuntu、Debian、Rocky Linux等众多选择,你可能会疑惑:为什么还要折腾一个已经停止主流维护的CentOS 7?这恰恰是我想和你聊的第一个问题。CentOS 7的生命周期支持(ELS)已经结束,这意味着它不再接收常规的安全更新和错误修复。然而,在现实的生产和开发环境中,它依然有着顽强的生命力。很多遗留的企业应用、特定的商业软件(比如一些老版本的Oracle、WebLogic)以及大量的内部系统,其部署和运行环境依然被严格限定在CentOS 7上。此外,对于学习者而言,CentOS 7的RPM包管理、systemd服务管理以及其经典的稳定特性,是理解传统企业级Linux的绝佳样本。所以,安装CentOS 7,在今天可能不是为了追求前沿,而是为了兼容历史、满足特定需求,或是完成一次经典的系统管理启蒙。

这次安装,我们将聚焦于最经典的场景:在一台物理机或虚拟机(如VMware、VirtualBox)上,全新安装一个64位的CentOS 7最小化系统。我会带你走完从镜像下载、启动介质制作,到分区规划、软件包选择,直至完成基础配置的完整链路。过程中,我会穿插大量我过去几年在真实服务器上部署时踩过的坑和总结的技巧,这些是官方文档不会告诉你的“实战经验”。我们的目标不仅仅是让系统跑起来,更是让你理解每一个步骤背后的“为什么”,从而在遇到任何变体需求(比如无图形界面安装、网络安装、自动化部署)时都能游刃有余。

2. 战前准备:镜像、介质与启动环境

安装任何操作系统,准备工作的重要性占了一半。草率的准备往往会导致安装过程中断、数据丢失,甚至需要从头再来。

2.1 获取正确的安装镜像

首先,你需要一个CentOS 7的64位安装镜像。虽然官方主站已转向Stream版本,但历史版本的镜像仍然可以从可靠的镜像站获取,例如阿里云开源镜像站、清华大学开源软件镜像站等。这里有一个关键选择:你需要决定下载哪个ISO文件。

  • DVD ISO (CentOS-7-x86_64-DVD-2009.iso):这是最常用的版本,大小约4.4GB。它包含了安装一个基本系统所需的绝大多数软件包,适合绝大多数有网络或离线安装的场景。对于新手和大多数用途,我强烈推荐使用这个版本。
  • Everything ISO (CentOS-7-x86_64-Everything-2009.iso):大小约10GB,包含了完整的软件仓库。除非你确定需要在完全离线的环境中安装大量非常用软件包,否则通常不需要它。
  • Minimal ISO (CentOS-7-x86_64-Minimal-2009.iso):大小约1GB,只包含能启动系统并完成最基本安装的核心包。安装后的系统极其精简,需要手动配置网络后再通过yum安装其他软件。适合对系统纯净度有极致要求,或用于构建Docker基础镜像的场景。

注意:务必核对下载文件的SHA256校验和,这是确保镜像文件在下载过程中未损坏或被篡改的关键一步。从镜像站下载时,通常旁边会有一个sha256sum.txt文件,在Linux或Mac下可以使用sha256sum 文件名.iso命令进行校验。

2.2 制作启动介质:U盘还是光盘?

有了ISO文件,你需要将其制作成可启动的安装介质。

  • U盘(推荐):这是目前最主流、最方便的方式。你需要一个容量至少8GB的U盘。制作过程会清空U盘内所有数据,请务必提前备份。

    • 在Windows下:不要简单地复制ISO文件到U盘。你需要使用诸如Rufus、Ventoy这类工具。以Rufus为例,选择你的U盘设备,在“引导类型选择”处点击“选择”,找到你下载的CentOS 7 ISO文件,其他选项通常保持默认(分区方案为MBR或GPT取决于你的机器,目标系统类型为BIOS或UEFI),然后点击“开始”。Rufus会正确处理引导信息,将U盘制作成可启动安装盘。
    • 在Linux/macOS下:可以使用dd命令,但这是一把“双刃剑”,命令错误可能导致磁盘数据丢失。命令通常为:sudo dd if=/path/to/centos.iso of=/dev/sdX bs=4M status=progress && sync请万分小心,of=后面的/dev/sdX必须是你的U盘设备标识符(如/dev/sdb),而不是某个分区(如/dev/sdb1)。一个更安全的替代方案是使用Etcher工具,它图形化界面友好且不易出错。
  • 光盘:如果服务器是老式设备,可能仍需要DVD光盘刻录。使用任何光盘刻录软件(如ImgBurn、macOS磁盘工具)选择“刻录镜像到光盘”即可。

2.3 配置虚拟机(如使用VMware/VirtualBox)

对于学习和测试,虚拟机是完美的沙盒。这里以VMware Workstation为例,有几个细节需要注意:

  1. 创建虚拟机时:客户机操作系统选择“Linux”,版本选择“CentOS 7 64位”。这会让VMware应用一些针对该系统的优化设置。
  2. 固件类型:选择“BIOS”或“UEFI”。如果你的物理机是较新的设备(2015年后),通常支持UEFI。UEFI启动更快、支持更大的磁盘和更安全。但如果你要模拟老服务器或不确定,选择BIOS兼容性更好。这个选择会影响后续分区时的引导装载程序安装位置。
  3. 网络适配器:默认的“NAT”模式可以让虚拟机共享主机IP上网,适合大多数安装场景。“桥接模式”会让虚拟机获取一个和主机同网段的独立IP,更像一台真实机器。
  4. 处理器和内存:对于最小化安装,1核CPU、1GB内存足以启动安装程序。但如果你计划安装图形界面或运行服务,建议至少2核、2GB内存。
  5. 磁盘:选择“创建新虚拟磁盘”。类型用默认的SCSI即可。大小建议至少20GB,并选择“将虚拟磁盘拆分成多个文件”,这样迁移和备份更方便。最关键的一步:在自定义硬件时,将新创建的虚拟磁盘的“虚拟设备节点”设置为SCSI 0:0,即第一块磁盘。这能避免一些罕见的引导问题。

3. 安装程序详解:从引导到分区

将启动介质插入服务器或配置好虚拟机启动项后,开机。你会看到CentOS 7的安装引导菜单。

3.1 引导菜单与测试介质

第一个界面通常有三个选项:

  1. Install CentOS 7:直接开始安装。
  2. Test this media & install CentOS 7:先检测安装介质的完整性,再安装。对于U盘安装,我强烈建议第一次时选择此项。我曾经遇到过因为U盘质量问题或制作不当,安装到一半报错的情况,跑一遍介质检测能提前排除这个风险。
  3. Troubleshooting:用于修复已存在的系统或进入救援模式。

选择第二项,回车。检测过程可能需要几分钟,如果所有检测都通过,会自动进入图形化安装界面(如果内存小于1GB,则会进入文本模式)。

3.2 语言、时区与软件选择

安装界面首先让你选择语言。这里选择的是安装过程的界面语言,不是系统安装后的默认语言。为了方便,可以选择中文。

接下来是核心的“安装信息摘要”界面,这里需要配置多项内容。

  • 本地化

    • 日期和时间:点击进入,在地图上点击你所在区域(如Asia/Shanghai),或手动选择。务必关闭“网络时间”同步,直到系统安装完成并配置好网络后再开启,否则安装过程可能会因网络等待而卡住。
    • 键盘:保持默认即可。
    • 语言支持:可以添加额外的语言包,但基础安装后也可以再添加。
  • 软件

    • 安装源:确认你的安装介质(如DVD或U盘)已被正确检测到。如果是网络安装,则需要在这里配置网络仓库地址。
    • 软件选择:这是决定系统面貌的关键一步。点击进入。
      • 最小安装:这是我最推荐给服务器和初学者的选项。它只安装核心系统,没有图形界面,通过命令行管理。系统纯净、占用资源少、安全性相对更高,强迫你学习使用命令行。
      • 带GUI的服务器:如果你确实需要图形界面进行操作,可以选择这个。它会安装GNOME桌面环境。
      • 其他变体:如“基础设施服务器”、“文件及打印服务器”等,会预装一些特定的服务组。对于新手,建议从“最小安装”开始,需要什么再用yum groupinstall命令安装软件组。
  • 系统

    • 安装位置:即磁盘分区,这是接下来要重点讲解的。
    • KDUMP:一个内核崩溃转储机制,用于调试。对于学习或资源紧张的虚拟机,可以关闭它,能节省一点内存。
    • 网络和主机名:可以先不在这里配置,等系统安装完成后再配置更清晰。但如果你需要从网络源安装软件,则需要在这里开启并配置网络(例如,在虚拟机NAT模式下,通常只需打开以太网连接开关即可)。

3.3 磁盘分区:手动规划的艺术

点击“安装位置”,进入磁盘分区界面。你会看到可用的磁盘(例如/dev/sda)。对于全新磁盘,你需要选择“我要配置分区”,然后点击完成。

现在进入手动分区界面。对于服务器,一个经典、安全的分区方案如下。点击“+”号来创建挂载点:

  1. /boot分区

    • 挂载点/boot
    • 期望容量1GiB
    • 文件系统xfs(CentOS 7默认) 或ext4
    • 为什么需要它:这个分区存放系统内核、引导程序(GRUB)等启动所需的文件。将其独立出来,即使根分区损坏,只要/boot完好,仍有希望修复系统。1GB空间对于CentOS 7来说绰绰有余。
  2. /分区(根分区)

    • 挂载点/
    • 期望容量剩余所有空间(可以先不填满,例如留20GB给/home
    • 文件系统xfs
    • 为什么需要它:系统的根目录,所有其他目录的起点。必须要有。
  3. /home分区(可选但推荐)

    • 挂载点/home
    • 期望容量20GiB或根据用户数据量决定
    • 文件系统xfs
    • 为什么需要它:将用户数据(家目录)与系统文件分离。这样,未来如果需要重装系统,可以格式化/分区而保留/home分区,用户数据无损。对于多用户服务器尤其重要。
  4. swap分区(交换分区)

    • 挂载点:不设挂载点,在“文件系统”中选择swap
    • 期望容量:一个经验法则是:当物理内存小于8GB时,swap大小设为物理内存的1.5-2倍;大于8GB时,设为8-16GB即可。例如,对于2GB内存的虚拟机,可以设为4GiB
    • 为什么需要它:当物理内存不足时,系统会将部分不常用的内存数据暂时移到swap空间,防止程序崩溃。在现代服务器拥有大内存的情况下,swap的角色更多是用于系统休眠(Hibernate)和应对极端的内存压力。

重要提示:在“分区方案”下,你需要选择“标准分区”而不是LVM。对于初学者,标准分区更直观易懂。LVM(逻辑卷管理)提供了更灵活的磁盘空间管理(如在线扩容),但概念更复杂,我们可以在系统安装后再学习如何添加和使用LVM。

分区创建完毕后,在下方还有一个“引导装载程序”的选项。默认情况下,GRUB引导程序会被安装到第一块磁盘的主引导记录(MBR)或UEFI系统分区(ESP)上,这通常是正确的,无需修改。

点击“完成”,系统会提示你“接受更改”,确认后返回摘要界面。

4. 收尾工作:用户、密码与首次启动

所有配置检查无误后,点击右下角的“开始安装”。安装过程会持续一段时间,期间你需要设置root密码和创建一个普通用户

4.1 设置root密码

点击“ROOT密码”进行设置。Root是系统的超级管理员账户,权限至高无上。务必设置一个强密码(包含大小写字母、数字、特殊字符,且长度足够)。如果密码过于简单,安装程序会提示你,你需要点击两次“完成”来确认使用弱密码(不推荐)。

4.2 创建用户

虽然你可以一直使用root操作,但这是极其危险的做法。任何误操作都可能导致系统崩溃。最佳实践是:日常使用一个普通用户账户,仅在需要时使用sudo命令临时获取root权限。

点击“创建用户”,输入用户名(如admin或你的名字),设置全名(可选),同样设置一个强密码。最关键的一步:勾选“将此用户设为管理员”。这会将用户加入wheel组,从而拥有使用sudo的权限。

安装进程继续进行,直到完成。点击“重启”按钮,系统会重启。重启后,记得在BIOS/UEFI设置中调整启动顺序,或者从虚拟机中移除安装介质(如弹出ISO镜像),否则可能会再次进入安装程序。

4.3 首次启动与登录

系统重启后,你会看到GRUB引导菜单(如果只有一个系统,可能只显示几秒)。随后进入系统。

  1. 接受许可证:首次启动可能会显示许可证信息,勾选“我同意许可协议”并点击完成。
  2. 初始设置(可选):如果你安装的是带GUI的版本,可能会有一个初始设置向导,可以跳过或简单配置。
  3. 登录:在登录界面,输入你创建的普通用户的用户名和密码,登录系统。

如果是“最小安装”,重启后你会看到一个纯文本的登录提示符:

CentOS Linux 7 (Core) Kernel 3.10.0-1160.el7.x86_64 on an x86_64 localhost login:

输入你的普通用户名和密码,即可进入命令行界面。

4.4 基础配置与网络设置

登录后,第一件事是更新系统和配置网络。

  • 切换到root权限:输入su -然后输入root密码,或者更推荐使用sudo -i(如果你创建的用户是管理员)并输入你自己的密码。

  • 配置网络(如果安装时未配置): CentOS 7使用NetworkManager,但最小安装通常使用network-scripts。查看网卡名称:ip addrnmcli d(如果nmcli可用)。假设网卡名为ens33(在虚拟机中常见)。 编辑网络配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens33。 确保关键配置如下(以静态IP为例):

    TYPE=Ethernet BOOTPROTO=static # 静态IP,如果是DHCP则改为dhcp NAME=ens33 DEVICE=ens33 ONBOOT=yes # 开机自启,非常重要! IPADDR=192.168.1.100 # 你的IP地址 NETMASK=255.255.255.0 # 或使用PREFIX=24 GATEWAY=192.168.1.1 # 你的网关 DNS1=8.8.8.8 # DNS服务器

    保存退出(:wq),然后重启网络服务:systemctl restart network。 测试网络:ping www.baidu.com

  • 更新系统:配置好网络后,立即更新系统以获取最新的安全补丁和软件包(在ELS结束后,这步可能只能从一些第三方存档仓库获取更新,需谨慎)。

    sudo yum makecache # 更新仓库元数据 sudo yum update -y # 升级所有包

    更新完成后,建议重启:sudo reboot

5. 安装后的精调与必备软件

系统安装并更新后,还处于“裸奔”状态。以下几个步骤能让你的CentOS 7更好用、更安全。

5.1 配置防火墙与SELinux

  • 防火墙(firewalld):CentOS 7默认使用firewalld。了解其基本状态:

    sudo systemctl status firewalld # 查看状态 sudo firewall-cmd --state # 查看运行状态

    如果你只是在内网测试,可以暂时关闭它:sudo systemctl stop firewalldsudo systemctl disable firewalld但在生产环境,强烈建议学习并配置firewalld规则,而不是直接关闭。

  • SELinux:这是一个强大的安全模块,但也会给新手带来很多“权限被拒绝”的困扰。在学习和测试环境,可以将其模式改为“宽容”模式,它只记录违规而不阻止:

    sudo setenforce 0 # 临时设置为Permissive sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config # 永久生效(重启后)

    生产环境请务必在充分理解后配置SELinux策略,而不是直接禁用。

5.2 安装常用工具

最小化系统缺少很多常用工具,用yum安装它们:

sudo yum install -y vim wget net-tools bash-completion epel-release
  • vim:比默认的vi更强大的文本编辑器。
  • wget:命令行下载工具。
  • net-tools:包含ifconfignetstat等传统网络工具(虽然ip命令是未来,但很多脚本仍依赖它们)。
  • bash-completion:提供命令自动补全功能。
  • epel-release:安装EPEL(Extra Packages for Enterprise Linux)仓库,它提供了大量CentOS官方仓库中没有的常用软件。

5.3 配置SSH远程登录(针对服务器)

如果你安装的是服务器,需要通过SSH远程管理:

  1. 确保openssh-server已安装并运行:sudo systemctl status sshd
  2. 如果需要从外部连接,在防火墙中开放22端口:
    sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
  3. (重要安全措施)修改SSH默认端口并禁用root登录: 编辑/etc/ssh/sshd_config文件:
    Port 2222 # 改为一个非22的高位端口,比如2222 PermitRootLogin no # 禁止root直接登录 PasswordAuthentication yes # 如果你用密码登录,保持yes;如果用密钥,可设为no
    重启SSH服务:sudo systemctl restart sshd注意:修改端口后,连接命令需指定端口:ssh username@server_ip -p 2222。在重启sshd前,务必确保新端口已在防火墙中开放,并且你有一个可以sudo的普通用户,否则你可能会把自己锁在系统外面。

6. 避坑指南:那些年我踩过的安装“雷区”

回顾无数次安装CentOS 7的经历,有些错误反复出现。这里集中列出,希望能帮你一次成功。

  • 坑一:安装介质制作失败。这是最常见的问题。症状:启动时卡在dracut提示符,或提示找不到安装介质。解决方案:务必使用Rufus、Etcher等专业工具,并以DD模式(如果工具提供选项)写入U盘。在Windows下,绝对不要直接解压或复制ISO文件到U盘。

  • 坑二:安装过程中图形界面卡死或无响应。可能原因:虚拟机分配内存不足(小于1GB),或显卡驱动问题。解决方案:为虚拟机分配至少1GB(推荐2GB)内存。对于物理机,在引导菜单按Tab键编辑启动参数,在行尾添加nomodeset再回车,这会禁用内核模式设置,使用基本显示驱动。

  • 坑三:分区后无法安装引导程序。错误提示:“引导装载程序配置失败”。可能原因:在UEFI模式下安装,但没有创建EFI系统分区(ESP);或者磁盘分区表类型(MBR/GPT)与引导模式(BIOS/UEFI)不匹配。解决方案

    • UEFI模式:你必须创建一个EFI系统分区。挂载点为/boot/efi,文件系统类型为EFI System Partition,大小至少200MB(推荐500MB)。
    • 确保虚拟机设置中的“固件类型”与分区方案匹配。不确定的话,在物理机BIOS设置中尝试切换“Legacy Support”/“UEFI Only”模式。
  • 坑四:安装完成后无法联网。可能原因:网卡未启用,或NetworkManager与network服务冲突。解决方案

    1. 检查网卡是否启用:ip addr,看看对应网卡(如ens33)是否有UP标志。
    2. 设置开机自启:确保/etc/sysconfig/network-scripts/ifcfg-ens33ONBOOT=yes
    3. 停止冲突服务:CentOS 7有时会同时运行NetworkManagernetwork服务。可以尝试禁用其中一个:sudo systemctl stop NetworkManager; sudo systemctl disable NetworkManager,然后重启network服务。
  • 坑五:安装后yum命令报错“Cannot find a valid baseurl”。这通常是因为网络未通,或者DNS未设置。解决方案:按照前面所述正确配置静态IP和DNS,或确保DHCP能正确分配。可以尝试ping 8.8.8.8测试网络连通性,再ping www.baidu.com测试DNS解析。

安装一个系统就像搭建一个房子的地基。CentOS 7这个“地基”虽然老,但依然坚固、可靠,并且有海量的文档和社区经验可供参考。通过这次从准备到精调的完整流程,我希望你收获的不仅仅是一个可用的系统,更是一种面对问题时的排查思路和动手能力。记住,在Linux的世界里,遇到问题查看日志(/var/log/下的文件)、善用man命令和搜索引擎,比你想象中更能解决问题。