我的目标是能够升级到 Windows 11。
它最初是 Windows XP 安装,经历了 WinVista、Win7、Win8、Win8.1 和 Win10 的所有升级。在我的升级路径中,我从未有过单独的分区(我认为通常为 50 或 100MiB 大)。因此,目前我的 SSD 上有 3 个主分区,位于普通的 MBR 分区表上。标记为活动(启动)的 C 分区、不可见的 WinRE 分区(msftres)和用于游戏的普通分区。尽管有 MBR 分区,但所有内容都使用 UEFI 启动,没有启用传统模式。
mbr2gpt /validate
不起作用,并且说Disk layout validation failed for disk 1
。
bootrec /rebuildbcd
找到 Windows 10 安装但退出The requested system device cannot be found.
如果我使用当前 Hiren 的启动 CD 中包含的AOMEI 分区助手DiskGenius 将 MBR 转换为 GPT,同时保持分区原样,Windows 将无法启动。通过将其转换回 MBR 并恢复 active/boot 标志,Windows 可以再次正确启动。有趣的是,没有 active/boot 它仍然可以正常启动,但我无法关闭它并shutdown.exe
提示未找到系统设备。
我想保留并修复当前安装的所有配置和已安装的程序,而无需重新安装和/或完全重新分区。但我没有想法和知识。可能的想法:在将分区表转换为 GPT 后,我必须在分区上设置一些标志以使其可启动,但这些标志是什么?
编辑:添加图片形式的布局。 SSD 的布局
根据 Windows,C 具有以下标志:系统、起始分区、交换文件、活动、崩溃转储、主分区
编辑 2:用户 1686 的解决方案非常完美。作为附加措施,我必须清理驱动器 C 上的 EFI 文件夹(无法正常工作/启动),并且不知何故还清理了 WinRE 分区上出现的新 EFI 文件夹。现在一切都启动正常,此时 Windows 11 正在自行安装,现在已安装到 73%。
答案1
手动创建启动分区,格式化它,然后使用它来填充它bcdboot
。
bcdboot C:\Windows /s S: /f UEFI
一些有关手动分区的 Microsoft 官方指南:
- https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/configure-biosmbr-based-hard-drive-partitions?view=windows-11
- https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/configure-uefigpt-based-hard-drive-partitions?view=windows-11
对于 EFI,启动分区可以位于任何位置;对于 BIOS,它必须完全位于前 2 TiB 内。您可能可以重新利用 450 MB 的“恢复”分区,或者可以通过缩小其他分区来腾出空间。
(虽然我可能会花时间创建一个“干净”的布局:将 C:\ 分区缩小到最小(以使下一步更快),使用 GParted移动将其向右移动约 200 MB(为前面的新启动分区腾出空间),将其恢复到完整大小,并在磁盘的最开始处创建启动分区。这是可选的。)
如果您手动完成所有操作,则可以跳过此mbr2gpt
步骤 - 使用 AOMEI 将磁盘转换为 GPT,然后重新分区,然后直接创建 EFI 系统分区并使用 Windows ISO 填充它bcdboot
。磁盘现在可以在 UEFI 模式下启动。
(然后可以删除 C:\ 分区根目录下的旧 BCD 和 BOOTMGR - 以及更旧的 boot.ini 和 NTLDR(如果仍有的话)。)
可能的想法:将分区表转换为 GPT 后,我必须在分区上设置一些标志以使其可启动,但这些标志是什么?
对于 EFI,启动分区应格式化为 FAT32 并具有正确的 GPT“分区类型 GUID”。(例如,使用 DISKPART 时,create part efi
将设置正确的类型,或set id=<GUID>
可用于稍后修复它。)听起来您的固件可以识别 NTFS,但我不会依赖它。
此外,EFI 要求将引导加载程序的确切路径存储在 NVRAM 中 - 如果从 UEFI 引导环境运行,bcdboot 将为您执行此操作。(bcdboot 将还在 fallback \efi\boot\bootx64.efi 路径上安装引导加载程序,这样即使由于某种原因无法更新 NVRAM,一切也应该可以正常工作。)
不过,您的问题可能不一定出在固件上,而可能是在下一阶段,即 Windows 启动管理器无法将其 BCD 配置与实际分区匹配。(但同样,bcdboot 将通过生成一个全新的 来解决这个问题BCD
。)
尽管有 MBR 分区,但所有内容仍通过 UEFI 启动,而无需启用传统模式。
这听起来根本不像 UEFI 模式。“active”标志在 UEFI 模式下无关紧要 - 它只存在于 BIOS 引导扇区中。
如果我仅使用当前 Hiren 的启动 CD 中包含的 AOMEI 分区助手将 MBR 转换为 GPT,同时保持分区原样,则 Windows 将无法启动。
这是正常的。在 BIOS 模式下,引导扇区(即使在 GPT 分区的磁盘上,它仍然存在于 MBR 扇区中)无法继续,因为不知道如何读取 GPT 分区表来找到“活动”分区。
而在 UEFI 模式下,固件无法在磁盘上找到任何包含 .efi 格式的 Windows 引导加载程序的 EFI 系统分区。
答案2
我的目标是能够升级到 Windows 11。它最初是 Windows XP 安装,后来经历了到 WinVista、Win7、Win8、Win8.1 和 Win10 的所有升级。
升级到 Windows 11 可能会或可能不会起作用,具体取决于进行的升级(在问答期间澄清)。
除了具有 UEFI 和安全启动之外,您还需要 TPM V2,并且 CPU 必须是第 8 代或更高版本。
您说过您的最新主板有 TPM 2,因此要考虑的另一件事是备份所有内容并让 Windows 11 创建所需的分区。它知道该怎么做。
只要您有正确的分区,SSD 的布局就不那么重要了。除了必需的 3 个分区(UEFI、恢复、数据)之外的分区也不太重要。
答案3
升级到 Windows 11 将不起作用。
除了具有 UEFI 和安全启动之外,您还需要 TPM V2,并且 CPU 必须是第 8 代或更高版本。
您可以通过设置来绕过升级的 TPM 和 CPU 要求允许使用不支持的 TPM 或 CPU 进行升级在运行的系统中。但只有当 Windows 已经使用 GPT 并启动 UEFI 时,升级才会有效。
但是,如果在安装过程中在 PE 环境中设置了其他键,则可以使用传统启动进行全新安装:
[HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig]
"BypassTPMCheck"=dword:00000001
"BypassSecureBootCheck"=dword:00000001
"BypassRAMCheck"=dword:00000001