双系统启动项丢失本质是grub2未识别windows启动入口或efi引导项被覆盖,修复关键是让grub2正确扫描并纳入bootmgfw.efi(uefi)或legacy启动扇区,需先确认uefi/bios模式,再挂载esp与根分区、chroot后执行update-grub或grub2-mkconfig,并确保grub_disable_os_prober=false。

双系统启动项丢失,本质是 GRUB2 配置未识别 Windows 启动入口,或 EFI 引导项被覆盖。修复关键不是重装整个引导器,而是让 GRUB2 正确扫描并纳入 Windows 的 EFI 可执行文件(bootmgfw.efi)或 Legacy 启动扇区。操作前请先确认当前是 UEFI 还是 BIOS 模式——这决定挂载方式、安装命令和配置逻辑。
确认当前引导模式与分区结构
用 Live USB 启动后,在终端中运行:
-
查引导模式:
ls /sys/firmware/efi/efivars—— 若目录存在,说明是 UEFI;否则为 BIOS/CSM -
查磁盘分区:
sudo fdisk -l或lsblk -f,重点关注:- FAT32 格式、100–500MB 大小、标注
EFI System的分区(如/dev/nvme0n1p1)→ 这是 ESP(EFI 系统分区) - Linux 根分区(
ext4或xfs,挂载点应为/) - Windows 分区(通常为
ntfs,含Windows\Boot\EFI\bootmgfw.efi)
- FAT32 格式、100–500MB 大小、标注
挂载原系统并进入 chroot 环境
假设 Linux 根分区为 /dev/sda5,ESP 分区为 /dev/sda1:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 挂载根:
sudo mount /dev/sda5 /mnt - 挂载 ESP:
sudo mount /dev/sda1 /mnt/boot/efi(UEFI 必须;BIOS 可跳过) - 绑定虚拟文件系统:
sudo mount --bind /dev /mnt/dev && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys - 进入环境:
sudo chroot /mnt
更新 GRUB 配置以找回 Windows 启动项
在 chroot 中执行:
-
刷新配置文件(自动探测所有 OS):
- Ubuntu/Debian:
update-grub - Fedora/RHEL/CentOS:
grub2-mkconfig -o /boot/grub2/grub.cfg
- Ubuntu/Debian:
- 检查输出是否包含
Found Windows Boot Manager或类似提示。若没有,说明 GRUB 未能定位 Windows EFI 文件 - 手动验证 Windows EFI 路径是否存在:
ls /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi(UEFI 下路径固定) - 若该文件存在但未被识别,可临时启用 Windows 启动项支持:编辑
/etc/default/grub,确保含GRUB_DISABLE_OS_PROBER=false,再重新运行上述生成命令
补充:BIOS 模式下 Windows 启动项的处理
Legacy 环境无法直接加载 Windows EFI 文件,需依赖 chainloader 方式:
- 确认 Windows 所在磁盘分区(如
/dev/sda2),并在/etc/grub.d/40_custom中添加:
set root='(hd0,2)'
chainloader +1
}
- 保存后再次运行
update-grub或grub2-mkconfig










