我在 SSD 上安装了 Windows 10,然后安装了 CentOS 7。在 CentOS 安装最终重新启动后,grub 中没有我的 Windows 10 内容的条目。
这是 fdisk -l
isk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
Disk identifier: 873E25DD-2CDA-11E9-AD60-38BAF8FA5F68
# Start End Size Type Name
1 2048 1026047 500M Microsoft basic
2 1026048 316117075 150.3G Microsoft basic
3 316119040 316323839 100M EFI System
4 316323840 317951999 795M Windows recover
5 317968384 635920383 151.6G Microsoft basic
6 635936768 953888767 151.6G Microsoft basic
7 953905152 1052209151 46.9G Microsoft basic
8 1052225536 1117761535 31.3G Linux filesyste
9 1117777920 1150545919 15.6G Linux filesyste
10 1150562304 1183330303 15.6G Linux filesyste
11 1183346688 1216114687 15.6G Linux filesyste
12 1216131072 1248899071 15.6G Linux filesyste
13 1248915456 1281683455 15.6G Linux filesyste
14 1281699840 1380003839 46.9G Linux swap
15 317952000 317956095 2M BIOS boot
16 1697988608 1953509375 121.9G Linux filesyste
17 1380003840 1697988607 151.6G Linux LVM
Disk /dev/mapper/centos-root: 162.8 GB, 162806104064 bytes, 317980672 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
所以我像这样编辑了 /etc/grub.d/40_custom :
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 10" {
set root(hd0,3)
chainloader +1
}
然后跑:
grub2-mkconfig --output=/boot/grub2/grub.cfg
当我重新启动并选择“Windows 10”的菜单项时,我得到了以下信息:
Error: not an assignment invalid signature
我陷入困境,如何在 grub 中获取 Windows 内容,以便可以从任一操作系统启动?
答案1
另一个论坛上有人告诉我不要使用CSM。
好吧...出于彻底的挫败感,我擦除了磁盘,将 CSM 设置为禁用(华硕撒了谎),安装了 Windows,再次安装了 CentOS。
有趣的是,这次分区向导有一个选项 /boot/efi 作为挂载点!启用 CSM 后就不存在这种情况。
所以我选择了 /boot/efi,安装完成后,我的启动菜单中同时出现了 Windows 和 Linux!