本指南针对Fedora系统下Windows 10双系统引导问题,详解修复步骤:首先通过lsblk或fdisk -l识别Windows EFI分区(通常为FAT32格式,挂载至/boot/efi);安装os-prober工具自动检测Windows系统,运行os-prober扫描后,手动编辑/etc/grub.d/40_custom添加Windows引导条目,确保指定正确分区号和启动文件路径;执行grub2-mkconfig -o /boot/grub2/grub.cfg更新引导配置,重启即可实现双系统选择,全程无需进入Windows,解决引导丢失或无法识别问题。
在Linux与Windows双系统环境中,Fedora默认使用GRUB引导管理器,但有时因系统更新、分区调整或手动操作失误,可能导致GRUB无法正确识别Windows 10启动项,进而出现“找不到Windows启动”等问题,本文将详细介绍在Fedora系统中手动生成Windows 10引导文件、修复GRUB配置的完整流程,帮助用户恢复双系统引导功能。
前置准备:确认引导模式与分区信息
在操作前,需先明确系统的引导模式(UEFI或Legacy)及Windows 10的分区信息,这是正确配置引导的前提。
检查引导模式
Fedora通常默认采用UEFI引导(新硬件普遍支持),可通过以下命令确认:

sudo efibootmgr -v
- 若输出中显示
BootCurrent、BootOrder等UEFI引导项,则为UEFI模式; - 若命令提示“未找到efibootmgr”,则可能为Legacy BIOS模式(需通过
sudo fdisk -l查看分区表类型为MBR)。
定位Windows 10分区
Windows 10的引导文件(bootmgfw.efi)位于EFI系统分区(ESP),而系统分区通常为NTFS格式,使用以下命令查看分区信息:
sudo fdisk -l # 或 lsblk -f (更直观显示文件系统类型)
重点关注:
- ESP分区:文件系统类型为
FAT32,挂载点通常为/boot/efi(Fedora下默认),或通过sudo mount /dev/sdXn /mnt临时挂载后确认(sdXn为分区名,如sda2); - Windows系统分区:文件系统类型为
NTFS或exFAT,通常为/dev/sdXm(如sda3),可通过分区大小和标签(如“Windows”)识别。
自动检测:尝试让GRUB识别Windows 10
GRUB可通过os-prober工具自动扫描并列出其他操作系统启动项,若Windows 10未被识别,可先尝试此方法。
安装并运行os-prober
sudo dnf install os-prober # 若未安装(Fedora默认已预装) sudo os-prober # 扫描其他操作系统
正常情况下,输出会包含类似以下信息:
/dev/sda3:Windows 10 (loader):Windows:chain
若未输出Windows相关信息,说明os-prober未检测到Windows,需手动配置。
更新GRUB配置并测试
若os-prober检测成功,直接更新GRUB配置:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
更新后重启系统(sudo reboot),查看GRUB菜单是否出现“Windows 10”选项,若仍无,则进入手动配置流程。
手动生成Windows 10引导文件(自动检测失败时)
若os-prober无法识别Windows(如分区表异常、ESP分区未挂载等),需手动编辑GRUB配置文件,添加Windows 10启动项。
确定Windows引导文件路径
- UEFI模式:Windows 10引导文件为
/EFI/Microsoft/Boot/bootmgfw.efi,位于ESP分区; - Legacy模式:Windows引导文件为
/bootmgr,位于Windows系统分区根目录。
以UEFI模式为例,假设ESP分区为/dev/sda2,Windows系统分区为/dev/sda3,需先挂载ESP分区:
sudo mkdir -p /mnt/efi sudo mount /dev/sda2 /mnt/efi # 替换为实际ESP分区名 ls /mnt/efi/EFI/Microsoft/Boot/ # 确认bootmgfw.efi存在
编辑GRUB自定义配置文件
Fedora的GRUB支持通过/etc/grub.d/40_custom或/boot/grub2/user.cfg添加自定义启动项,推荐使用40_custom,避免系统更新覆盖配置:
sudo nano /etc/grub.d/40_custom
在文件末尾添加以下内容(需根据实际分区和引导模式修改):
▶ UEFI模式配置示例
menuentry "Windows 10 UEFI" {
insmod part_gpt # 若为GPT分区表(UEFI默认)
insmod fat # ESP分区文件系统为FAT32
insmod chain # 链式加载
set root='(hd0,gpt2)' # 替换为ESP分区标识(hd0,gptX),可通过`sudo parted -l`查看分区号
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
root参数:hd0表示第一块硬盘,gpt2表示第二个GPT分区(ESP分区),需根据fdisk -l或parted -l输出调整;chainloader路径:固定为/EFI/Microsoft/Boot/bootmgfw.efi(ESP分区内的相对路径)。
▶ Legacy模式配置示例
menuentry "Windows 10 Legacy" {
insmod ntfs # 若Windows分区为NTFS(需提前加载ntfs模块)
insmod chain
set root='(hd0,msdos3 
