CentOS 最小化安装

3 阅读9分钟

一、概述

CentOS 最小化安装是服务器场景的首选部署方式,仅搭载系统核心组件,无图形化界面、冗余插件和预装软件,具备占用资源少、安全漏洞少、启动速度快、自定义程度高四大优势,适用于生产服务器、容器宿主机、运维测试环境等场景。

本文以CentOS 7(长期稳定版)为核心,覆盖安装前准备、分步安装、系统初始化、安全优化、常见问题排查全流程,标注关键注意事项,规避安装和初始化风险。

二、安装前准备工作

2.1 镜像下载(官方/国内镜像源)

优先选择最小化专属镜像,避免使用完整版镜像误装组件,推荐国内镜像站提升下载速度:

  • CentOS 7 最小化镜像:CentOS-7-x86_64.iso(最终稳定版,长期维护)
  • 国内镜像站:阿里云镜像、清华大学开源镜像、华为云镜像

注意:严禁使用修改版、精简过度的第三方镜像,避免缺失驱动、依赖导致系统崩溃或无法启动

2.2 安装介质制作

  • 虚拟机部署(VMware/Proxmox/KVM):直接挂载ISO镜像,分配硬件配置(推荐:CPU≥1核、内存≥1GB、硬盘≥20GB),这里我们用此方法安装。

2.3 启动项配置

开机按主板快捷键(Del/F2/F12/Esc,依主板型号而定)进入BIOS/UEFI,设置U盘/镜像为第一启动项,关闭安全启动(Secure Boot),防止安装拦截。

三、分步安装操作(CentOS 7)

3.1 启动引导与语言选择

  1. 启动后选择Install CentOS 7,回车进入安装界面

  2. 语言优先选择English (United States),统一运维环境,减少中文乱码问题;如需中文可选择简体中文,点击Continue进入配置页

3.2 核心配置项(关键步骤,切勿跳过)

3.2.1 时区与时间配置

点击DATE & TIME,区域选择Asia,城市选择Shanghai,开启网络时间同步(NTP),确保系统时间精准,避免日志、服务异常。

image-20260320162818609

image-20260320163110031

image-20260320163142881

3.2.2 软件选择(最小化核心)

点击SOFTWARE SELECTION,Base Environment 严格选择Minimal Install不勾选任何附加组件、桌面环境、开发工具,保持纯最小化环境,点击Done保存。

3.2.3 磁盘分区配置

点击INSTALLATION DESTINATION,选择目标硬盘,建议选择I will configure partitioning手动分区(新手可自动分区,稳定性更强),推荐分区方案(XFS文件系统):

挂载点分区大小分区类型用途说明
/boot1GB标准分区存放系统启动文件,必分分区
swap内存1~2倍(内存≥8GB设8GB即可)交换分区虚拟内存,缓解物理内存不足
/剩余所有空间LVM/标准分区根分区,存放系统和所有数据
分区完成后点击Done,选择Accept Changes接受配置。

image-20260320163309532

image-20260320163334570

3.2.4 网络与主机名配置

  1. 点击NETWORK & HOSTNAME,开启网卡开
  2. 关(将OFF切换为ON),确保安装过程联网
  3. 设置主机名(如centos-server、prod-minimal-01),规范命名便于管理
  4. 静态IP配置(生产环境必设):点击Configure,选择IPv4,设置为Manual,添加IP地址、子网掩码、网关、DNS(推荐223.5.5.5、119.29.29.29),保存配置

image-20260320163241633

3.2.5 剩余配置项

KDUMP(系统崩溃转储):服务器内存≥2GB可关闭,节省资源;Security Policy默认即可,无需额外修改。

3.3 开始安装与账户设置

  1. 确认所有配置无误,点击Begin Installation启动安装

  2. 安装过程中设置ROOT密码:密码复杂度需达标(大小写+数字+特殊字符),严禁使用弱密码,牢记密码

  3. 可选创建普通用户:生产环境建议创建普通账号,通过sudo提权,禁止长期使用root直接操作

  4. 等待安装进度完成,点击Reboot重启系统

重启后务必拔出U盘安装介质,避免重复进入安装界面

image-20260320163440269

四、系统初始化优化(最小化安装后必做)

最小化安装后系统仅含核心命令,需完成基础配置、依赖安装、安全优化,保障系统稳定可用。

4.1 登录验证

重启后进入命令行界面,输入root账号和设置的密码登录,出现命令提示符即安装成功。

4.2 网络配置修复(安装未配置时)

最小化安装没有ifconfig命令,需要先安装net-tools包:

  1. 查看网卡名称:ip addr

  2. 编辑网卡配置文件:vi /etc/sysconfig/network-scripts/ifcfg-网卡名(CentOS 7)

  3. 修改核心参数:ONBOOT=yes(开机自启网卡),BOOTPROTO=static(静态IP)或dhcp(动态IP)

  4. 重启网络服务:systemctl restart network(CentOS 7);

4.3 系统更新与基础工具安装

4.3.1 更新补丁

# 更新系统补丁
yum update -y

4.3.2 安装最小化安装常用命令

[root@centos ~]# yum install  vim iotop bc gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl  openssl-devel zip unzip zlib-devel  net-tools lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel bc  systemd-devel bash-completion traceroute -y

4.3.3 替换yum源为国内的阿里源

[root@centos ~]# cd /etc/yum.repos.d/
[root@centos yum.repos.d]# ll
total 32
-rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Nov 23  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23  2018 CentOS-Vault.repo

#备份原有的yum源
[root@centos yum.repos.d]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

#下载新的CentOS-Base.repo 到/etc/yum.repos.d/
[root@centos yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
--2019-08-27 06:00:49--  http://mirrors.aliyun.com/repo/Centos-7.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 111.126.124.243, 111.126.124.245, 111.126.124.218, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|111.126.124.243|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2523 (2.5K) [application/octet-stream]
Saving to: ‘/etc/yum.repos.d/CentOS-Base.repo’

100%[=================================================================================================================================>] 2,523       --.-K/s   in 0s      

2019-08-27 06:00:50 (101 MB/s) - ‘/etc/yum.repos.d/CentOS-Base.repo’ saved [2523/2523]

#运行yum makecache生成缓存
[root@centos yum.repos.d]# yum makecache
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                                                | 3.6 kB  00:00:00     
extras                                                                                                                                              | 3.4 kB  00:00:00     
updates                                                                                                                                             | 3.4 kB  00:00:00     
(1/8): extras/7/x86_64/filelists_db                                                                                                                 | 249 kB  00:00:00     
(2/8): updates/7/x86_64/filelists_db                                                                                                                | 5.2 MB  00:00:00     
(3/8): updates/7/x86_64/prestodelta                                                                                                                 | 945 kB  00:00:00     
(4/8): updates/7/x86_64/other_db                                                                                                                    | 764 kB  00:00:00     
(5/8): base/7/x86_64/filelists_db                                                                                                                   | 7.1 MB  00:00:06     
extras/7/x86_64/other_db       FAILED                                          
http://mirrors.cloud.aliyuncs.com/centos/7/extras/x86_64/repodata/9939abfee3e6d1acd6ed15d360098d62aa0e3a9ab6623ba26c7fcfd45d2682a1-other.sqlite.bz2: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"
Trying other mirror.
(6/8): extras/7/x86_64/other_db                                                                                                                     | 131 kB  00:00:00     
base/7/x86_64/other_db         FAILED                                          
http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/fbebcd3de05e22bd1cd526e594f235968401471d4a9aef3c1ad356b6d1965365-other.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
Trying other mirror.
extras/7/x86_64/prestodelta    FAILED                                          
http://mirrors.aliyuncs.com/centos/7/extras/x86_64/repodata/565980b5518bd24089690cb4fded5955e5dc78a4cd3565e19384a9d6f3053892-prestodelta.xml.gz: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
Trying other mirror.
(7/8): base/7/x86_64/other_db                                                                                                                       | 2.6 MB  00:00:00     
(8/8): extras/7/x86_64/prestodelta                                                                                                                  |  73 kB  00:00:00     
Metadata Cache Created

4.4 安全与基础优化

4.4.1 SELinux配置

# 临时关闭SELinux
setenforce 0
# 永久关闭SELinux(生产环境按需开启,新手建议先关闭)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

[root@centos ~]# vim /etc/sysconfig/selinux 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing  #此项要关闭,设置为disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

验证selinux是否已经关闭:

[root@centos ~]# getenforce
Enforcing
[root@centos ~]# reboot #重启后生效

Connection closed by foreign host.

Disconnected from remote host(centos) at 21:52:52.

Type `help' to learn how to use Xshell prompt.
[c:\~]$ 

Connecting to 192.168.0.11:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Tue Aug 27 05:40:57 2019 from 192.168.0.1
[root@centos ~]# getenforce
Disabled

4.4.2 防火墙配置

# 查看防火墙状态
systemctl status firewalld
# 测试环境可临时关闭并禁用开机自启(生产环境仅开放必要端口)
systemctl stop firewalld
systemctl disable firewalld

[root@centos ~]# systemctl  stop firewall
Failed to stop firewall.service: Unit firewall.service not loaded.
[root@centos ~]# yum install firewall
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirrors.163.com
 * updates: mirrors.huaweicloud.com
No package firewall available.
Error: Nothing to do
[root@centos ~]# systemctl stop firewalld
[root@centos ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

4.4.3 时间同步校准

# 安装时间同步工具
yum install -y chrony
# 开机自启并启动服务
systemctl enable --now chronyd
# 校验同步状态
chronyc sources

修改完以后重启电脑,重启完以后此机器的基本配置文件已经完成;

以上完成了最小化安装centos的基本初始环境的设置,可以保存快照上生产环境了。

五、关键注意事项与风险规避

  • 分区风险:自动分区需确认硬盘无重要数据,手动分区避免误删分区表;服务器硬盘建议采用LVM分区,便于后续扩容

  • 网络风险:生产环境必须配置静态IP,禁止使用动态IP,防止IP变动导致服务不可用

  • 账户风险:root账号密码严格保密,生产环境禁用root远程SSH登录,创建普通用户并配置sudo权限

  • 软件风险:最小化环境无预装工具,缺失命令通过官方yum源安装,禁止随意安装第三方未知软件

  • 重启风险:优化配置修改完成后,建议重启系统验证所有配置生效:reboot

六、常见问题排查

6.1 无法联网

问题:最小化安装后无法上网

解决:检查网卡是否启用,使用nmcli或编辑/etc/sysconfig/network-scripts/ifcfg-*文件配置。

排查网卡配置文件ONBOOT参数是否为yes、IP/网关/DNS是否正确、网线/虚拟网卡是否连通,重启网络服务重试。

6.2 命令不存在(如ifconfig、vim)

问题:ifconfig命令未找到

解决:该命令属于net-tools包,需手动安装:yum install net-tools -y

最小化环境未预装,通过yum install -y 对应工具包安装(ifconfig属于net-tools,vim属于vim-enhanced)。

6.3 安装卡死/黑屏

检查硬件兼容性、镜像是否完整、U盘是否损坏,虚拟机环境调整硬件分配(内存≥1GB),关闭显卡硬件加速。

6.4 无法重启/启动失败

拔出安装介质,检查BIOS启动项为硬盘启动,排查分区是否损坏、SELinux是否误配置。

七、文档说明

本文档适用于CentOS 7最小化安装部署,可根据实际业务场景调整分区大小、安全策略、工具安装项;生产环境部署前建议先在测试环境演练,确认无误后再上线操作。