在 UEFI 模式下安装 CentOS 7.9,核心痛点其实就两个:分区表的格式和引导加载程序的位置。如果你还是用以前 BIOS (Legacy) 那一套“全盘格式化”或者“只分一个 / ”的思路,大概率会卡在 GRUB 界面或者重启后找不到系统。
以下是几个必须注意的关键设置点,按重要性排序:
1. 磁盘分区方案(最关键)
CentOS 7 默认使用 ext4 文件系统,但在 UEFI 下,你必须遵循 EFI System Partition (ESP) 的标准规范。
-
不要使用 LVM 作为根分区的唯一选项,至少需要一个独立的 EFI 分区
- EFI 分区:大小建议 200MB – 500MB 之间。文件系统类型必须是
efi(在 anaconda 安装器中通常会自动识别或需要你手动选择)。这个分区是 FAT32 格式的,用于存放 bootloader。 - Boot 分区(可选但推荐):虽然 CentOS 7 在 UEFI 下可以将
/boot放在 EFI 分区里,但为了管理和兼容性,很多老手还是会单独划一个/boot分区(ext4,几百 MB),剩下的空间给 LVM (/)。 - Swap 分区:根据内存大小分配。
- Root (/):LVM PV -> VG -> LV,格式化为 ext4。
避坑指南:
- 千万不要把 EFI 分区格式化成 ext4 或 xfs。
- 确保 EFI 分区的“挂载点”在安装器中正确指向
/boot/efi(有些版本默认可能不显示,需要手动添加挂载点)。 - 如果使用 GPT 分区表(UEFI 强制要求 GPT),确保没有残留的 MBR 痕迹。如果之前装过 Windows 或其他 Linux,记得彻底清除分区表。
- EFI 分区:大小建议 200MB – 500MB 之间。文件系统类型必须是
2. 安装介质与启动方式
-
U 盘制作工具:推荐使用 Rufus (Windows 下) 或 balenaEtcher。
- 如果用 Rufus,目标系统类型选 “GPT/UFI”,分区 scheme 选 “GPT”,目标系统选 “UEFI (非 CSM)”。这能确保 U 盘本身也是以 UEFI 模式被主板识别。
- 不要用 UltraISO 做 CentOS 7 的 U 盘,它经常搞坏 EFI 目录结构,导致安装器找不到内核。
-
BIOS/UEFI 设置:
- Secure Boot:CentOS 7 官方签名支持 Secure Boot,但国内镜像源有时会有第三方模块问题。最稳妥的做法是暂时关闭 Secure Boot,除非你非常清楚自己在做什么。
- CSM (Compatibility Support Module):必须关闭。开启 CSM 会导致主板同时提供 Legacy 和 UEFI 支持,容易让安装器混淆,或者安装完后引导顺序混乱。
- SATA Mode:确保是 AHCI,不是 RAID 或 IDE。
3. 安装过程中的细节
- 网络配置:CentOS 7.9 默认网卡命名可能是
ens33或enpXsY,不是以前的eth0。如果在安装时配静态 IP,注意网卡名称。 - 软件选择:
- 如果是服务器,选 “Minimal Install” 或 “Server with GUI”(如果需要图形化)。
- 不要选 “Everything”,除非你是做开发环境且硬盘足够大,否则体积巨大且包含大量无用包。
- 用户创建:
- 务必创建一个普通用户,并赋予 sudo 权限。
- root 密码要设复杂一点,因为后续你可能需要远程登录(虽然默认禁 SSH,但很多人会开)。
4. 安装后的关键检查(极易出错)
安装完成重启后,第一件事不是进去看桌面,而是进 BIOS 看启动项。
- 确认启动顺序:第一启动项应该是你的硬盘上的
CentOS Linux或shimx64.efi之类的 UEFI 条目,而不是 U 盘。 - GRUB 菜单:正常情况应该看到 GRUB 菜单,然后进入系统。如果黑屏或报错
No bootable device,通常是 EFI 分区没挂对,或者 BIOS 里没关 CSM。
5. 常见问题排查
-
问题:安装后重启进不了系统,卡在 GRUB shell 或提示
error: unknown filesystem- 原因:EFI 分区挂载点错误,或者
/boot分区没有正确包含在内。 - 解决:从 U 盘启动,选择 “Troubleshooting” -> “Rescue a CentOS system”,挂载原系统,检查
/etc/fstab和/boot/efi的内容。
- 原因:EFI 分区挂载点错误,或者
-
问题:时间不对,快了几小时
- 原因:CentOS 7 默认使用 UTC 时间,而 Windows 使用本地时间。如果双系统,需要在 Windows 中修改注册表或使用工具同步,或在 CentOS 中设置
timedatectl set-local-rtc 1(不推荐,最好统一用 UTC)。
- 原因:CentOS 7 默认使用 UTC 时间,而 Windows 使用本地时间。如果双系统,需要在 Windows 中修改注册表或使用工具同步,或在 CentOS 中设置
-
问题:无法连接网络,yum 更新失败
- 原因:DNS 配置错误或镜像源不可用。
- 解决:检查
/etc/resolv.conf,添加nameserver 8.8.8.8或114.114.114.114。更换为阿里云或清华大学的 CentOS 7 镜像源(注意 CentOS 7 已停止维护,EOL 日期是 2024 年 6 月 30 日,建议尽快迁移到 AlmaLinux 9、Rocky Linux 9 或 CentOS Stream 9)。
总结
在 UEFI 下装 CentOS 7.9,记住一句话:GPT 分区表 + 独立 EFI 分区 (FAT32, 挂载到 /boot/efi) + 关闭 CSM + 关闭 Secure Boot (初期)。
另外,作为一个负责任的回答者,我必须提醒你:CentOS 7 已于 2024 年 6 月 30 日正式结束生命周期 (EOL),不再接收安全更新。如果是生产环境,强烈建议升级到 AlmaLinux 9、Rocky Linux 9 或 Ubuntu 22.04/24.04 LTS。这些新系统在 UEFI 下的安装流程更现代化,社区支持更好,安全性也更有保障。
云技术博客