1. 为什么选择CentOS7精简安装
作为一名长期使用Linux系统的运维工程师,我至今仍会在某些特定场景下选择CentOS7。虽然官方已经停止维护,但它的稳定性、软件生态和文档资源依然使其成为企业环境中的"老黄牛"。特别是在以下三种情况时,我会毫不犹豫选择CentOS7:
遗留系统维护:许多传统企业的核心业务系统仍运行在CentOS7上,与其配套的中间件版本、数据库连接驱动等都需要保持环境一致性。上周我就遇到一个Oracle 11gR2的案例,在CentOS8上安装时各种依赖报错,换回CentOS7后一切正常。
硬件兼容性:旧服务器(特别是某些工控设备)的驱动支持往往只到CentOS7内核版本。曾有个客户的生产线控制机,其采集卡驱动最后更新于2019年,明确说明只支持3.10内核。
学习成本考量:对于刚接触Linux的新手,网上80%的中文教程和解决方案都是基于CentOS7的。让新人直接用RockyLinux 9,遇到问题时搜索到的解决方案可能需要额外做版本适配。
提示:虽然本文演示的是精简安装,但生产环境强烈建议使用RockyLinux/AlmaLinux等替代发行版。本文方法更适合测试环境快速搭建。
2. 准备工作:镜像获取与验证
2.1 官方镜像下载渠道
目前CentOS官方镜像已迁移至 Vault镜像库 ,我通常下载Minimal版本(约900MB)而非完整的DVD镜像。具体路径为:
https://vault.centos.org/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso如果网络环境特殊,也可以考虑国内镜像源:
- 阿里云:
https://mirrors.aliyun.com/centos-vault/7.9.2009/isos/x86_64/ - 清华:
https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.9.2009/isos/x86_64/
2.2 校验文件完整性
下载完成后务必验证SHA256校验值,这是我去年踩过的坑:某次下载的镜像文件损坏,导致安装到75%时报错。验证命令如下:
echo "07b94e6b1a0b0260b94c83d6bb16e0d8044a7f5b75c14f7d5e76a47f2b27a3d4 CentOS-7-x86_64-Minimal-2009.iso" | sha256sum -c正确的输出应该显示:CentOS-7-x86_64-Minimal-2009.iso: OK
3. 虚拟机环境配置(以VMware为例)
3.1 新建虚拟机关键参数
在VMware Workstation 17中创建虚拟机时,这几个参数需要特别注意:
- 固件类型:选择
BIOS而非UEFI,因为很多老版本工具链对UEFI支持不佳 - 磁盘配置:建议20GB动态分配(实际占用约5GB)
- 网络适配器:使用NAT模式更方便联网
- CPU核心:给1核即可,但务必勾选
虚拟化Intel VT-x/EPT
3.2 安装前的高级设置
在虚拟机设置 → 选项 → 高级中,建议修改:
- 将
Firmware type显式设置为BIOS - 勾选
Enable logging便于排查问题 - 设置
Processors→Virtualization engine为优先
4. 安装过程详解
4.1 启动安装界面
载入ISO后会出现以下菜单,这里有个隐藏技巧:按Tab键可以编辑启动参数。我们添加nomodeset参数避免显卡兼容问题:
> Install CentOS 7 quiet nomodeset4.2 分区方案设计
使用自动分区会创建不必要的/home分区,手动分区建议如下布局:
| 挂载点 | 大小 | 文件系统 | 备注 |
|---|---|---|---|
| /boot | 1GB | ext4 | 必须独立分区 |
| / | 剩余 | xfs | CentOS7默认 |
| swap | 2GB | swap | 内存<8GB时建议 |
实际操作步骤:
- 选择
我要配置分区→ 点击完成 - 点击
+添加/boot分区 - 添加swap分区(内存小于8GB时建议设为内存2倍)
- 剩余空间全部分给/
注意:XFS文件系统虽然性能好,但不支持缩小分区。如果后续需要调整,建议用ext4。
4.3 软件包选择
在软件选择界面,务必选择最小安装,然后手动添加以下包组:
基础网络工具(包含ifconfig等)开发工具(GCC等编译工具链)系统管理工具(包含sudo等)
取消勾选Kdump和安全性工具以节省资源。
5. 首次启动配置
5.1 网络连接问题排查
如果启动后发现无法联网,按以下步骤排查:
# 查看网卡名称(通常是ens33或eth0) ip addr # 修改网卡配置(示例为ens33) vi /etc/sysconfig/network-scripts/ifcfg-ens33确保包含以下关键参数:
ONBOOT=yes BOOTPROTO=dhcp NM_CONTROLLED=no5.2 必做的安全加固
- 禁用root远程登录:
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config systemctl restart sshd- 配置基础防火墙:
firewall-cmd --permanent --add-service=ssh firewall-cmd --reload- 创建日常用户:
useradd -m -G wheel opsuser passwd opsuser6. 精简系统优化技巧
6.1 删除无用软件包
运行以下命令可节省约300MB空间:
package-cleanup --quiet --leaves | xargs yum remove -y yum clean all rm -rf /var/cache/yum6.2 禁用不必要的服务
这些服务在测试环境中通常不需要:
systemctl disable postfix systemctl disable tuned systemctl disable kdump6.3 日志文件限制
防止/var/log爆满:
# 限制journal日志大小 sed -i 's/#SystemMaxUse=/SystemMaxUse=100M/' /etc/systemd/journald.conf # 配置logrotate cat > /etc/logrotate.d/myapp <<EOF /var/log/myapp/*.log { daily missingok rotate 7 compress delaycompress notifempty create 640 root adm } EOF7. Yum源配置最佳实践
7.1 备份原有源
mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/7.2 配置阿里云源
创建/etc/yum.repos.d/aliyun.repo:
[base] name=CentOS-$releasever - Base - aliyun baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/os/$basearch/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever - Updates - aliyun baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/updates/$basearch/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-77.3 安装EPEL源
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm sed -e 's!^metalink=!#metalink=!g' \ -e 's!^#baseurl=!baseurl=!g' \ -e 's!//download\.fedoraproject\.org/pub!//mirrors.aliyun.com!g' \ -i /etc/yum.repos.d/epel*.repo8. 常见问题解决方案
8.1 忘记root密码
- 在grub界面按
e进入编辑模式 - 找到
linux16行,末尾添加rd.break - 按Ctrl+x启动后执行:
mount -o remount,rw /sysroot chroot /sysroot passwd touch /.autorelabel exit reboot8.2 时间同步问题
# 安装chrony yum install -y chrony # 配置国内NTP服务器 sed -i 's/^server.*/server ntp.aliyun.com iburst/' /etc/chrony.conf # 启动服务 systemctl enable chronyd systemctl start chronyd # 验证同步状态 chronyc sources -v8.3 中文乱码处理
# 安装中文包 yum groupinstall -y "fonts" # 修改系统语言 localectl set-locale LANG=zh_CN.utf8 # 临时生效(当前会话) export LANG=zh_CN.utf8经过这样一套流程下来,最终得到的CentOS7系统占用空间不到3GB,内存空闲时仅消耗150MB左右,非常适合作为开发测试环境的基础镜像。我通常会把这个状态做成模板虚拟机,以后新建环境时直接克隆即可。