在 UEFI 环境下安装 Ubuntu 22.04 LTS,分区布局的核心逻辑其实就一条:必须有一个 FAT32 格式的 EFI 系统分区(ESP),且不能是 LVM、加密卷或 RAID 的一部分。
这是由 UEFI 固件的启动机制决定的。UEFI 固件本身不具备读取 ext4、btrfs 或 LUKS 等复杂文件系统的能力,它只认 FAT32。因此,引导加载程序(GRUB 或 shim)必须存放在这个裸露的 FAT32 分区里,固件才能加载它,进而启动内核。
以下是针对 Ubuntu 22.04 UEFI 安装的具体分区建议和规范:
1. 核心分区结构
一个标准的、稳健的 UEFI + Ubuntu 22.04 分区方案通常包含以下部分:
| 挂载点/类型 | 文件系统 | 大小建议 | 说明 |
|---|---|---|---|
/boot/efi |
FAT32 | 512MB – 1GB | EFI System Partition (ESP)。这是必须的。权限通常为 755,所有者为 root:root。不要格式化时带标签,保持默认即可。 |
/ (根目录) |
ext4 / btrfs | 剩余空间大部分 | 系统主分区。Ubuntu 22.04 默认推荐 ext4,如果你需要快照功能,可以选择 btrfs。 |
swap |
swap | RAM 的 1-2 倍 | 传统分区方式。或者使用 zram(内存压缩交换),这在现代云服务器和笔记本上越来越流行,无需单独分区。 |
/home (可选) |
ext4 / btrfs | 剩余空间 | 如果希望重装系统时保留用户数据,可以单独划分。否则可以直接并入 /。 |
2. 关键注意事项与避坑指南
A. ESP 分区的唯一性与标识
- 只能有一个 ESP:如果你的硬盘上有多个操作系统(比如 Windows + Ubuntu),它们会共享同一个 ESP 分区。Windows 会在里面放自己的引导文件,Ubuntu 也会放 GRUB。确保这个分区没有被标记为“隐藏”或“系统保留”导致 Linux 无法访问。
- 不要格式化为 NTFS 或 exFAT:虽然 UEFI 规范允许某些变体,但 Linux 的 GRUB 包对 FAT32 的支持最完善、最稳定。NTFS 驱动在早期 UEFI 实现中兼容性差,容易蓝屏或黑屏。
- UUID 匹配:GRUB 配置文件中引用的 ESP 分区 UUID 必须与实际分区一致。如果使用手动分区安装,务必在
/etc/fstab和/boot/grub/grub.cfg中检查这一点。
B. GPT 分区表是前提
UEFI 强制要求使用 GPT 分区表,不能使用传统的 MBR(msdos)。
- 在安装过程中,如果选择“手动分区”,请确保磁盘分区类型为 GPT。
- 如果之前是 MBR 系统,升级或重装时需要先转换为 GPT(注意备份数据,转换过程有风险)。
C. Secure Boot(安全启动)的处理
Ubuntu 22.04 默认支持 Secure Boot,但需要额外操作:
- 默认情况:Ubuntu 官方镜像自带经过签名的 shim 和 GRUB,开箱即用。
- 第三方驱动:如果你需要安装 NVIDIA 闭源驱动、VirtualBox 模块或其他 DKMS 驱动的专有内核模块,Secure Boot 可能会阻止加载未签名的模块。
- 解决方案:在 BIOS/UEFI 设置中关闭 Secure Boot,或者在 Ubuntu 中注册 Machine Owner Key (MOK)。对于大多数普通用户,建议在 BIOS 中直接关闭 Secure Boot,以减少后续驱动安装的麻烦。
D. 快速启动(Fast Boot)的影响
- Windows 快速启动:如果双系统,Windows 的“快速启动”会将硬盘置于半休眠状态,锁定 NTFS 分区,可能导致 Ubuntu 无法写入或读取 Windows 分区。务必在 Windows 中禁用“快速启动”。
- UEFI 快速启动:部分主板 UEFI 设置中的“Fast Boot”选项可能跳过 USB 设备检测,影响安装介质识别。建议安装时关闭此选项。
E. 云服务器的特殊情况(阿里云、腾讯云、AWS 等)
如果你是在国内云厂商的 ECS/CVM 上部署 Ubuntu 22.04 UEFI 版:
- 通常不需要你手动分区:云厂商提供的官方镜像已经预配好了合适的分区布局(通常是单一大分区
/dev/vda1挂载为/,并包含隐藏的 ESP 分区)。 - 注意磁盘类型:确保实例类型支持 UEFI 启动(绝大多数 x86_64 实例都支持)。ARM 架构(如 AWS Graviton、阿里云倚天)也基于 UEFI,但分区工具链略有不同(仍用 GPT+FAT32 ESP)。
- LVM 问题:云盘通常以块设备形式提供,不推荐在云盘上使用 LVM,除非你有明确的快照管理需求。直接使用 ext4/btrfs 更简单可靠。
3. 手动分区示例(Advanced User)
假设你有一块 1TB NVMe SSD (/dev/nvme0n1),打算做双系统或纯粹 Linux 环境:
# 使用 gdisk 或 parted 创建 GPT 分区表
sudo parted /dev/nvme0n1 mklabel gpt
# 创建 ESP 分区 (512MB, FAT32)
sudo parted /dev/nvme0n1 mkpart primary fat32 1MiB 513MiB
sudo parted /dev/nvme0n1 set 1 esp on
# 创建根分区 (ext4 或 btrfs)
sudo parted /dev/nvme0n1 mkpart primary ext4 513MiB 100%
# 格式化
sudo mkfs.fat -F 32 /dev/nvme0n1p1 # ESP
sudo mkfs.ext4 /dev/nvme0n1p2 # Root
# 挂载并安装
sudo mount /dev/nvme0n1p2 /mnt
sudo mkdir /mnt/boot/efi
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
debootstrap 或直接运行 ubuntu installer
总结
- 必选:GPT 分区表 + FAT32 格式的 ESP 分区(至少 512MB)。
- 推荐:关闭 Secure Boot 以避免驱动签名问题;关闭 Windows 快速启动以防双系统冲突。
- 云用户:直接使用官方镜像,无需关心底层分区细节,除非你要自定义裸金属服务器。
遵循以上规则,你的 Ubuntu 22.04 UEFI 安装将具备最高的兼容性和稳定性。
云技术博客