必须手动挂载efi分区并绑定至/boot/efi:先用sudo fdisk -l | grep "efi system"确认设备名(如/dev/nvme0n1p1),再执行sudo mkdir -p /mnt/efi && sudo mount /dev/nvme0n1p1 /mnt/efi && sudo mount --bind /mnt/efi /boot/efi,最后启用os-prober并运行sudo update-grub,确保输出“found windows boot manager”。

统信UOS执行sudo update-grub时提示“找不到EFI分区挂载点”,说明GRUB构建流程无法访问/boot/efi目录下的启动文件,必须手动定位并绑定挂载Windows与UOS共用的原始EFI系统分区,否则Windows启动项永远无法生成。
确认EFI分区设备名
在终端中运行:sudo fdisk -l | grep "EFI System",观察输出结果。典型返回如 /dev/nvme0n1p1 或 /dev/sda1,该设备即为真实EFI系统分区——它必须是FAT32格式、大小在100–500MB之间,且不能是Windows的C盘或恢复分区。
若无任何输出,说明当前系统可能以Legacy BIOS模式启动,需重启进BIOS关闭CSM并设为UEFI Only模式,否则后续所有操作均无效。
创建挂载点并挂载EFI分区
执行:sudo mkdir -p /mnt/efi。
执行:sudo mount /dev/nvme0n1p1 /mnt/efi(请将/dev/nvme0n1p1替换为你上一步查到的实际设备名)。
验证是否挂载成功:ls /mnt/efi/EFI。正常应看到 Microsoft 和 uos(或 ubuntu、deepin)两个目录;若只有Microsoft而无uos,说明UOS引导文件缺失,需进入LiveCD环境重装GRUB-EFI。
临时绑定/boot/efi路径供update-grub调用
GRUB扫描逻辑默认读取 /boot/efi 路径,但当前该路径未挂载。需用bind mount方式将已挂载的 /mnt/efi 映射过去:
执行:sudo mount --bind /mnt/efi /boot/efi。
这一步不可跳过,否则即使你手动挂载了EFI分区,update-grub 仍会因路径不存在而静默跳过Windows探测——它不会报错,只会默默忽略。
验证绑定是否生效:mount | grep "/boot/efi",输出中应包含类似 /mnt/efi on /boot/efi type none (rw,bind) 的行。
强制刷新GRUB并验证结果
第一步:启用os-prober探测器
执行:echo "GRUB_DISABLE_OS_PROBER=false" | sudo tee -a /etc/default/grub。
第二步:更新GRUB配置
执行:sudo update-grub。
第三步:检查关键输出
滚动日志末尾,必须看到 Found Windows Boot Manager on /dev/nvme0n1p1 字样,且设备名与你最初查到的完全一致——这是唯一可信的成功信号。
若仍无此行,请立即检查 /mnt/efi/EFI/Microsoft/Boot/bootmgfw.efi 是否真实存在。不存在则说明挂载了错误分区,或Windows EFI文件已被破坏。











