强制Windows Server 2008使用旧版BIOS引导程序而不是EFI


12

我们拥有UEFI服务器,并且遇到了一种情况,我们需要强制Windows Server 2008通过旧版BIOS方法而不是通过UEFI进行引导。

有没有办法告诉Windows Server 2008(在安装过程中或在安装后)忽略它安装到EFI计算机上的事实,而是安装并使用旧版BIOS引导加载程序?


我尝试了一些没有帮助的建议:

  • 在安装Windows之前将磁盘格式化为MBR分区

    否,Windows拒绝安装:在EFI系统上,Windows只能安装到GPT磁盘上

  • 安装Windows,将分区迁移到MBR磁盘,修复系统

    否,系统维修控制台拒绝加载。它抱怨说它无法识别我试图修复的Windows版本。

  • 禁用UEFI

    如果我可以禁用UEFI并将系统设置为仅旧版,那我将拥有。但是,我正在使用的特定系统(IBM HS22,x3690X5)仅具有旧版支持的UEFI。您不能仅对它们禁用UEFI。这将需要完整的BIOS实现。


解决方案!

正如JdeBP指出的那样,Windows用于确定是使用EFI / GPT还是BIOS / MBR引导加载程序的唯一方法是引导安装CD的方法。

结合Weaver的建议来制作没有0xEF引导目录条目的.iso映像(顺便说一句,通过十六进制编辑而不是重新制作映像,这容易得多)使我们得到一个简洁的好答案:

强制安装介质通过BIOS而不是通过UEFI引导,因为这是Windows Installer用来确定使用哪种引导方案的唯一区别。


这将是特定于硬件的。如果提及设备和型号,可能会有所帮助。某些供应商在设置屏幕或引导选项中提供了BIOS兼容模式的选项。
汤姆·威尔威尔斯

我没有在问题中提到硬件的原因是一个有意的选择。我想通过告诉Windows使用不同的引导程序进行此更改。我的IBM x3690X5已打开BIOS兼容性,因此任何BIOS加载程序都可以使用。问题是告诉W2K8 不要使用其UEFI引导加载程序。
MikeyB 2011年

2
@MikeyB:为什么不只使用GPT?
tegbains 2011年

@tegbains:$ BIGCUSTOMER具有使用不正确支持GPT的产品的映像环境。
MikeyB 2011年

1
如果花了不到两周的时间从您身上榨取了这一非常重要的信息,我们本可以为Weaver避免很多麻烦。我建议您编辑问题以反映实际目标,因为标题中的内容是您无法进行的步骤X,并且您的问题极易引起误解。
JdeBP 2011年

Answers:


6

微软不会让您迈出第一步。所以解决您的目标。

Microsoft错误地将EFI分区硬盘装满EFI固件。当然,这显然是错误的。在具有旧的非EFI固件的计算机上完全有可能(并且实际上,如今正变得越来越受欢迎),将EFI分区光盘安装在该计算机上。实际上,尽管这里的人们花了两个星期的时间才将目标而不是迈向目标,但实际上,您还是想要相反。您要在具有EFI固件的计算机上安装旧的PC / AT风格MBR分区光盘。(EFI固件本身对任何一种分区表格式都没有问题,并且确实是EFI规范要求理解这两种格式。这是由Microsoft造成的。)并且您想要这样做是因为其他人的软件无法理解EFI分区表。

Microsoft错误的几种后果之一是,必须从又从旧PC98固件引导的安装介质中调用Windows NT 6.1安装程序,以使其接受将Windows NT 6.1安装到光盘上的想法。使用旧的PC / AT MBR分区方案进行分区。不幸的是,如果以新的EFI方式引导Windows NT安装光盘,则安装程序会认为它具有EFI固件,因此声明无法将其安装到非EFI分区的硬盘上。

正如Weaver指出的那样,正如Microsoft文档所解释的那样,安装CD-ROM实际上是双重引导的。 正如Rod Smith进一步解释的那样,因此可以手动构造以旧PC98方式引导的Windows NT 6.1安装光盘。然后,Windows NT 6.1安装程序将允许安装到旧的PC / AT MBR分区硬盘上。

但是,在缺乏兼容性支持模块的系统上(就像您说的那样),这将无济于事。您的系统将需要安装在EFI系统分区上的Microsoft Boot Manager的EFI版本,因为这是固件将尝试引导操作系统的方式。但是,当在非EFI固件上启动Windows NT 6.1安装程序时,它将安装Microsoft的Boot Manager的非EFI版本,并且不会创建EFI系统分区。这样的安装实际上不会在您的计算机上引导,并且您甚至无法完成安装过程。确实,由于您缺少CSM,因此您甚至无法开始安装过程,因为您甚至无法以旧的PC98方式引导安装光盘。微软不会让您实现自己的目标的两倍。

因此,请专注于您的目标。您的目标是使客户能够将Windows Server 2008部署到具有来自系统映像的EFI固件的计算机上。因此,您应该向软件供应商提出的正确问题是如何修复该旧的/损坏的光盘映像软件,以便它对EFI分区表没有任何问题。


哦,我的系统不缺少兼容模式,这不是问题。因此,您是说Windows安装程序检测系统是否为EFI的唯一方法是通过用于引导的方法?这是新的重要信息-我将尝试一下。
MikeyB 2011年

啊啊!有用!这就是我需要的关键信息:“强制安装介质通过BIOS而不是通过UEFI进行引导,因为这是Windows Installer确定使用哪种引导方案的方法。”
MikeyB 2011年

@JdeBP +1给您一个很好的答案。
Weaver

7

简而言之,出于几个不同的原因,是和否。如果Windows从GPT磁盘启动,则必须从UEFI启动。Windows引导管理器和加载器无法从本机 UEFI 引导到MBR磁盘。但是,如果将UEFI配置为传统BIOS引导模式,则可以使用MBR磁盘进行引导。这源于Windows引导模式(带MBR的BIOS或带GPT的UEFI)取决于启动它的环境。

继续阅读以了解一些技术-

物理硬件(或虚拟硬件,但还是硬件)固件(BIOS / UEFI)提供了可用于操作系统启动过程后续阶段的初始操作环境(与启动有关的数据结构和约定)和固件服务。

BIOS / MBR

对于BIOS / MBR引导,第一个可引导磁盘的第一个扇区-主引导记录(LBA 0)包含少数x86(16位8088)程序集,然后是分区表,然后是签名。BIOS将该扇区加载到内存中并开始执行-一旦涉及MBR,BIOS就会放弃其自己的程序代码控制。

http://mbr.adamsatoms.com/

http://www.ata-atapi.com/hiwmbr.html

MBR中的x86程序集(大多数MBR中为Intel 8088)解析分区表,搜索活动分区,然后跳转到该分区中的第一个扇区-称为卷启动记录。卷启动记录包含一个x86程序集jmp,一个BIOS参数块(根本没有被系统BIOS使用,因此名称令人困惑),以及更多的x86程序集,这些程序集最终加载了操作系统的启动加载程序(在Windows环境中为NTLDR或BOOTMGR) )从启动卷/分区本身。

NTLDR或BOOTMGR将CPU切换到保护模式,查阅它们的启动时配置(分别在启动卷/分区上,分别参考boot.ini或BCD),然后加载NTOSKRNL,其余部分为历史记录。

http://technet.microsoft.com/zh-cn/library/cc781134%28WS.10%29.aspx

http://en.wikipedia.org/wiki/Windows_NT_startup_process

http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/bios-parameter-block.html

UEFI / GPT

首先让我说一下,我对UEFI / GPT没有太多的经验。但是,正如我已经使用它并了解它的操作一样,最大的区别(与我们的对话有关)是可执行控制没有转移到MBR。

相反,UEFI固件包含其自己的启动管理器。该启动管理器会扫描磁盘和介质,-掩盖GPT格式化磁盘的保护MBR,到达GPT标头,然后跳入EFI系统分区(ESP),在其中查找EFI可执行程序–应该作为操作系统引导加载程序,可以直接引导操作系统,但是,正如我们在最新的MS和Apple EFI可执行文件中所看到的那样,它们实际上是引导管理器,为流程和复杂性增加了另一层。

http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/efi-boot-process.html

http://msdn.microsoft.com/zh-CN/windows/hardware/gg463525#X-201104111922443

结论/ TL; DR

可以避免这一点的地方是,可以在预期的环境中运行操作系统的引导管理器和引导加载程序。从可用的固件级别服务(BIOS / UEFI中断),数据结构(变量,堆栈约定等),甚至磁盘格式化约定。在运行时无法更改-至少不是我理解的方式。

您有选择吗?

预安装您可以通过在使用MBR的旧BIOS引导中使用BIOS / MBR或UEFI或通过GPT的UEFI来控制安装。

安装后-离线更改磁盘格式(从MBR转换为GPT和从GPT转换为MBR),然后启动到故障恢复控制台(在适当的UEFI或BIOS模式下)并使用bcdboot和bcdedit来获取Windows,可能会有一些有趣的可能性引导管理器设置正确。

更新2011.09.09

@MikeyB

据我所知,列出选项不是实际提出任何正式建议。

不过,在对UEFI进行了更多研究之后(回想起我没有太多的积极经验),我发现了一些有关UEFI引导管理器和对CD / DVD引导的支持的有趣花絮。

始于95年的El Torito引导规范仍然存在,并且与可引导CD / DVD一起使用。一张CD / DVD可能必须在多种体系结构上引导-尽管ISO 9660完全独立于平台,但可执行代码却并非如此。因此,El Torito引导规范允许多个引导项/映像。

这些条目/映像包含一个Platform ID,旨在指示该条目是否适用于PC,PowerPC和其他体系结构,以便体系结构的BIOS(或固件)可以选择正确的引导条目。

带有BIOS的标准x86 PC的El Torito 平台ID为0x00。支持UEFI的平台ID为0xEF-非常有创意。

标准x86 PC BIOS会忽略除0x00之外的所有其他条目。具有旧版BIOS支持的UEFI固件(称为兼容性支持模块(CSM))-能够启动0x00,但会首选目录中的0xEF本机启动条目。

Windows 2008、2008 R2和7 DVD介质包含具有0x00和0xEF的多映像El Torito目录。默认值是0x00,但是如果存在0xEF并选择0xEF条目(因为它是本机的),则UEFI会对其进行屏蔽。

可能的是,制作在El Torito引导目录中包含首选Platform ID的介质。代替多条目目录,创建具有0x00平台ID的单条目目录。这应该强制UEFI固件(如果实际上它支持旧版BIOS引导)选择0x00平台ID并在Windows介质上引导旧版BIOS引导条目。

怎么做?

使用Oscdimg是可能的。以下是人们创建仅UEFI媒体以规避Apple UEFI实施限制的几个示例。请注意,这与我们试图做的相反—我们只想创建一个BIOS,而从目录中删除UEFI引导项。

仅限UEFI(对面)1

仅限UEFI(对面)2

创建仅BIOS介质的过程与以下命令的-b-p参数的更改类似。

-bC:\path\to\Etfsboot.com -p0x00

UEFI支持和Windows操作系统要求文档是一个很好的资源,可以很好地说明Microsoft对Windows安装介质的选择。


1
“预安装,您可以在具有MBR的旧BIOS引导或具有GPT的UEFI中使用BIOS / MBR或UEFI控制安装。” 确定,因此您如何告诉Windows:“安装到MSDOS样式的分区表。”?
MikeyB 2011年

@MikeyB在具有传统BIOS的计算机系统中引导Windows安装介质。或-在将UEFI设置为旧版BIOS引导模式的计算机系统中引导Windows安装介质。请注意,您的UEFI必须支持旧版BIOS引导模式。
Weaver

您建议我将Windows安装到另一台完全不同的计算机上,然后再将磁盘移走?根本不是一个好主意。同样,将UEFI计算机设置为“传统BIOS模式”时,它仅启用用于引导旧MBR磁盘的旧BIOS挂钩。它不会关闭UEFI,因此Windows仍然会说“这是UEFI系统吗?是的。”
MikeyB 2011年

@MikeyB在原始答案中添加了更新。
Weaver

1
在了解BIOS和MBR磁盘大小限制的过程中,我已经看到了与Server 2008类似的东西。我用2008 R2构建了服务器,并启用了传统BIOS模式,因为它不会与USB介质一起安装(MS错误),但是我发现它随后使用了MBR而不是GPT,因为BIOS无法加载GPT(除非您有某种引导加载程序)。简而言之,切换到传统模式肯定是在传统模式下安装的,证明将在磁盘管理器中进行,您将看到MBR而不是GPT磁盘。
Alex Berry

3

一种简单的方法是在不支持EFI的计算机上简单地执行Windows的基本安装,使用映像软件捕获它,然后将其还原到实际硬件中。

一个不错的选择可能是在VM中构建基础安装。在早期版本(版本<6)中,Windows无法很好地将其从一种类型的硬件转移到另一种类型的硬件。对于最新版本的Windows,只要映像上支持存储控制器,Windows就会在适应新硬件方面做得很好。

Windows安装(ver> = 6)磁盘通常通常包含一个wim文件,该文件基本上只是操作系统的映像。


这正是我要建议的。在另一个(BIOS / MBR)系统上运行Windows安装程序,然后将磁盘或其映像移至目标服务器。如果启动,则即插即用将接and而来,它将愉快地在其他硬件上运行。
Massimo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.