如何使用 GRUB 更新 CPU 的微码并链式加载 Windows 10?

如何使用 GRUB 更新 CPU 的微码并链式加载 Windows 10?

我想在运行 Windows 10 之前更新我的 CPU 的微码。

想法是使用 GRUB(这里是 NeoGrub 来自https://neosmart.net/wiki/easybcd/neogrub/) 来完成任务。

背景:

我为什么要这么做?我的英特尔主板上装有官方未支持的 Xeon x5470 CPU(因此 BIOS 没有可用的微码,并且由于数字签名,英特尔的 BIOS 无法修补);Windows 7 64b 运行正常,但 Windows 10 64b 无法启动(而装有 E8400 CPU 的同一台机器启动成功,因此罪魁祸首在于 CPU - 可能缺少 compareexchange128 指令,该指令可能是通过微码更新提供的)

http://answers.microsoft.com/en-us/windows/forum/windows_10-windows_install/windows-10-pro-upgrade-compareexchange128/f86d76d7-a2b7-4551-8a01-6d5169db2e22?auth=1

更新:

根据 BIOS BITS,我的 X5470 具有:

  • 0001067a 的签名
  • 平台 ID 为 00000004
  • 微码修订版 00000a0b

并且使用英特尔最新的微代码,没有任何更新,Windows 10 仍然在启动时挂起 :(

因此我确实确认该任务可以通过 BIOS BITS 完成,但不幸的是它并不能解决我的问题;可能是 BIOS 没有打开某些 CPU 功能(PAE、NX、SSE2);BIOS BITS 也应该能够做到这一点,我只需要学习如何去做......

嗯,看起来这个 CPU 没有必需的功能

ecx[13] cnpxchg16b=0

但从网络搜索我发现这是一条相当古老的指令,应该由该 CPU 提供;该 CPU 的其他用户报告它可用(http://www.cpu-world.com/cgi-bin/CompareCPUID.pl?CPUID=47075&CPUID=47071&PROCESS=Compare+selected);我可以使用 wrmsr 来打开它吗?

答案1

是的,这是可能的,但不能使用标准 grub。

请检查“BIOS BITS”项目的引导加载程序是否能正常工作。它更新微码,然后链式加载操作系统,但这是一个非常非常先进的工具。

http://www.biosbits.org/

答案2

摘自BITS的README.txt:

  • “配置菜单”包含临时重新配置系统的选项。这些选项都不会触及您的 BIOS 或永久更改您的系统配置,但它们只会覆盖当前启动的配置。

因此,您确实可以加载微码,但显然仅适用于单个启动会话!

答案3

相关内容