Mirror Efi Boot Partition
💡
原文中文,约1400字,阅读约需4分钟。
📝
内容提要
文章讨论了如何在两个 NVMe SSD 上镜像 EFI 启动分区。作者尝试了 RAID1 和脚本同步等多种方法,但效果不佳。最终,使用 dmsetup 命令创建了不依赖元数据的镜像分区,保留了原始分区表,并成功设置了 EFI 引导项,实现了自动挂载。
🎯
关键要点
- 作者为电脑配备了两个 NVMe SSD,并为每个盘分了两个分区:一个 EFI 系统分区和一个 ZFS 分区。
- 尝试使用 RAID1 镜像 EFI 分区,但发现会破坏 ZFS,且使用分区建 RAID1 会导致分区类型被修改,主板无法识别。
- 尝试使用脚本 rsync 同步两个 EFI 分区,但该方案不够优雅。
- 最终使用 dmsetup 命令创建不依赖元数据的镜像分区,保留了原始分区表。
- 通过 dmsetup 设置两个 NVMe 分区为镜像,并将镜像设备挂载到 /boot。
- 使用 efibootmgr 为主板设置两个 EFI 分区的相同引导项,以实现自动挂载。
❓
延伸问答
如何在两个 NVMe SSD 上镜像 EFI 启动分区?
可以使用 dmsetup 命令创建不依赖元数据的镜像分区,保留原始分区表,并将镜像设备挂载到 /boot。
为什么 RAID1 不适合镜像 EFI 分区?
使用 RAID1 镜像 EFI 分区会破坏 ZFS,且分区类型会被修改为 Linux RAID,导致主板无法识别。
使用脚本同步 EFI 分区有什么缺点?
使用脚本 rsync 同步 EFI 分区的方案不够优雅,可能导致管理复杂性增加。
dmsetup 命令的作用是什么?
dmsetup 命令用于创建不依赖元数据的镜像分区,能够在系统层面实现数据镜像。
如何为主板设置 EFI 引导项?
可以使用 efibootmgr 命令为主板设置两个 EFI 分区的相同引导项,以实现自动挂载。
如何实现开机自动挂载 EFI 分区?
通过编写 boot.mount 和 mirror-boot.service 文件,设置系统在启动时自动调用 dmsetup 创建镜像。
➡️