源起
入学后,老师给实验室新配了办公用的电脑,i5-12400 + RTX 2060 12G。但是,我还是习惯用自己的一套环境,于是就想着把它当成server来用,我只在我自己的笔记本上远程连接进行实验。说干就干,server当然选Linux作为系统,我喜欢ArchLinux这个发行版,就装它了。
难题
很奇怪,装完ArchLinux后grub识别不了Winsow11系统(对,在装Linux之前我已经装了Windows11系统)。排查一番后,我发现我安装了os-prober
,也把/etc/default/grub
中的GRUB_DISABLE_OS_PROBER
选项的值设为了False
。没办法,Google了一番后,只能手动添加一个Windows 11的启动选单。
解决方法
具体操作就是在/etc/grub.d/40_custom
中添加以下文本:
menuentry 'Microsoft Windows 11' {
insmod part_gpt
insmod fat
insmod chain
search --fs-uuid --no-floppy --set=root xxxx-xxxx(此处改为windows系统的EFI分区的UUID)
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
注意:上面一个UUID字段,需要按照自己的情况填写。 我的Archlinux引导和Windows 11引导是放在了一个分区里面,在archlinux上显示是/dev/nvme0n1p1
,你的可能与此类似,但也有可能会是/dev/sdax
这个形式。然后用root用户执行blkid
这条命令可以查看其UUID。输入输出如下:
# blkid /dev/nvme0n1p
/dev/nvme0n1p1: UUID="063B-8DD0" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="c32806b2-6cd1-477d-b7cf-aaa849f40a64"
然后,重新运行grub-mkconfig -o /boot/grub/grub.cfg
即可。
1 条评论
grub-mkconfig -o /boot/grub/grub.cfg 这道命令 还是根据你的系统自动识别的引导来重新生成来grub 会把之前修改的grub.cfg文件覆盖掉 改了白改 所以还是不要执行这道命令 直接修改文件保存reboot就行了