Existe-t-il un moyen de démarrer Windows 7/8 en utilisant le BIOS sur GPT?

21

Je voudrais savoir s'il existe une méthode pour obtenir Windows 7 ou Windows 8 Developer Preview à installer sur un disque GPT sur ma configuration BIOS IBM PC traditionnelle. Windows 7, bien sûr, rejette ma partition GPT, car je n'ai pas UEFI. Eh bien, Debian et Grub 2 semblent bien fonctionner ... Je veux donc savoir s'il existe un moyen de forcer Windows à fonctionner également.

Je préfère éviter sérieusement MBR / TPG hybride, car il est très fragile et se sent hackish, mais il ne le travail. Je suppose que le principal bloqueur est que Microsoft n'ajoute tout simplement pas de support dans son chargeur de démarrage BIOS pour GPT, ce qui est compréhensible, je suppose. Y a-t-il un recours?

À mon avis, il existe quelques solutions potentielles:

  1. Avoir un chargeur de démarrage alternatif pour le noyau Windows. PAS un chargeur de chaîne. Pour autant que je sache, il n'en existe pas. C'est une honte.
  2. Stocker le moins possible sur un autre disque basé sur MBR. N'aimant pas cette idée, mais c'est faisable. Je ne suis pas sûr que j'appellerais cela une solution au problème autant qu'une solution de contournement.
  3. Émuler suffisamment EFI pour que le chargeur de démarrage EFI fonctionne ... Je me souviens avoir entendu un peu parler d'un émulateur UEFI sur BIOS, mais je ne trouve rien à ce sujet maintenant. Je suppose que c'est faisable, mais il n'y a probablement pas encore beaucoup de demande et ce n'est probablement pas amusant du tout à configurer. GRUB 2 semble être capable de démarrer un hackintosh avec l'émulation EFI nécessaire, mais je suppose qu'il n'y a aucun intérêt / UEFI 2 est plus difficile à approcher (et je suppose que les autres émulateurs EFI utilisés pour le hackintosh sont sur le même bateau.)
  4. Coreboot avec TainoCore. Coreboot ne fonctionne pas sur ma carte mère (pour autant que je sache) et je suis sûr que le dernier effort pour le faire pendant GSoC a été un échec. J'adorerais absolument cette solution, si elle fonctionnait, cependant.

Suis-je en train de manquer quelque chose?

John Chadwick
la source
1
Pas assez. Je sais qu'il peut fonctionner sur MBR / GPT hybride et je n'ai pas peur de l'utiliser. De plus, je ne suis pas satisfait de cette solution et je veux savoir s'il existe une autre meilleure façon. Je travaille toujours sur ce problème, cependant, et je pourrais trouver ma propre solution.
John Chadwick
1
Je suis presque sûr que cette question est un double de celle-ci, étant donné la disparité de 2 ans. En plus de cela, il n'y a vraiment pas de réponse à la question, ou du moins pas directe, alors que cette question a une réponse directe.
John Chadwick
Avez-vous vérifié ma réponse? C'est nouveau et personne d'autre ne l'a fait de cette façon. Voudrais quelques tests dessus. Garanti non hacky.
Milind R
Cependant, cela ne fonctionnera vraiment pas sur un ordinateur portable. Mais encore une fois, je trouve terriblement étrange de signaler cette question en double après qu'elle ait été suffisamment répondue près de 2 ans avant même que cette question ne soit posée. Je ne trouve pas que l'exécution d'une implémentation UEFI soit un hack; juste bizarre, mais il a l'avantage de ne pas nécessiter de lecteurs de disque supplémentaires.
John Chadwick
Il y a une implémentation de disque unique en cours, sera mise à jour quand elle sera testée ... Aussi, c'est un hack dans le sens où vous mentez aux fenêtres sur le système: en MBR hybride, mentant sur le type de partition, en DUET, mentir sur le firmware.
Milind R

Réponses:

8

Eh bien, les choses ont changé depuis que j'ai posé cette question pour la première fois. D'une part, mon PC est désormais basé sur UEFI, donc je n'ai plus ce problème. Eh bien, en quelque sorte. J'avais intérêt à tirer une configuration similaire sur mon ordinateur portable (partitions GPT, etc.). J'ai finalement réussi à obtenir une configuration Tianocore UEFI DUET fonctionnelle, et c'était à peu près aussi douloureusement simple que possible!

Cela suppose que vous voulez toutes les nouvelles configurations brillantes. Si vous souhaitez réellement convertir votre ancienne configuration, bonne chance . En fait, bonne chance dans les deux cas, car il s'agit d'une opération inégale dans n'importe quelle situation.

Un mot d'avertissement: si vous êtes un fan des temps de démarrage rapides, vous voudrez peut -être repenser cette décision. Non pas que UEFI DUET soit lent, mais cela ajoute une autre étape à votre processus de démarrage, donc si votre BIOS / POST n'est pas rapide, vous n'aimerez peut-être pas cela.

Sans plus tarder:

  1. Vous aurez besoin d'une configuration Linux. J'ai utilisé Fedora 16 sur une clé USB (avec UNetBootin) et je le recommande vivement car cela fonctionne pratiquement hors de la boîte. Vous avez quand même besoin d'une clé USB, alors ne prévoyez pas de continuer sans en avoir une.

  2. Prenez quelques builds UEFI DUET. Sans aucun doute, le meilleur endroit pour l'obtenir est ici . Les tarballs de build réels sont sous la branche master du premier référentiel, ici . Donnez-lui l'ancien tar -xf.

  3. Configurez vos partitions. Vous devez réserver 200 Mo quelque part sur le disque (de préférence le début et la première partition.) Vous pouvez le formater avec FAT32, mais nous le reformaterons plus tard. Assurez-vous simplement qu'il apparaît comme une partition. Vous devez utiliser GPT ici.

  4. Installez maintenant tout logiciel supplémentaire dont vous pourriez avoir besoin. Sur la distribution Fedora Live, j'ai trouvé que j'avais besoin yum install gdisk. Je crois que c'est tout.

  5. Maintenant, allez dans le répertoire des builds extrait. chmod +x ./duet-installet ./duet-install -64 -F -m /dev/sda1(où se /dev/sda1trouve la partition système EFI souhaitée.)

  6. Croisez les doigts et redémarrez. Avec un peu de chance, vous verrez le logo TianoCore dans quelques instants. Si oui, vous êtes probablement bon! Vous devrez configurer vos fichiers d'installation du système d'exploitation sur un lecteur USB - Tianocore ne prend pas en charge les lecteurs de CD-ROM / DVD-ROM prêts à l'emploi (et je ne connais aucun pilote pour cela.)

Vous pouvez également souhaiter utiliser certains binaires shell UEFI. J'en ai trouvé ici . Je n'ai pas encore testé avec Tianocore.

Quoi qu'il en soit, merci à tous ceux qui ont essayé d'aider.

John Chadwick
la source
Cela fonctionne avec les installations Windows?
Moab
Je l'utilisais avec succès avec Windows 8 en 2012. Je n'en ai plus besoin car tout ce qui a été fait ces dernières années utilise UEFI, car Windows 8+ nécessite que les fabricants de matériel le prennent en charge. Cela fonctionnerait probablement encore aujourd'hui, mais je ne sais pas si je le recommanderais.
John Chadwick
2
La liaison UEFI DUET devrait maintenant être ici , mais elle n'est plus maintenue; le site dit d'utiliser Clover EFI à la place.
kirbyfan64sos
1
et vous pouvez installer Clover sur le disque dur pour supprimer le besoin d'un lecteur séparé
phuclv
6

J'ai réussi à démarrer Windows 8.1 sur un disque GPT sous une configuration du BIOS SANS un deuxième disque MBR.

L'histoire était la suivante: mon ordinateur portable était sous une configuration BIOS + GPT, avec seulement Arch Linux installé. Récemment, j'ai besoin d'accomplir certaines tâches dans Windows (ce que les machines virtuelles ne peuvent pas faire), j'ai donc du mal à installer Windows sous ma configuration BIOS + GPT existante. Selon la réponse de Milind , j'ai réussi à installer des fichiers de démarrage Windows (Boot, bootmgr, etc.) sur un (petit) lecteur USB MBR. Et chaque fois que j'allume mon ordinateur portable avec ce lecteur USB branché, je peux démarrer sous Windows 8.1, après quoi le lecteur peut être débranché en toute sécurité.

L'inconvénient est évident: je dois emporter une clé USB pour démarrer Windows. J'essayais donc toujours de m'en débarrasser.

Après avoir essayé avec différentes méthodes, j'ai finalement trouvé que le module memdisk du projet syslinux fonctionnait.

  • Vous devez abandonner le gestionnaire de démarrage Windows.
  • Vous n'avez pas besoin d'installer syslinux. Seul le module memdisk (un fichier de 26 ko) est nécessaire.
  • Vous pouvez utiliser de nombreux bootloaders pour charger ce module, dans mon cas, mon bootloader préféré GRUB (version 2).

Voici les grandes lignes de la procédure:

  • Partitionnez votre disque GPT pour répondre aux besoins de GRUB, c'est-à-dire une petite partition pour intégrer core.img. Lien détaillé
  • Installez GRUB sur cette petite partition.
  • Installez Windows avec imagex.Et utilisez bootsectet bcdbootpour installer les fichiers de démarrage de Windows sur un petit disque USB MBR..
  • Utilisez ddou dd_rescuepour cloner votre petit disque USB dans une image disque. (Votre disque USB a terminé son travail.) L'image est peut-être trop grande pour que memdisk se charge, vous pouvez la monter et réduire le système de fichiers / la partition.
  • Selon mon test, vous n'avez pas besoin d'un disque MBR physique pour installer les fichiers de démarrage Windows. Vous pouvez créer un fichier vhd et le traiter comme un disque physique.Après avoir installé les fichiers de démarrage de Windows dans le vhd, vous pouvez le convertir en image disque brute (style dd) à l'aide des outils fournis par VirtualBox ou QEUM.Lorsqu'il est créé avec type=fixed, le fichier vhd est juste une image de disque brute normale (style dd) avec un pied de page de 512 octets. Le pied de page sera reconnu comme "espace non partitionné" et sera ignoré, de sorte qu'un type=fixedfichier vhd peut être directement alimenté vers MEMDISK sans conversion et ainsi démarrer Windows.
  • Configurez GRUB pour utiliser memdisk pour charger cette image disque.
  • Windows démarre.

Un guide détaillé peut être trouvé dans ma réponse reboot.pro au fil de discussion de Milind.

Zhuoyun Wei
la source
1
@wzboy J'utilise Arch linux et j'ai réussi à obtenir le point d'installer Windows (avec wimlib-imagex). Maintenant, je ne sais pas comment continuer. Seriez-vous en mesure d'expliquer comment créer le fichier vhd à partir d'une distribution Linux?
Mihai Bişog
@ MihaiBişog Vous avez besoin d'un Windows PE pour créer ce VHD. Il existe de nombreuses façons de démarrer dans Windows PE. GRUB et syslinux peuvent démarrer dans des fichiers iso, par exemple.
Zhuoyun Wei
N'est-ce pas casser les mises à jour de Windows? Je veux dire, si Microsoft publiera une mise à jour qui devrait modifier ces fichiers boot / bootmgr que vous mettez dans l'image du disque virtuel - ils ne seront pas mis à jour et vous ne le remarquerez même jamais. Je suppose également que cela peut interrompre certaines opérations de réparation de fenêtres. Y a-t-il d'autres inconvénients?
Powerman
En fait, BCD / Bootmgr ne sera jamais trouvé par Windows, car il réside dans une image de disquette / disque. Pas question donc de la mettre à jour automatiquement. La réparation automatique ne fonctionnera pas. Tout ce qui concerne les outils Microsoft liés à votre démarrage ne fonctionnera probablement pas.
Milind R
1
Oui, tout ce qui concerne bootmgr ne fonctionnera pas, car ils sont «partis» après avoir aidé votre Windows à démarrer. En fait, lorsque vous exécutez "bcdedit" dans cmd.exe, il vous indique qu'il ne peut pas trouver les fichiers de démarrage. :-)
Zhuoyun Wei
5

Si vous avez même un petit disque de rechange, vous pouvez démarrer Windows (32 ou 64 bits) à partir de GPT sur le BIOS. Une disquette fera l'affaire.

Démarrez dans le disque d'installation / réparation de Windows.

Créez le lecteur système sur le petit disque / disquette et utilisez bcdbootpour placer vos fichiers de démarrage sur le lecteur nouvellement créé sur le petit disque. Ajoutez un secteur de démarrage avec bootsect. Changez {bootmgr} devicepour boot. Démarrez à partir d'un petit disque.

Les étapes sont détaillées ici .

Milind R
la source
2
J'ai essayé ça et ça a marché. Maintenant, j'ai un Windows 8.1 fonctionnel sur un disque GPT sous une configuration du BIOS. Tout ce que j'ai à faire est d'insérer ma clé USB pour le démarrer. Après le processus de démarrage, la clé USB peut être retirée. Tout comme au bon vieux temps, je veux dire disquette MS-DOS ...
Zhuoyun Wei
Lol. Je travaille sur une solution qui ne nécessite pas d'autre disque. Pouvez-vous me dire à quel point c'est lent / rapide?
Milind R
1
Je pense que mettre bootmgr sur un autre disque ne rallonge pas le démarrage de Windows, du moins je ne le ressens pas.
Zhuoyun Wei
2
OHHHH OUI. Toutes mes excuses pour avoir été trop excité. J'ai passé tout un après-midi et j'ai finalement réussi à démarrer Windows 8.1 sur un disque GPT sous un ensemble BIOS SANS un deuxième (petit) disque MBR - en utilisant le module memdisk syslinux qui est capable de charger l'image du disque dur.
Zhuoyun Wei
1
Voici mon article: reboot.pro/topic/…
Zhuoyun Wei
3

Un grand merci à wzyboy.

J'ai rencontré ce problème lorsque j'ai essayé d'installer Windows 2012 sur Dell PowerEdge 2950 avec 6 To RAID. Il n'a pas UEFI.

J'ai effectué quelques expériences. Tout d'abord, j'ai créé un disque dur virtuel de 32 Mo, comme l'a dit wzyboy, et j'ai simplement copié tous les éléments de la partition réservée de Microsoft. Windows a démarré normalement. Mais avec cette solution, le service Hyper-V n'a pas pu démarrer.

Comme le dit le wiki memdisk, il décide automatiquement en fonction de la taille de l'image, du type de support qu'il doit émuler. J'ai donc créé une disquette 720K virtuelle dans l'environnement WMware et copié bootmgr, BCD et bootstat.dat (juste au cas où, supprimé le sous-menu memtest du magasin BCD). Taille de la disquette que j'ai choisie aussi petite que possible, donc elle peut être plus grande ou même plus petite, je n'ai pas essayé.

Maintenant, il démarre à partir du lecteur GPT et Hyper-V fonctionne bien.

PS peut être un logiciel tiers. Quelqu'un at-il utilisé quelque chose comme ça? https://www.terabyteunlimited.com/bootit-bare-metal.htm

Nikolai Vakulenko
la source
Dernièrement, après avoir passé de nombreuses heures sur des trucs d'image, j'ai trouvé que le contrôleur RAID Perc5-i était capable de découper une baie plus petite que la capacité du disque dur physique. Donc, sur le matériel professionnel, le démarrage GPT n'est pas un problème.
Nikolai Vakulenko
Pouvez-vous s'il vous plaît raconter votre scénario et votre solution, dans ce fil de développement ? J'essaye de garder tous les détails ensemble.
Milind R
2

L'article A BIOS to UEFI Transformation décrit en détail comment utiliser TainoCore UEFI DUET.

Je comprends que vous avez eu des problèmes avec TainoCore, mais cet article fonctionnera peut-être pour vous.

L'article dit:

Certains ordinateurs ne fonctionnent pas avec UEFI DUET. Plus important encore, il n'est vraiment utile que sur les ordinateurs 64 bits x86-64, en particulier sous forme binaire. En fait, il ne démarre pas correctement, même sur certains ordinateurs x86-64. Lors de tests sur cinq systèmes x86-64, j'ai réussi à faire fonctionner une ou les deux versions sur seulement trois ordinateurs - un taux de réussite assez lamentable, vraiment. Ce n'est peut-être qu'une coïncidence, mais les deux ordinateurs qui fonctionnaient le mieux pour moi utilisaient des processeurs Intel, tandis que les deux qui fonctionnaient le moins bien et celui qui fonctionnait avec la version 2.1 mais pas la version 2.3 avaient tous des processeurs AMD.

Cela semble impliquer que l'on devrait essayer plusieurs versions de UEFI DUET avant d'abandonner.

Il serait utile de connaître le modèle de votre ordinateur.

harrymc
la source
Depuis la dernière mise à jour de cette question, j'ai réussi à faire démarrer UEFI DUET avec succès sur mon ordinateur. Malheureusement, l'absence d'un pilote de DVD-ROM m'a tué, car je n'avais pas de clés USB pour stocker Windows. Après l'échec aléatoire de mon disque dur principal, j'ai décidé de le laisser reposer et d'utiliser le partitionnement du BIOS sur un disque de rechange. Cependant, cet article est certainement utile, et je suis toujours intéressé à le faire fonctionner par moi-même. Je vais essayer de me souvenir de prendre un lecteur flash très bientôt.
John Chadwick,
@JohnChadwick vous pouvez utiliser Clover et l' installer sur le disque dur afin que vous n'ayez plus besoin d'un lecteur de démarrage séparé
phuclv
@phuclv: Avez-vous remarqué que le commentaire de John Chadwick date de 2011 et qu'il a donné sa propre réponse à ce post?
harrymc
@harrymc bien sûr, je sais. Cette information est destinée aux futurs lecteurs
phuclv
0

Les gens doivent garder à l'esprit que tous les micrologiciels du BIOS ne sont pas capables de gérer un lecteur GPT. J'ai un lecteur USB Seagate 4 To qui était GPT de l'usine et aucun de mes deux ordinateurs ne démarrerait avec le lecteur branché sur le port USB.

Les machines se figent à l'écran du menu F2 Enter Setup F10 Boot et la seule chose qui peut être faite à ce stade est de couper l'alimentation et de la rallumer.

Une fois que j'ai converti le lecteur en MBR, ce qui tue environ 2 To d'espace disque, les deux systèmes démarrent et démarrent dans le système d'exploitation normalement avec le lecteur connecté.

Je recherche un correctif BIOS pour corriger ce problème.

Scott Tovey
la source
Le BIOS ne sait rien du lecteur , qu'il soit GPT ou MBR, ni même étiquette BSD ou APM ... Il charge simplement le premier secteur (c'est-à-dire MBR) et l'exécute. À ce stade, le travail du BIOS peut être considéré comme «terminé». Si votre lecteur ne démarre pas, cela signifie simplement qu'il n'y a pas de secteur de démarrage valide sur le lecteur
phuclv