只能开机按F11(华擎Z87极限玩家6主板)从启动菜单启动Win10,在Linux下运行 grub2-mkconfig 找不到Win10。
yast 里面找一下,随便改个启动时间刷新一下
yast里面管bootloader的里面有一项叫"probe foreign os”,翻译过来就是检测外来操作系统,把他开启之后重新生成grub配置文件应该就可以了
对比一下ubuntu,ubuntu有一个包叫os-prober
,包内的东西其实就是/etc/grub.d/
里面的一个脚本,也叫probeos什么的。这个包其实opensuse也有,装完后sudo os-prober
,再grub-mkconfig
再不行就自己手写一个吧
menuentry "Windows 7 UEFI/GPT" {
insmod part_gpt
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root 28cf-35de
chainloader ($root)/EFI/MICROSOFT/BOOT/bootmgfw.efi
}
uuid改到NT loader的分区(不是C盘)
这是隔壁gentoo的wiki
arch的wiki也很有参考价值
那个选择默认是选的,sudo os-prober 也 试了,还是不行
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-1115-1136' {
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1115-1136
else
search --no-floppy --fs-uuid --set=root 1115-1136
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
上面那个是我以前的,现在用不了了,提示 1115-1136 这个有问题
1115-1136应该是uuid,你可以到linux下看一眼带windows的那个盘或者分区的uuid,记下来之后到grub里试一下
或者我觉得你直接把if那几行删掉得了,那几行看起来没什么用,启动windows指定root之后直接chainloader就完事了
其实我个人还是用F11启动的,因为我主系统用的是Windows,在一款nvme盘上,两个linux在另一块sata盘上用一个grub引导。
而且我还开了secureboot,这么做冲突最小
可以了,把 1115-1136 改为现在用的磁盘 UUID 就能启动了