必须先确认efi分区挂载且检查microsoft目录是否存在,若缺失则需手动补全bootmgfw.efi与bcd文件,再通过update-grub和grub-install修复双系统引导。

确认EFI分区是否挂载且Windows目录丢失
开机进入UOS LiveCD环境后,必须先验证/boot/efi是否已正确挂载并检查其中是否缺失Microsoft目录,否则后续所有操作都将写入错误位置或直接失败。这一步跳过会导致重装GRUB时无法识别Windows启动项,最终仍只能进UOS。
打开终端,执行 sudo mkdir -p /mnt/efi 创建挂载点。
运行 lsblk -f 查看所有分区,定位标有 vfat 且大小在100–500MB之间的分区(常见为 /dev/nvme0n1p1 或 /dev/sda1)。
执行 sudo mount /dev/nvme0n1p1 /mnt/efi(请将设备名替换为上步确认的实际分区)。
输入 ls /mnt/efi/EFI,若输出中只有 uos(或 deepin、ubuntu)而无 Microsoft 目录,说明Windows启动文件夹已被删除,需立即补全。
挂载UOS根系统并进入chroot环境
此步骤是重建Windows引导文件的前提,必须确保UOS根分区和/boot/efi都挂载到正确路径,否则chroot后无法调用系统级命令,【/boot/efi必须挂载到/mnt/boot/efi而非/mnt/efi】,挂错位置将导致grub-install报错“cannot find EFI directory”。
执行 lsblk 识别UOS根分区(如 /dev/nvme0n1p5)及独立/boot分区(如有,如 /dev/nvme0n1p2)。
挂载根分区:sudo mount /dev/nvme0n1p5 /mnt。
如有独立/boot分区,执行:sudo mount /dev/nvme0n1p2 /mnt/boot。
挂载EFI分区到标准路径:sudo mount /dev/nvme0n1p1 /mnt/boot/efi(注意不是/mnt/efi)。
直播话术巡检系统(Windows版) — 实时语音转写、关键词检测、场景自动切换、告警推送、大屏可视化。支持 Windows VB-Cable 虚拟声卡音频采集,阿里云 ASR 实时识别。一键启动脚本,自动安装环境。
绑定虚拟文件系统:sudo mount --bind /dev /mnt/dev && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys。
切换至原系统:sudo chroot /mnt。
手动补全Windows启动文件夹内容
Windows启动文件夹(/EFI/Microsoft/Boot/)被删后,不能仅靠update-grub生成菜单项,必须让该路径下存在合法的bootmgfw.efi与BCD文件,否则UEFI固件拒绝加载。补全方式有两种,优先尝试方法一。
方法一:从Windows安装U盘复制原始引导文件(推荐)
插入Windows 11安装U盘,假设其盘符为 D:(Linux下通常识别为 /media/uos/DISK_LABEL),先确认路径:ls /media/uos/ 找到挂载点;再执行:mkdir -p /boot/efi/EFI/Microsoft/Boot && cp -r /media/uos/efi/microsoft/boot/* /boot/efi/EFI/Microsoft/Boot/。此操作直接还原微软签名的官方引导组件,兼容性最高。
方法二:用bcdboot命令重建(适用于无Windows安装盘)
若无法接入Windows安装介质,则需依赖本机Windows系统卷。先确认Windows所在分区(如NTFS格式的 /dev/nvme0n1p4)是否已挂载——执行 mkdir /win && mount /dev/nvme0n1p4 /win;然后运行:bcdboot /win/Windows /s /boot/efi /f UEFI /l zh-cn。该命令会自动创建 /EFI/Microsoft/Boot/ 并写入全部必要文件。
执行完毕后,立即验证:ls /boot/efi/EFI/Microsoft/Boot/ 应显示 bootmgfw.efi 和 BCD 文件,缺一则无效。
更新GRUB配置并注册Windows启动项
第一步:运行 update-grub。该命令会扫描 /boot/efi/EFI/ 下所有子目录,只要 /EFI/Microsoft/Boot/bootmgfw.efi 存在且可读,就会自动添加“Windows Boot Manager”条目到GRUB菜单。
第二步:检查输出日志。若看到 Found Windows Boot Manager on /dev/nvme0n1p1 字样,说明识别成功;若提示 Skipping Windows Boot Manager: invalid path,则返回上一步检查文件路径或权限。
第三步:强制重装GRUB-EFI以确保NVRAM中注册有效:grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=UOS --recheck。
退出chroot:exit;卸载所有分区:sudo umount -R /mnt;重启电脑。










