Forçar o Windows Server 2008 a usar o carregador de inicialização do BIOS herdado em vez do EFI


12

Temos servidores UEFI e deparamos com uma situação em que precisamos forçar o Windows Server 2008 a inicializar através do método BIOS herdado, em vez de através do UEFI.

Existe uma maneira de dizer ao Windows Server 2008 (durante a instalação ou pós-instalação) que ignore o fato de que está sendo instalado em uma máquina EFI e, em vez disso, instale e use o carregador de inicialização herdado do BIOS?


Eu tentei algumas sugestões que não ajudaram:

  • Formate discos como partições MBR antes de instalar o Windows

    Não, o Windows se recusa a instalar:Nos sistemas EFI, o Windows pode ser instalado apenas em discos GPT

  • Instale o Windows, migre a partição para um disco MBR, repare o sistema

    Não, o console de reparo do sistema se recusa a carregar. Ele reclama que não reconhece a versão do Windows que estou tentando reparar.

  • Desativar UEFI

    Se eu pudesse desativar o UEFI e tornar o sistema legado somente, eu teria. No entanto, os sistemas específicos que estou usando (IBM HS22, x3690X5) são apenas UEFI com suporte legado. Você não pode simplesmente desativar o UEFI neles. Isso exigiria uma implementação completa do BIOS.


A solução!

Como o JdeBP aponta, o único método que o Windows usa para determinar se deve usar o carregador de inicialização EFI / GPT ou BIOS / MBR é o método usado para inicializar o CD de instalação.

Combinando isso com a sugestão de Weaver de criar uma imagem .iso sem a entrada do catálogo de inicialização 0xEF (muito mais fácil de editar hexadecimalmente do que remasterizar a imagem), nos leva a uma resposta concisa e agradável:

Force a mídia de instalação a inicializar via BIOS, não via UEFI, pois esse é o único diferenciador que o Windows Installer usa para determinar qual esquema de inicialização usar.


Isso será específico do hardware. Pode ser útil se você mencionar o equipamento e o modelo. Alguns fornecedores fornecem uma opção para o modo de compatibilidade do BIOS na tela de configuração ou como uma opção de inicialização.
Tom Willwerth

O motivo pelo qual não mencionei o hardware na questão foi uma escolha deliberada. Quero fazer essa alteração no lado do Windows dizendo para usar um gerenciador de inicialização diferente. Meu IBM x3690X5 já tem a compatibilidade do BIOS ativada, portanto, qualquer carregador de BIOS funcionará. O problema está dizendo ao W2K8 para não usar seu carregador de inicialização UEFI.
MikeyB

2
@ MikeyB: Por que não usar apenas GPT?
tegbains

@tegbains: $ BIGCUSTOMER possui um ambiente de criação de imagens que usa um produto que não oferece suporte adequado à GPT.
MikeyB 13/09/11

1
Se não levasse duas semanas para extrair essa informação muito importante de você, poderíamos ter poupado muita dor a Weaver. Sugiro que você edite sua pergunta para refletir o objetivo real, porque o que está no título é a etapa X que você não consegue trabalhar e sua pergunta é altamente enganosa.
JdeBP

Respostas:


6

A Microsoft não permitirá que você realize seu passo; então, atinja seu objetivo.

A Microsoft confunde erroneamente um disco rígido particionado EFI com o firmware EFI . Obviamente, isso está claramente errado. É bem possível - e de fato está se tornando cada vez mais desejável nos dias de hoje - ter um disco particionado EFI em uma máquina com firmware antigo que não seja EFI. Você na verdade - embora demorou mais de duas semanas para as pessoas aqui torcerem seu objetivo em vez do passo - deseja o contrário. Você deseja ter um disco particionado MBR no estilo PC / AT antigo em uma máquina com firmware EFI. (O firmware da EFI em si não tem nenhum problema com o formato da tabela de partição e é realmente exigido pela especificação da EFI para entender as duas coisas. É a Microsoft que comete esse erro.) E você deseja isso porque o software de outra pessoa não pode entender a tabela de partição da EFI.

Uma das várias conseqüências do erro da Microsoft é que o instalador do Windows NT 6.1 precisa ser chamado de uma mídia de instalação que, por sua vez, foi inicializada a partir do antigo firmware PC98, para aceitar a idéia de instalar o Windows NT 6.1 em um disco particionado com o antigo esquema de particionamento PC / AT MBR. Infelizmente, se o disco de instalação do Windows NT for inicializado da nova maneira EFI, o instalador achará que há firmware EFI e, portanto, declarará que não pode ser instalado em discos rígidos não-EFI particionados.

Como Weaver apontou, e como a documentação da Microsoft explica , o CD-ROM de instalação é, de fato, inicialização dupla. Como explica Rod Smith mais adiante , é possível construir manualmente um disco de instalação do Windows NT 6.1 que se inicialize da maneira antiga do PC98. O instalador do Windows NT 6.1 permitirá a instalação em um disco rígido particionado PC / AT MBR antigo.

No entanto, em sistemas sem um módulo de suporte à compatibilidade , como você diz que o seu sistema faz, isso não ajudará em nada . Seu sistema exigirá a versão EFI do Boot Manager da Microsoft, instalada na Partição do sistema EFI, porque é assim que seu firmware tentará inicializar o sistema operacional. Mas quando o instalador do Windows NT 6.1 é iniciado no firmware não EFI, ele instala a versão não EFI do Boot Manager da Microsoft e não cria uma partição do sistema EFI. Essa instalação não será realmente inicializada em sua máquina e você nem poderá concluir o procedimento de instalação. De fato, como você não possui um CSM, nem poderá começaro procedimento de instalação, porque você nem conseguirá inicializar o disco de instalação da maneira antiga do PC98. A Microsoft não permitirá que você realize sua etapa duas vezes.

Portanto, concentre-se no seu objetivo. Seu objetivo é permitir que seu cliente implante o Windows Server 2008 em máquinas com firmware EFI a partir de uma imagem do sistema. Portanto, a pergunta correta que você deve fazer - do fornecedor do software - é como consertar o software de imagem de disco antigo / quebrado, para que ele não tenha problemas com a tabela de partições EFI.


Oh, meu sistema não possui um modo de compatibilidade, isso não é um problema. Então você está dizendo que a única maneira de o instalador do Windows detectar se o sistema é EFI é pelo método usado para inicializar? Essa é uma informação nova e crítica - tentarei isso.
precisa saber é o seguinte

Ahah! Funciona! Essa é a informação crítica de que eu precisava: "Force a mídia de instalação a inicializar via BIOS, não via UEFI, pois esse é o método que o Windows Installer usa para determinar qual esquema de inicialização usar".
precisa saber é o seguinte

@JdeBP +1 para uma resposta maravilhosa.
Weaver

7

Em resumo, sim e não por alguns motivos diferentes. Se o Windows estiver inicializando a partir de um disco GPT, ele deverá ser da UEFI. O gerenciador e carregador de inicialização do Windows não pode inicializar no disco MBR a partir da UEFI nativa . No entanto, se o UEFI estiver configurado para o modo de inicialização do BIOS herdado, um disco MBR poderá ser usado para a inicialização. Isso ocorre porque o modo de inicialização do Windows (BIOS com MBR ou UEFI com GPT) depende do ambiente em que é chamado.

Continue lendo para um pouco de tecnologia -

O firmware físico do hardware (ou hardware virtual, mas mesmo assim o hardware) (BIOS / UEFI) fornece o ambiente operacional inicial (estruturas e convenções de dados relacionados à inicialização) e serviços de firmware disponíveis para os estágios subsequentes do processo de inicialização do sistema operacional.

BIOS / MBR

No caso de inicialização do BIOS / MBR, o primeiro setor do primeiro disco inicializável - o registro mestre de inicialização (LBA 0) contém um punhado de montagens x86 (16 bits 8088), a tabela de partição e uma assinatura). O BIOS carrega esse setor na memória e começa a executar - o BIOS renuncia ao seu próprio controle de código de programa assim que o MBR é envolvido.

http://mbr.adamsatoms.com/

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

O conjunto x86 (Intel 8088 na maioria dos MBRs) no MBR analisa a tabela de partições, procura por uma partição ativa e salta para o primeiro setor nessa partição - chamado de registro de inicialização por volume. O registro de inicialização do volume contém um assembly x86 jmp, um bloco de parâmetros do BIOS (que não é usado pelo BIOS do sistema, nome tão confuso) e um monte de assembly x86 que carrega o carregador de inicialização do sistema operacional (NTLDR ou BOOTMGR em ambientes Windows) ) a partir do próprio volume / partição de inicialização.

NTLDR ou BOOTMGR alteram a CPU para o modo protegido, consulte sua configuração de tempo de inicialização (boot.ini ou BCD respectivamente, ambos no volume / partição de inicialização) e carrega NTOSKRNL onde o restante é histórico.

http://technet.microsoft.com/en-us/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

Primeiro, deixe-me declarar que não tenho muita experiência ativa com UEFI / GPT. No entanto, como eu o usei e o entendi para operar - a grande diferença (no que diz respeito à nossa conversa) é que o controle executável não é transferido para o MBR.

Em vez disso, o firmware UEFI contém seu próprio gerenciador de inicialização. Esse gerenciador de inicialização examina discos e mídias, - encobre o MBR protetor de discos formatados em GPT, chega ao cabeçalho da GPT e depois mergulha na EFI System Partition (ESP), onde procura programas executáveis ​​da EFI - que devem como carregadores de inicialização do sistema operacional inicializando o sistema operacional diretamente, no entanto, como vimos com os mais recentes executáveis ​​da MS e da Apple EFI, eles são, na verdade, gerenciadores de inicialização que adicionam outra camada ao processo e à complexidade.

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

http://msdn.microsoft.com/en-us/windows/hardware/gg463525#X-201104111922443

Conclusão / TL; DR

O ponto de tirar isso é que há um ambiente esperado no qual o gerenciador de inicialização e o carregador de inicialização do sistema operacional esperam executar. Desde os serviços de nível de firmware disponíveis (interrupções do BIOS / UEFI), estruturas de dados (variáveis, convenções de pilha, etc.) e até convenções de formatação de disco. Não pode ser alterado em tempo de execução - pelo menos não da maneira que eu entendo.

Suas opções?

Pré-instalação, você pode controlar a instalação usando BIOS / MBR ou UEFI na inicialização do BIOS herdada com MBR ou UEFI com GPT.

Pós-instalação - pode haver algumas possibilidades interessantes de alterar o formato do disco (MBR para GPT e GPT para MBR) offline e inicializar em um console de recuperação (no modo UEFI ou BIOS apropriado) e trabalhar com bcdboot e bcdedit para obter o Windows gerenciador de inicialização definido.

Atualização 2011.09.09

@MikeyB

Listar as opções como eu as entendo, sem fazer sugestões formais.

No entanto, depois de fazer um pouco mais de pesquisa sobre UEFI (lembre-se de que não tenho muita experiência ativa com ele), descobri alguns boatos interessantes sobre o gerenciador de inicialização UEFI e o suporte à inicialização de CD / DVD.

A especificação de inicialização El Torito, de 95, ainda existe hoje em dia e é usada com CD / DVD inicializáveis. Um único CD / DVD pode ter que inicializar em várias arquiteturas - e, embora a ISO 9660 seja bastante independente da plataforma, o código executável não é. Como tal, a Especificação de inicialização do El Torito permite várias entradas / imagens de inicialização.

Essas entradas / imagens contêm um ID da plataforma , destinado a indicar se uma entrada é para PC, PowerPC e outras arquiteturas, para que o BIOS (ou firmware) da arquitetura possa escolher a entrada de inicialização correta.

Os PCs x86 padrão com um BIOS têm um ID de plataforma El Torito de 0x00. O ID da plataforma compatível com UEFI é 0xEF - bastante criativo.

Os BIOS de PCs x86 padrão ignoram todas as outras entradas, exceto 0x00. Os firmware UEFI que possuem suporte de BIOS herdado (conhecido como Compatibility Support Module (CSM)) - embora possam inicializar 0x00, preferem uma entrada de inicialização nativa 0xEF do catálogo.

A mídia de DVD do Windows 2008, 2008 R2 e 7 contém um catálogo El Torito de várias imagens com 0x00 e 0xEF. O 0x00 é o padrão, mas um UEFI o encobrirá se um 0xEF existir e escolher a entrada 0xEF - como ela é nativa.

O que é possível - é criar mídia que contenha apenas o ID da plataforma preferido no catálogo de inicialização do El Torito. Em vez de um catálogo de entradas múltiplas, crie um catálogo de entrada única com um ID da plataforma 0x00. Isso deve forçar o firmware UEFI, se de fato ele suportar a inicialização do BIOS herdada, para escolher o ID da plataforma 0x00 e inicializar a entrada de inicialização do BIOS herdada na mídia do Windows.

Como fazer isso?

Usando o Oscdimg é possível. Abaixo estão vários exemplos de pessoas que criam apenas mídia UEFI para contornar as limitações na implementação UEFI da Apple. Observe que é o contrário do que estamos tentando fazer - queremos criar apenas um BIOS, deixando de fora a entrada de inicialização UEFI do catálogo.

Apenas UEFI (oposto) 1

Apenas UEFI (oposto) 2

O processo para criar BIOS somente mídia é semelhante com as alterações ao -be -pargumentos para o seguinte

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

Um excelente recurso que esclareceu a loucura escolhida pela Microsoft na mídia de instalação do Windows é o documento UEFI Support and Requirements for Windows Operating Systems .


1
"Pré-instalação, você pode controlar a instalação usando BIOS / MBR ou UEFI na inicialização do BIOS herdada com MBR ou UEFI com GPT." OK, então como você diz ao Windows: "Instalar em uma tabela de partição no estilo MSDOS".
MikeyB 9/09/11

@ MikeyB Inicialize a mídia de instalação do Windows em um sistema de computador com um BIOS tradicional. Ou - inicialize a mídia de instalação do Windows em um sistema de computador com UEFI definido no modo de inicialização do BIOS herdado. Observe que seu UEFI deve suportar um modo de inicialização do BIOS herdado.
Weaver

Você está sugerindo que eu instale o Windows em um computador completamente diferente e mova os discos? Não é uma boa ideia. Além disso, quando você define um computador UEFI para o 'modo BIOS herdado', ele apenas ativa os ganchos herdados do BIOS para inicializar discos MBR herdados. Como o UEFI não é desativado , o Windows ainda diz "Este é um sistema UEFI? Sim".
MikeyB

@ MikeyB Adicionadas atualizações à resposta original.
Weaver

1
Eu vi algo semelhante com o servidor 2008, no processo de aprender sobre os limites de tamanho de disco do BIOS e MBR. Criei um servidor com 2008 R2 e ativei o modo BIOS herdado devido ao fato de ele não ser instalado com mídia USB (um bug do MS). No entanto, achei que ele usava MBR em vez de GPT porque o BIOS não é capaz de carregar o GPT (a menos que você tem algum tipo de carregador de inicialização). Em resumo, a mudança para o modo legado definitivamente é instalada no modo legado; a prova estará no gerenciador de disco, onde você verá discos MBR e não GPT.
Alex Berry

3

Um método simples seria simplesmente executar uma instalação básica do Windows em uma máquina que não suporta EFI, capturá-la com o software de imagem e restaurá-la no hardware real.

Uma boa opção pode ser construir sua instalação básica em uma VM. Nas versões anteriores (ver <6) do Windows não se adaptavam bem para serem movidas de um tipo de hardware para outro. Nas versões recentes do Windows, desde que o controlador de armazenamento seja suportado na imagem, o Windows fará um bom trabalho na adaptação ao novo hardware.

O disco de instalação do Windows (ver> = 6) basicamente inclui geralmente um arquivo wim que é basicamente apenas uma imagem do sistema operacional.


Isso é exatamente o que eu ia sugerir. Execute a instalação do Windows em outro sistema (BIOS / MBR) e mova o disco ou sua imagem para o servidor de destino. Se ele inicializar, o PnP ocorrerá e será executado felizmente em diferentes hardwares.
Massimo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.