6
This commit is contained in:
26
AGENTS.md
26
AGENTS.md
@@ -91,7 +91,30 @@ initrd /initramfs-4.18.0-348.el8.x86_64.img
|
||||
options root=/dev/mapper/cl-root ro crashkernel=auto rd.lvm.lv=cl/root rhgb quiet
|
||||
```
|
||||
|
||||
### 6. GRUB 修复 (`backend.py:chroot_and_repair_grub`)
|
||||
### 6. UEFI 模块自动安装 (`backend.py:check_and_install_efi_modules`)
|
||||
|
||||
**NEW v2.3**: 自动检测并安装 UEFI GRUB 模块
|
||||
|
||||
#### 问题场景
|
||||
在 UEFI 模式下,`grub-install` 需要 `/usr/lib/grub/x86_64-efi/` 目录下的 EFI 模块。如果缺少这些模块,会报错:
|
||||
```
|
||||
/usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist
|
||||
```
|
||||
|
||||
这在以下场景常见:
|
||||
- 最小化安装的系统
|
||||
- 从 BIOS 模式安装后切换到 UEFI 模式
|
||||
- `/usr` 被清空或损坏
|
||||
|
||||
#### 自动安装
|
||||
检测到缺少 EFI 模块时,自动安装相应的包:
|
||||
| 发行版 | 包名 |
|
||||
|--------|------|
|
||||
| CentOS/RHEL/Rocky/Alma/Fedora | `grub2-efi-x64`, `grub2-efi-x64-modules` |
|
||||
| Debian/Ubuntu | `grub-efi-amd64` |
|
||||
| Arch/Manjaro | `grub` (已包含 EFI 支持) |
|
||||
|
||||
### 7. GRUB 修复 (`backend.py:chroot_and_repair_grub`)
|
||||
|
||||
#### BIOS 模式
|
||||
- `grub-install --target=i386-pc --recheck --force /dev/sdX`
|
||||
@@ -99,6 +122,7 @@ 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 模块
|
||||
- 获取正确的 EFI 参数 (target, grub_file, boot_file)
|
||||
- **多重安装策略**(自动回退):
|
||||
1. 标准安装(带 NVRAM)
|
||||
|
||||
Reference in New Issue
Block a user