为双系统grub添加Windows10引导启动项
背景
笔记本只有一块SSD硬盘,在笔记本上装有一个win10 操作系统,经过分区后安装了ArchLinux,结果重启电脑后,grub引导界面没有win10的启动项:
使用grub的自动检测,结果没有检测到win10的启动项
mkdir -p /mnt/windows
mount /dev/sda1 /mnt/window
grub-mkconfig -o /boot/grub/grub.cfg
这是自动检测的命令,有兴趣的可以去试一下
所以自能自己手动添加
添加win10启动项
首先你得直到win10的EFI启动项在硬盘的哪个分区,在安装好的ArchLinux下使用fdisk -l查看
后面的Size Type表示分区类型,显示EFI的就是引导分区,不过这儿有两个EFI分区,所以这时候只能你自己判断一下是哪一个,因为我装ArchLinux系统的时候知道自己把Arch的EFI启动项装在了哪个地方,也就是/dev/sda6,之前的win10操作系统EFI启动项就在/dev/sda1
首先我们要知道win10启动项分区的UUID,使用blkid /dev/sda1或者grub命令均可,详情如下
blkid /dev/sda1
# 或者
grub-probe -t fs_uuid -d /dev/sda1
可以看到这两个UUID其实是一样的,后面的type是vfat,表示分区类型
然后在/boot/grub/grub.cfg的30_os-prober 中添加如下命令
menuentry 'Microsoft Windows 10' {
insmod part_gpt ## -> 现在一般是gpt格式的硬盘
insmod fat ## -> 实际上是fat格式,可以自己试一下是vfat还是fat
insmod chain
search --fs-uuid --no-floopy --set=root XXXX-XXXX ## <- your windows EFI partion UUID
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi ## 注意大写
}
保存退出,reboot系统,就可以选择win10的引导项了。。。