Forcer Windows Server 2008 à utiliser le chargeur de démarrage du BIOS hérité au lieu d'EFI

12

Nous avons des serveurs UEFI et nous sommes tombés sur une situation où nous devons forcer Windows Server 2008 à démarrer via la méthode BIOS héritée plutôt que via UEFI.

Existe-t-il un moyen de dire à Windows Server 2008 (pendant l'installation ou la post-installation) d'ignorer le fait qu'il s'installe sur une machine EFI et d'installer et d'utiliser à la place le chargeur de démarrage du BIOS hérité?


J'ai essayé quelques suggestions qui n'ont pas aidé:

  • Formatez les disques en tant que partitions MBR avant d'installer Windows

    Non, Windows refuse d'installer:Sur les systèmes EFI, Windows ne peut être installé que sur des disques GPT

  • Installer Windows, migrer la partition vers un disque MBR, réparer le système

    Non, la console de réparation du système refuse de se charger. Il se plaint de ne pas reconnaître la version de Windows que j'essaie de réparer.

  • Désactiver UEFI

    Si je pouvais désactiver UEFI et rendre le système hérité uniquement, je l'aurais fait. Cependant, les systèmes particuliers que j'utilise (IBM HS22, x3690X5) sont uniquement UEFI avec un support hérité. Vous ne pouvez pas simplement désactiver UEFI sur eux. Cela nécessiterait une implémentation complète du BIOS.


La solution!

Comme le souligne JdeBP, la seule méthode utilisée par Windows pour déterminer s'il faut utiliser le chargeur de démarrage EFI / GPT ou BIOS / MBR est la méthode qui a été utilisée pour démarrer le CD d'installation.

Combiner cela avec la suggestion de Weaver de créer une image .iso sans l'entrée de catalogue de démarrage 0xEF (beaucoup plus facile à faire par édition hexadécimale plutôt que de remasteriser l'image, en passant) nous conduit à une réponse agréable et concise:

Forcer le support d'installation à démarrer via le BIOS, pas via UEFI car c'est le seul différenciateur que Windows Installer utilise pour déterminer le schéma de démarrage à utiliser.

MikeyB
la source
Cela va être spécifique au matériel. Cela peut être utile si vous mentionnez l'équipement et le modèle. Certains fournisseurs proposent une option pour le mode de compatibilité BIOS dans l'écran de configuration ou comme option de démarrage.
Tom Willwerth
La raison pour laquelle je n'ai pas mentionné de matériel dans la question était un choix délibéré. Je veux faire ce changement du côté de Windows en lui disant d'utiliser un autre chargeur de démarrage. Mon IBM x3690X5 a déjà la compatibilité BIOS activée, donc tous les chargeurs BIOS fonctionneront. Le problème est de dire à W2K8 de ne pas utiliser son chargeur de démarrage UEFI.
MikeyB
2
@MikeyB: Pourquoi ne pas simplement utiliser GPT?
tegbains
@tegbains: $ BIGCUSTOMER dispose d'un environnement d'imagerie qui utilise un produit qui ne prend pas correctement en charge GPT.
MikeyB
1
S'il n'avait pas fallu une quinzaine de jours pour vous arracher cette information très importante, nous aurions pu épargner beaucoup de chagrin à Weaver. Je vous suggère de modifier votre question pour refléter l'objectif réel, car ce qui est dans le titre est l'étape X que vous ne pouvez pas vous mettre au travail et votre question est très trompeuse.
JdeBP

Réponses:

6

Microsoft ne vous laissera pas réaliser votre étape; Alors, adressez-vous à votre objectif.

Microsoft confond par erreur un disque dur partitionné EFI avec un firmware EFI . C'est, bien sûr, clairement faux. Il est tout à fait possible - et devient de plus en plus souhaitable de nos jours - d'avoir un disque partitionné EFI sur une machine qui a un ancien firmware non-EFI. En fait - bien qu'il ait fallu plus de quinze jours aux gens ici pour vous arracher l'objectif plutôt que l'étape - vous voulez l'inverse. Vous souhaitez disposer d'un ancien disque partitionné MBR de type PC / AT sur une machine dotée du micrologiciel EFI. (Le micrologiciel EFI lui-même n'a aucun problème avec l'un ou l'autre format de table de partition et est en effet requis par la spécification EFI pour comprendre les deux. C'est Microsoft qui fait cette erreur.) Et vous le voulez parce que le logiciel de quelqu'un d'autre ne peut pas comprendre la table de partition EFI.

L'une des nombreuses conséquences de l'erreur de Microsoft est que le programme d'installation de Windows NT 6.1 doit être appelé à partir d'un support d'installation qui à son tour a été amorcé à partir de l'ancien micrologiciel PC98, afin qu'il accepte l'idée d'installer Windows NT 6.1 sur un disque. partitionné avec l'ancien schéma de partitionnement PC / AT MBR. Malheureusement, si le disque d'installation de Windows NT est démarré selon la nouvelle méthode EFI, le programme d'installation pensera qu'il existe un micrologiciel EFI et déclarera donc qu'il ne peut pas être installé sur des disques durs non partitionnés EFI.

Comme Weaver l'a souligné et comme l'explique la documentation de Microsoft , le CD-ROM d'installation est en fait à double démarrage. Comme Rod Smith l'explique plus loin , on peut donc construire manuellement un disque d'installation de Windows NT 6.1 qui démarre à l'ancienne PC98. Le programme d'installation de Windows NT 6.1 permettra ensuite l'installation sur un ancien disque dur partitionné PC / AT MBR.

Cependant, sur les systèmes dépourvus de module de prise en charge de la compatibilité , comme vous le dites, cela n'aidera pas du tout . Votre système nécessitera la version EFI du gestionnaire de démarrage de Microsoft, installée sur la partition système EFI, car c'est ainsi que votre micrologiciel tentera d'amorcer le système d'exploitation. Mais lorsque le programme d'installation de Windows NT 6.1 est démarré sur un micrologiciel non EFI, il installe la version non EFI du gestionnaire de démarrage de Microsoft et ne crée pas de partition système EFI. Une telle installation ne démarrera pas réellement sur votre machine, et vous ne pourrez même pas terminer la procédure d'installation. En effet, comme il vous manque un CSM, vous ne pourrez même pas commencerla procédure d'installation, car vous ne pourrez même pas amorcer le disque d'installation à l'ancienne PC98. Microsoft ne vous laissera pas réaliser votre étape, deux fois.

Concentrez-vous donc plutôt sur votre objectif. Votre objectif est de permettre à votre client de déployer Windows Server 2008 sur des machines dotées d'un micrologiciel EFI à partir d'une image système. Par conséquent, la bonne question que vous devriez vous poser - du fournisseur du logiciel - est de savoir comment réparer ce logiciel d'imagerie de disque ancien / cassé afin qu'il n'ait aucun problème avec la table de partition EFI.

JdeBP
la source
Oh mon système ne manque pas de mode de compatibilité, ce n'est pas un problème. Vous dites donc que la seule façon dont le programme d'installation de Windows détecte si le système est EFI est via la méthode qui a été utilisée pour bootstrap? Ce sont des informations nouvelles et essentielles - je vais essayer cela.
MikeyB
Ah ah! Ça marche! C'est l'élément d'information essentiel dont j'avais besoin: "Forcer le support d'installation à démarrer via le BIOS, pas via UEFI car c'est la méthode utilisée par Windows Installer pour déterminer le schéma de démarrage à utiliser."
MikeyB
@JdeBP +1 à vous pour une merveilleuse réponse.
Weaver
7

Bref, oui et non pour plusieurs raisons différentes. Si Windows démarre à partir d'un disque GPT, il doit provenir d'UEFI. Le gestionnaire de démarrage et le chargeur Windows ne peuvent pas démarrer sur le disque MBR à partir de l' UEFI natif . Cependant, si l'UEFI est configuré pour le mode de démarrage du BIOS hérité, un disque MBR peut être utilisé pour le démarrage. Cela découle du mode de démarrage de Windows (BIOS avec MBR ou UEFI avec GPT) dépendant de l'environnement dans lequel il est invoqué.

Lisez la suite pour un peu de technologie -

Le micrologiciel matériel physique (ou matériel virtuel, mais matériel néanmoins) (BIOS / UEFI) fournit l'environnement d'exploitation initial (structures de données et conventions liées au démarrage) et les services du micrologiciel disponibles pour les étapes suivantes du processus de démarrage du système d'exploitation.

BIOS / MBR

Dans le cas d'un démarrage BIOS / MBR, le premier secteur du premier disque de démarrage - l'enregistrement de démarrage principal (LBA 0) contient une poignée d'assemblage x86 (16 bits 8088), puis la table de partition, puis une signature). Le BIOS charge ce secteur en mémoire et commence à s'exécuter - le BIOS abandonne son propre contrôle de code de programme dès que le MBR est impliqué.

http://mbr.adamsatoms.com/

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

L'assemblage x86 (Intel 8088 dans la plupart des MBR) du MBR analyse la table de partition, recherche une partition active et passe au premier secteur de cette partition - appelé l'enregistrement de démarrage du volume. L'enregistrement de démarrage du volume contient un jmp d'assemblage x86, un bloc de paramètres du BIOS (pas du tout utilisé par le BIOS du système, donc nom confus), et un assemblage plus x86 qui charge finalement le chargeur de démarrage du système d'exploitation (NTLDR ou BOOTMGR dans les environnements Windows ) à partir du volume / de la partition de démarrage lui-même.

NTLDR ou BOOTMGR basculent le CPU en mode protégé, consultent leur configuration de démarrage (boot.ini ou BCD respectivement, tous deux sur le volume / partition de démarrage) et chargent NTOSKRNL où le reste est de l'histoire.

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

Permettez-moi d'abord de dire que je n'ai pas beaucoup d'expérience active avec UEFI / GPT. Cependant, comme je l'ai utilisé et que je le comprends pour fonctionner - la grande différence (en ce qui concerne notre conversation) est que le contrôle exécutable n'est pas transféré au MBR.

Au lieu de cela, le firmware UEFI contient son propre gestionnaire de démarrage. Ce gestionnaire de démarrage analyse les disques et les médias, - passe en revue le MBR protecteur des disques formatés GPT, arrive à l'en-tête GPT, puis plonge dans la partition système EFI (ESP) où il recherche les programmes exécutables EFI - qui sont censés être des chargeurs de démarrage du système d'exploitation démarrant directement le système d'exploitation, mais comme nous l'avons vu avec les derniers exécutables MS et Apple EFI, ils sont en fait des gestionnaires de démarrage ajoutant une autre couche au processus et à la complexité.

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

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

Conclusion / TL; DR

Le point à retenir de cela est qu'il existe un environnement attendu dans lequel le gestionnaire de démarrage et le chargeur de démarrage du système d'exploitation s'attendent à s'exécuter. A partir des services disponibles au niveau du firmware (interruptions BIOS / UEFI), des structures de données (variables, conventions de pile, etc.) et même des conventions de formatage de disque. Ne peut pas être modifié au moment de l'exécution - du moins pas comme je le comprends.

Vos options?

Pré-installation, vous pouvez contrôler l'installation en utilisant BIOS / MBR ou UEFI dans le démarrage du BIOS hérité avec MBR ou UEFI avec GPT.

Post-installation - il peut y avoir des possibilités intéressantes de changer le format du disque (MBR en GPT et GPT en MBR) hors ligne, puis de démarrer sur une console de récupération (en mode UEFI ou BIOS approprié) et de travailler avec bcdboot et bcdedit pour obtenir Windows gestionnaire de démarrage mis en ligne droite.

Mise à jour 2011.09.09

@MikeyB

Énumérer les options telles que je les comprends, sans faire de suggestions formelles.

Néanmoins, après avoir fait un peu plus de recherche sur UEFI (rappelez-vous que je n'ai pas beaucoup d'expérience active avec lui), j'ai découvert quelques bribes intéressantes sur le gestionnaire de démarrage UEFI et la prise en charge du démarrage sur CD / DVD.

La spécification de démarrage El Torito, de '95, existe toujours aujourd'hui et est utilisée avec les CD / DVD de démarrage. Un seul CD / DVD peut devoir démarrer sur plusieurs architectures - et bien que ISO 9660 soit plutôt indépendant de la plate-forme, le code exécutable ne l'est pas. En tant que telle, la spécification de démarrage El Torito permet plusieurs entrées / images de démarrage.

Ces entrées / images contiennent un ID de plate - forme , destiné à indiquer si une entrée est destinée à un PC, à un PowerPC et à d'autres architectures afin que le BIOS (ou le micrologiciel) de l'architecture puisse choisir la bonne entrée de démarrage.

Les PC x86 standard avec un BIOS ont un ID de plate-forme El Torito de 0x00. L' ID de plate-forme compatible UEFI est 0xEF - plutôt créatif.

Le BIOS PC x86 standard ignore toutes les autres entrées sauf 0x00. Les micrologiciels UEFI qui prennent en charge le BIOS hérité (connu sous le nom de module de support de compatibilité (CSM)) - tout en étant capables de démarrer 0x00, préféreront une entrée de démarrage native 0xEF du catalogue.

Les supports DVD Windows 2008, 2008 R2 et 7 contiennent un catalogue El Torito à plusieurs images avec à la fois 0x00 et 0xEF. Le 0x00 est la valeur par défaut, mais un UEFI le masquera s'il existe un 0xEF et choisit l'entrée 0xEF - car elle est native.

Ce qui est possible - est de créer un média qui ne contient que l'ID de plate-forme préféré dans le catalogue de démarrage El Torito. Au lieu d'un catalogue à entrées multiples, créez un catalogue à entrée unique avec un ID de plate-forme 0x00. Cela devrait forcer le micrologiciel UEFI, s'il prend en charge le démarrage du BIOS hérité, à choisir l'ID de plate-forme 0x00 et à démarrer l'entrée de démarrage du BIOS hérité sur le support Windows.

Comment faire?

L'utilisation d' Oscdimg est possible. Vous trouverez ci-dessous plusieurs exemples de personnes qui créent des médias uniquement UEFI pour contourner les limites de la mise en œuvre UEFI d'Apple. Notez que c'est l'opposé de ce que nous essayons de faire - nous voulons créer un BIOS uniquement, en laissant de côté l'entrée de démarrage UEFI du catalogue.

UEFI uniquement (ci-contre) 1

UEFI uniquement (ci-contre) 2

Le processus de création d'un support BIOS uniquement est similaire avec des modifications apportées aux arguments -bet -paux éléments suivants

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

Le document UEFI Support and Requirements for Windows Operating Systems est une excellente ressource qui apporte un excellent éclairage sur la folie choisie par Microsoft sur le support d'installation de Windows .

Tisserand
la source
1
"Pré-installation, vous pouvez contrôler l'installation en utilisant BIOS / MBR ou UEFI dans le démarrage du BIOS hérité avec MBR ou UEFI avec GPT." OK, alors comment dire à Windows: "Installer sur une table de partition de style MSDOS."?
MikeyB
@MikeyB Démarrez le support d'installation de Windows dans un système informatique avec un BIOS traditionnel. Ou - démarrez le support d'installation Windows dans un système informatique avec UEFI défini en mode de démarrage BIOS hérité. Notez que votre UEFI doit prendre en charge un mode de démarrage BIOS hérité.
Weaver
Vous proposez que j'installe Windows sur un ordinateur complètement différent puis que je déplace les disques? Pas du tout une bonne idée. En outre, lorsque vous définissez un ordinateur UEFI en «mode BIOS hérité», il active simplement les crochets BIOS hérités pour démarrer les disques MBR hérités. Il ne désactive pas UEFI , donc Windows dit toujours "Est-ce un système UEFI? Yup."
MikeyB
@MikeyB Ajout de mises à jour de la réponse d'origine.
Weaver
1
J'ai vu quelque chose de similaire avec le serveur 2008, dans le processus d'apprentissage des limites de taille de disque du BIOS et du MBR. J'ai construit un serveur avec 2008 R2 et activé le mode BIOS hérité en raison du fait qu'il ne s'installerait pas avec un support USB (un bug MS) mais je l'ai trouvé ensuite utilisé MBR plutôt que GPT parce que le BIOS n'est pas capable de charger GPT (sauf si vous avez un chargeur de démarrage quelconque). En bref, le passage au mode hérité s'installe définitivement en mode hérité, la preuve sera dans le gestionnaire de disques où vous verrez des disques MBR et non GPT.
Alex Berry
3

Une méthode simple serait d'effectuer simplement une installation de base de Windows sur une machine qui ne prend pas en charge EFI, de la capturer avec votre logiciel d'image et de la restaurer sur le matériel réel.

Un bon choix pourrait être de créer votre installation de base dans une machine virtuelle. Dans les versions antérieures (ver <6) de Windows ne s'adaptait pas bien pour être déplacé d'un type de matériel à un autre. Avec les versions récentes de Windows, tant que le contrôleur de stockage est pris en charge sur l'image, Windows fera un très bon travail d'adaptation au nouveau matériel.

Le disque d'installation de Windows (ver> = 6) comprend généralement un fichier wim qui n'est en fait qu'une image du système d'exploitation.

Zoredache
la source
C'est exactement ce que j'allais suggérer. Exécutez la configuration de Windows sur un autre système (BIOS / MBR), puis déplacez le disque ou son image vers le serveur de destination. S'il démarre, alors PnP s'ensuivra et il fonctionnera avec plaisir sur le matériel différent.
Massimo