You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EndeavourOS安装后GRUB菜单无法显示Windows 10选项的求助

EndeavourOS安装后GRUB菜单无法显示Windows 10选项的求助

我在安装EndeavourOS之后,GRUB启动菜单里完全看不到Windows 10的选项,尝试了以下操作但都没解决:

  • 执行sudo os-prober命令,没有返回任何结果,哪怕已经把GRUB_DISABLE_OS_PROBER=false配置项修改好了
  • 手动在/etc/grub.d/40_custom里添加了Windows 10的自定义启动项,内容如下:
menuentry "Windows 10" {
    insmod ntfs
    set root=(/dev/sda2)  # Modify this to match your Windows partition
    chainloader +1
}

我的磁盘分区信息(fdisk -l输出)如下:

Disk model: ST1000DM010-2EP1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 4E017D50-896E-423C-909A-2D92EDBB31F8

Device Start End Sectors Size Type
/dev/sda1 2048 923647 921600 450M Windows recovery environm
/dev/sda2 923648 1128447 204800 100M EFI System
/dev/sda3 1128448 1161215 32768 16M Microsoft reserved
/dev/sda4 1161216 274300927 273139712 130.2G Microsoft basic data
/dev/sda5 ...(内容截断)


问题分析与解决方案

从你的分区信息来看,这是GPT分区表的磁盘,Windows 10是EFI模式安装的,你的自定义启动项配置有问题,而且os-prober没检测到也大概率是EFI分区没有正确挂载导致的,下面一步步来解决:

1. 先确保EFI分区正确挂载

EndeavourOS安装后,EFI分区(也就是你的/dev/sda2)需要挂载到/boot/efi目录下,否则os-prober无法检测到Windows的EFI引导文件:

  • 先查看当前挂载情况:lsblk -f,确认/dev/sda2是否挂载到了/boot/efi
  • 如果没挂载,手动挂载:
    sudo mkdir -p /boot/efi
    sudo mount /dev/sda2 /boot/efi
    
  • 为了开机自动挂载,编辑/etc/fstab文件,添加一行(用blkid /dev/sda2获取分区UUID替换占位符):
    UUID=<你的sda2的UUID>  /boot/efi  vfat  defaults  0  1
    

2. 修复os-prober检测问题

挂载好EFI分区后,重新运行os-prober:

sudo os-prober

如果还是没结果,试试安装ntfs-3g(Windows分区是NTFS格式,os-prober可能依赖这个工具):

sudo pacman -S ntfs-3g

安装完成后再重新运行sudo os-prober,应该能检测到Windows 10了。

3. 修正自定义GRUB启动项(如果os-prober依旧无效)

你的自定义项有两个关键问题:EFI模式的Windows不需要加载ntfs模块,也不该直接指定/dev/sda2为root,正确的配置应该指向Windows的EFI引导文件:

menuentry "Windows 10 (EFI)" {
    insmod part_gpt
    insmod fat
    set root='hd0,gpt2'  # hd0对应第一块磁盘,gpt2对应你的EFI分区/dev/sda2
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

用UUID的方式更可靠(同样替换成sda2的UUID):

menuentry "Windows 10 (EFI)" {
    insmod part_gpt
    insmod fat
    set root='UUID=<你的sda2的UUID>'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

4. 更新GRUB配置

不管是os-prober检测到了系统,还是手动修改了自定义项,最后都要更新GRUB配置:

sudo grub-mkconfig -o /boot/grub/grub.cfg

重启电脑后,GRUB菜单里应该就能看到Windows 10的选项了。

另外补充一点:要确保你安装EndeavourOS时用的也是EFI模式(可以通过查看/sys/firmware/efi目录是否存在判断),如果一个系统是BIOS模式、另一个是EFI模式,GRUB也无法跨模式检测到系统。


备注:内容来源于stack exchange,提问作者Andy Longbottom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 07:23:01