Bon, j'ai eu le temps d'en faire un bon aperçu. Il est long, mais il est assez complet et devrait vous aider à voir ce qui se passe.
D'abord, une façon dont cela peut se faire :
- Votre BIOS perd ses réglages.
- Pas de problème, tout ce truc est stocké dans la partition EFI.
- …sauf pour le réglage SATA IDE vs AHCI, pour des raisons évidentes.
- Vous utilisiez SATA-AHCI ? Vous utilisez probablement SATA-IDE maintenant.
- Avez-vous essayé de démarrer avant de comprendre cela ?
- Si vous l'avez fait, cela a échoué. Avez-vous laissé Windows essayer de le réparer ?
- Si vous l'avez fait, BLAM, il se peut très bien qu'il ait détruit la base de données de configuration de démarrage.
- Assurez-vous que vous utilisez le bon réglage SATA que vous utilisiez la dernière fois.
Voici ce que vous avez probablement fait maintenant. Si l'un d'entre eux ne correspond pas, ÉVALUEZ ATTENTIVEMENT CE QUI EST EN FAIT VOTRE PROBLÈME, et LISEZ ceci pour avoir des idées, mais ne le SUIVEZ pas sans réfléchir d'abord.
- Vous avez HEUREUSEMENT ignoré toutes les conneries concernant la correction du Master Boot Record (MBR), de la table de partition, des drapeaux de partition et autres déchets qui NE S'APPLIQUENT PAS à un scénario de démarrage EFI. A TOUT. Au mieux, vous seriez en mesure de reconstruire complètement une nouvelle solution de démarrage NON-EFI, sans rapport. Mais cela n'est peut-être pas sans importance, car :
- Vous avez compris que Windows est certain de ne pas avoir de base de données de configuration de démarrage, mais malheureusement, il est soit complètement ignorant, soit TRÈS certain de l'endroit où il va - vous ne pouvez pas dire lequel.
- Vous êtes conscient que le magasin d'amorçage est normalement
(somewhere)\Boot\BCD
et que le fichier est CACHÉ ; visualisez-le en utilisant dir /a:hs
.
- Vous vous êtes un peu familiarisé avec
BCDedit.exe
et vous avez compris qu'il vous permettra de “maquiller” une base de données de configuration de démarrage dans un fichier de mise en scène en utilisant /CreateStore
(et veuillez ne pas le nommer “BCD”), que vous pouvez explicitement utiliser le fichier de mise en scène avec l'option /Store
, que vous pouvez ajouter une entrée de menu pour le gestionnaire de démarrage de Windows en utilisant /Create {bootmgr}
, et que vous DEVEZ pouvoir l'importer en utilisant /Import
…
- …mais quand vous essayez de le faire, vous ne pouvez pas. Vous regardez dans l'option
/SysStore
, qui semble correcte, mais vous ne pouvez pas l'utiliser dans un autre magasin parce qu'elle est “ambiguë”. Vous avez l'intuition qu'il sait où se trouve le magasin - ou devrait se trouver - mais vous ne pouvez pas le trouver.
- Vous avez essayé d'utiliser
MountVol
pour monter la partition EFI, mais elle n'apparaît même pas dans la liste, donc vous ne pouvez pas.
Si TOUT cela s'applique assez bien à vous, voici ce qui PEUT se passer :
- Windows peut dire que vous êtes configuré pour EFI (vous avez démarré le DVD via un boot UEFI, vous avez une partition EFI, etc.).
- Il sait donc OÙ REGARDER pour le fichier BCD - cependant, soit il a en quelque sorte un mauvais emplacement (pas ce problème, mais similaire), soit le BCD a été supprimé.
- Apparemment, parce qu'il sait où il DOIT être, cela casse
/SysStore
– et en fait, c'est probablement un comportement correct, parce que sinon vous l'auriez mis au mauvais endroit.
- D'après ce que je peux dire,
MountVol
cache délibérément la partition EFI (ou est d'une manière ou d'une autre incapable de la remarquer). Cela empêche de monter le système de fichiers, ce qui empêche de trouver le bon sous-répertoire, de vérifier que la base de données existe, etc.
Voici donc, pour finir, ce que vous devez faire à ce sujet. La bonne nouvelle est que c'est probablement beaucoup plus simple que vous ne l'espérez maintenant.
- Vous devez en effet monter la partition EFI.
En fait, j'ai l'impression que ce n'est pas strictement correct - je soupçonne fortement que la partition EFI est déjà montée par un sous-système interne, c'est pourquoi BCDedit
devient grincheux - il ne voit pas la base de données, mais il sait où elle doit aller. Ce qu'il n'a pas, cependant, c'est une lettre de lecteur. Alors… que faire ?
Eh bien… jusqu'où remontent vos racines DOS ? Vous souvenez-vous de la commande Assign
? Devinez quoi.
2. Commencez DiskPart
.
3. Si vous n'êtes pas familier avec DiskPart
, la façon dont cela fonctionne est essentiellement une hiérarchie d'ensembles ; vous devez sélectionner exactement un élément à un niveau pour passer au suivant. Donc, List Disk
, et ensuite Select Disk n
où n
est ce qui vous convient.
4. Utilisez List Partition
et List Volume
(notez le non pluriel) pour avoir un aperçu et identifier votre partition EFI.
Il s'agit généralement d'une partition FAT32 de 100 Mo marquée System
. N'oubliez pas que votre disque devrait maintenant utiliser une table de partitions GPT, vous pourriez donc voir un certain nombre de partitions. Certaines d'entre elles sont destinées à la récupération d'urgence - elles font beaucoup de bien pour les problèmes EFI, non ? Remarquez que la partition EFI, et quelques autres, n'ont pas de lettres de lecteur. Si vous le souhaitez, vous pouvez également consulter les attributs de la partition GPT, ce qui peut vous donner quelques moments “Aha” tangentiellement liés aussi.
5. Select Partition n
où n est la partition EFI. (Je suppose que vous pourriez sélectionner le volume à la place si vous en avez besoin.)
6. Assign
. C'est tout. Ne spécifiez pas de lettre de lecteur ; seulement Assign
.
7. List Volume
. Vous devriez maintenant voir une lettre de lecteur assignée à la partition EFI.
8. Exit
DiskPart.
Et maintenant… un gros avertissement. Vous allez probablement allez directement à S : (ou ce que vous avez obtenu de Assign
) et remarquez une partition Boot. “AHA !” Vous direz. “Il n'y a pas de fichier BCD
ici !” D'abord… souvenez-vous que ce fichier est caché. Deuxièmement… creusez un peu plus, et vous remarquerez que bien qu'il y ait S:\EFI\Boot
et aussi S:\EFI\Microsoft\Boot
Vous devez vérifier ces deux fichiers pour voir s'il y a des problèmes.S:\EFI\Boot
est pour la motherboard, et contient le LOADER de démarrage de Windows (et éventuellement d'autres choses pour d'autres systèmes d'exploitation). Il porte ce nom parce que la carte mère n'a aucune idée si vous allez avoir Windows ou non, et a besoin d'un chemin fixe qui a du sens.
9. Inspectez S:\EFI\Boot
. Pour Windows 7 Professionnel, 64 bits, vous devriez voir : bootx64.efi
Si vous avez installé un shell EFI (toujours une bonne idée), vous pourriez voir en plus shellx64.efi
.
NOTE : Les utilisateurs de Linux à double démarrage utilisant chainloader+1
ne verront pas d'entrée supplémentaire ici.
10. Inspectez S:\EFI\Microsoft\Boot
en utilisant les deux dir
et dir a:h
. Pour Windows 7 Professional, 64 bits, vous devriez voir un tas de modèles de langue (en_US
, etc.) et les fichiers suivants :
bootmgr.efi
bootmgfw.efi
memtest.efi
BCD
BCD.Backup.001
BCD.Backup.002
…sauf que vous ne voyez probablement pas BCD
, n'est-ce pas ? Mais ces fichiers de sauvegarde sont vraiment tentants.
11. Déterminez quel fichier de sauvegarde vous voulez utiliser. Quels que soient les changements récents qui lui manquent, ils sont loin d'être aussi importants que votre capacité à démarrer le système, alors choisissez celui qui est le plus intact. Vous en verrez probablement un grand et un assez petit. Le petit est déjà corrompu, et est un artefact du processus de réparation échoué - ne l'utilisez pas. Si les deux sont grands, utilisez le plus ancien. DANS TOUS LES CAS, faites des COPIES DE SUPPLÉMENT _ DES SUPPLÉMENTS_ ailleurs.
12. Copiez la sauvegarde que vous avez décidé d'utiliser sur BCD
.
13. Sortez du shell, fermez proprement, et redémarrez.
14. Dites à Windows de démarrer NORMALEMENT. A ce stade, il devrait démarrer.
Q : Que faire si vous n'avez pas de BCD de sauvegarde ?
R : Eh bien, cela ne devrait vraiment pas se produire. Cela signifie probablement que vous êtes dans le mauvais répertoire, que vous supportez EFI mais que vous ne l'utilisiez pas, ou que vous avez reconstruit votre partition EFI entière sans tout le matériel Windows requis (possible, surtout si vous utilisez plusieurs versions de Windows). Dans ce cas, vous devrez copier le matériel EFI du DVD, puis modifier ou reconstruire la base de données de configuration de démarrage en utilisant BCDedit
.
Q : Pouvez-vous me donner un exemple de scénario où BCDedit /SysStore
peut être utilisé pour faire n'importe quoi sur un système EFI ?
R : Jusqu'à présent, non.
Quoi qu'il en soit, j'espère que cela aidera à résoudre certains problèmes pour les gens, ou au moins les fera réfléchir. Pour terminer, il est très important de noter que vous pouvez monter et inspecter votre partition EFI sous Windows normalement en utilisant la technique DiskPart
: Assign
ci-dessus. Vous devriez le faire au moins une fois, pour obtenir une sauvegarde complète de votre partition EFI, _ AVANT_ que vous ne rencontriez ce genre de problème. Je recommande une sauvegarde dans un sous-répertoire de votre disque C:
, et une autre sur une clé USB.
Désolé, c'est trop long. Il faudra bien que je transforme cet article en un véritable article à un moment donné, mais il y a tellement de gens qui sont tellement frustrés que j'ai ressenti le besoin de documenter mon expérience aussi complètement et rapidement que possible.