目前我的磁盘设置如下:
Disk /dev/sda: 1953525168 sectors, 931.5 GiB
Model: WDC WD1003FZEX-0
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 8F14ACC0-7807-4C09-BCB0-C340A635CF07
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 1953525134
Partitions will be aligned on 2048-sector boundaries
Total free space is 3437 sectors (1.7 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 6143 2.0 MiB EF02 BIOS boot partition
2 6144 524294143 250.0 GiB 8300 Linux filesystem
3 524294144 1048582143 250.0 GiB 8300 Linux filesystem
4 1048582144 1427140607 180.5 GiB 8300 Data
5 1427140608 1949331455 249.0 GiB 0700 Microsoft basic data
6 1949331456 1953523711 2.0 GiB 2700 Windows RE
为此,我在 MBR 分区方案上首次安装了 Windows 10(现在为 5)和基于 Gentoo 的 Linux(现在为 2)。一切都很顺利。后来我尝试了 Linux,更改为带有保护性 MBR 的 GPT,然后添加了第二个分区来容纳另一个基于 Gentoo 的 Linux(现在是 3)。一切都很顺利,直到 Windows 10 更新为止。我知道在更新之前,Windows 10 都是以 MBR 启动的。我推测它在升级过程中检测到了 GPT 并将其引导更改为 UEFI。系统是 BIOS,无法升级到 UEFI,现在 Windows 无法启动 - 进行短暂启动尝试并循环重新启动。我使用 Microsoft 提供的 Windows 10 ISO 在 Ventoy Live Stick 上安装和修复系统。这无法修复启动,我认为它无法处理 GRUB 和保护性 MBR 并且停止。我已进入其命令行故障排除,尝试修复启动并通过发出以下命令强制将其重建为 BIOS:
bcdboot C:\Windows /s C: /f BIOS
不走运,它似乎现在尝试安全启动,因为它在启动时显示以下内容来抱怨:
error: invalid signature
我尝试过的 GRUB 条目:
menuentry "Windows 10 BIOS MBR" {
savedefault
insmod part_msdos
insmod ntfs
insmod chain
chainloader (hd1,msdos1)+1
}
然后:
menuentry "Windows 10 BIOS MBR" {
savedefault
insmod part_msdos
insmod ntfs
insmod chain
drivemap hd0 hd1
chainloader (hd1,msdos1)+1
}
但我不确定这应该是怎样的。
所以,我知道 Windoes 10 可以工作是因为它的初始 MBR 引导设置。升级后如何解决此问题并保留保护性 MBR?
答案1
你可以试试:
menuentry "Windows 10 BIOS MBR" {
search -u $uuid -s
ntldr /bootmgr
}
被$uuid
替换为以下输出:
blkid -no UUID /dev/sda5
(显然您将 Windows Boot Manager 安装到 /C:
是第五个分区。)
然而,由于磁盘是用 GPT 分区的,很可能bootmgr
最终会失败在启动 Windows 安装时。