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:
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.
fonte
Respostas:
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.
fonte
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
-b
e-p
argumentos para o seguinteUm 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 .
fonte
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.
fonte