8
This commit is contained in:
28
AGENTS.md
28
AGENTS.md
@@ -110,11 +110,29 @@ options root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rhgb quie
|
||||
检测到缺少 EFI 模块时,自动安装相应的包:
|
||||
| 发行版 | 包名 |
|
||||
|--------|------|
|
||||
| CentOS/RHEL/Rocky/Alma/Fedora | `grub2-efi-x64`, `grub2-efi-x64-modules` |
|
||||
| Debian/Ubuntu | `grub-efi-amd64` |
|
||||
| Arch/Manjaro | `grub` (已包含 EFI 支持) |
|
||||
| CentOS/RHEL/Rocky/Alma/Fedora | `grub2-efi-x64`, `grub2-efi-x64-modules`, `shim-x64` |
|
||||
| Debian/Ubuntu | `grub-efi-amd64`, `shim-signed` |
|
||||
| Arch/Manjaro | `grub`, `efibootmgr` |
|
||||
|
||||
### 7. GRUB 修复 (`backend.py:chroot_and_repair_grub`)
|
||||
### 7. 手动 EFI 安装 (`backend.py:_manual_install_efi_files`)
|
||||
|
||||
**NEW v2.4**: 当 `grub2-install` 因 Secure Boot 不支持时,使用手动方式安装 EFI 文件
|
||||
|
||||
#### 问题场景
|
||||
某些系统(特别是 CentOS/RHEL 8)的 `grub2-install` 会报错:
|
||||
```
|
||||
this utility cannot be used for EFI platforms because it does not support UEFI Secure Boot.
|
||||
```
|
||||
|
||||
这是因为标准 `grub2-install` 不支持 Secure Boot,需要使用 `shim` 链式加载。
|
||||
|
||||
#### 手动安装方法
|
||||
当 `grub2-install` 失败时,自动尝试:
|
||||
1. **查找现有 EFI 文件** - 从 `/boot/efi/EFI/<distro>/` 复制已有的 `grubx64.efi` 或 `shimx64.efi`
|
||||
2. **使用 shim 链式加载** - 复制 `shimx64.efi` 并配置它加载 `grubx64.efi`
|
||||
3. **使用 grub-mkimage 生成** - 从模块生成新的 EFI 文件
|
||||
|
||||
### 8. GRUB 修复 (`backend.py:chroot_and_repair_grub`)
|
||||
|
||||
#### BIOS 模式
|
||||
- `grub-install --target=i386-pc --recheck --force /dev/sdX`
|
||||
@@ -123,11 +141,13 @@ options root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rhgb quie
|
||||
#### UEFI 模式 (参考 Calamares 实现)
|
||||
- 自动检测系统架构 (x86_64/i386/arm64/loongarch64)
|
||||
- **NEW**: 自动检测并安装 UEFI GRUB 模块
|
||||
- **NEW**: 当 grub2-install 因 Secure Boot 失败时,自动使用手动 EFI 安装
|
||||
- 获取正确的 EFI 参数 (target, grub_file, boot_file)
|
||||
- **多重安装策略**(自动回退):
|
||||
1. 标准安装(带 NVRAM)
|
||||
2. Live 环境/可移动模式(`--removable`)
|
||||
3. 无 NVRAM 模式(`--no-nvram`)
|
||||
4. **NEW**: 手动 EFI 文件复制(针对 Secure Boot 限制)
|
||||
- **NEW**: EFI Fallback 安装(复制到 `/EFI/Boot/bootx64.efi`)
|
||||
- **NEW**: 支持自定义 EFI 启动项名称
|
||||
|
||||
|
||||
Reference in New Issue
Block a user