安装Kali至独立分区后无法启动Windows 10的问题求助
解决GRUB无法正常引导Windows 10且提示"invalid signature"的问题
你的猜测完全正确——EFI与BIOS启动模式混合共存就是导致问题的核心根源,再加上可能开启的Secure Boot,共同引发了GRUB引导Windows时的签名错误。下面一步步帮你排查和解决:
一、先明确当前系统的启动模式
首先得搞清楚Kali和Windows分别用的是哪种启动模式,这是解决问题的前提:
- 检查Kali的启动模式:
打开Kali的终端,执行命令:
如果输出有内容(比如ls /sys/firmware/efivars、efivars等目录),说明Kali是UEFI模式启动;如果提示"没有那个文件或目录",就是BIOS/MBR模式。 - 判断Windows的启动模式:
用fdisk -l或lsblk查看磁盘分区:- 如果有一个FAT32格式、大小在100-500MB左右的分区,且标注了
ESP(EFI系统分区),那Windows大概率是UEFI模式; - 如果没有ESP分区,反而有一个几十MB的隐藏分区(MBR引导分区),那Windows是BIOS/MBR模式。
- 如果有一个FAT32格式、大小在100-500MB左右的分区,且标注了
二、优先关闭Secure Boot
你看到的"invalid signature"提示,90%以上是因为主板开启了Secure Boot:Windows默认依赖Secure Boot签名启动,而GRUB加载Windows引导文件时会被Secure Boot拦截。
- 重启电脑,按对应按键(F2、Del、F10等,看主板提示)进入BIOS/UEFI设置;
- 找到
Secure Boot选项,把它改成Disabled; - 保存设置并重启。
三、统一启动模式并修复GRUB
启动模式不统一(比如Kali是BIOS,Windows是UEFI)是安装时系统检测不到Windows的根本原因,必须让两个系统用同一种启动模式:
场景1:Kali和Windows都是UEFI模式
- 先挂载EFI分区:
假设你的EFI分区是/dev/sda1(根据lsblk的结果替换),执行:sudo mount /dev/sda1 /boot/efi - 重新生成GRUB配置:
这时候GRUB应该能自动检测到Windows的UEFI启动项,重启后就能在菜单里看到Windows选项了。sudo update-grub
场景2:Kali是BIOS模式,Windows是UEFI模式(最常见的混合冲突)
这种情况下,最稳妥的做法是把Kali转换成UEFI模式:
- 挂载EFI分区到Kali的
/boot/efi目录:sudo mount /dev/sda1 /boot/efi - 安装UEFI版本的GRUB:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Kali - 更新GRUB配置:
重启后,主板会优先从UEFI引导,GRUB就能正常识别并引导Windows了。sudo update-grub
场景3:Kali是UEFI模式,Windows是BIOS模式
这种情况比较少见,推荐把Windows转换成UEFI模式(操作略复杂,需要用Windows安装介质修复),或者手动给GRUB添加BIOS启动项:
- 编辑GRUB自定义配置文件:
sudo nano /etc/grub.d/40_custom - 添加以下内容(注意替换
hd0,msdos1为你的Windows系统所在的磁盘和分区,比如hd0是第一块硬盘,msdos1是Windows的主分区):menuentry "Windows 10 (BIOS)" { set root=(hd0,msdos1) chainloader +1 } - 保存退出后,更新GRUB:
sudo update-grub
四、最后验证
重启电脑,在GRUB菜单里选择Windows选项,如果还是报错,再检查:
- Secure Boot是否确实关闭;
- 两个系统的启动模式是否已经统一;
- EFI分区是否正确挂载(UEFI模式下必须挂载到
/boot/efi)。
内容的提问来源于stack exchange,提问作者Colten Caudle
相关产品推荐
相关产品推荐

