Comment réparer une partition EFI cassée?


24

J'ai un iMac sous OSX Lion. J'ai également installé le bootcamp et Windows 7. Pendant l'installation de Windows 7, je n'ai pas fait attention et j'ai supprimé et formaté la partition EFI.

Je n'ai pas vraiment réalisé la signification de cela car la machine a continué à fonctionner correctement, démarrant à la fois dans Windows et OSX.

J'ai remarqué que les mises à jour du firmware EFI n'ont pas pu être installées, mais je n'y ai pas prêté attention.

Mais maintenant, je veux installer Mountain Lion et il y a tout un tas de problèmes. Mountain Lion ne s'installera pas sans une partition EFI valide.

Voici ma table de partition.

   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                  Apple_HFS EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            799.0 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data BOOTCAMP                200.3 GB   disk0s4

Comme vous pouvez le voir, j'ai essayé de réparer la partition EFI avec la commande suivante:

newfs_hfs -v EFI / dev / disk0s1

Cela n'a pas semblé créer le bon type de partition, il a créé un Apple_HFS au lieu d'EFI.

Ma question est (sans formater le disque) comment créer une partition EFI?

Merci Rich


Voir aussi cette réponse pour changer le type de partition: apple.stackexchange.com/a/342139/14586
mivk

Réponses:


31

Vous pouvez recréer la partition système EFI (ESP) à l'aide de l' gptoutil de ligne de commande. Il devrait commencer au secteur 40 et être long de 409600 secteurs (exactement 200 Mo). Le type de l'entrée GPT doit être C12A7328-F81F-11D2-BA4B-00A0C93EC93B, et si vous avez un MBR hybride, le type doit y être EE. Le format est en fait un sous-ensemble de FAT, pas HFS +. Vous pouvez lire le GPT à l'aide de la commande sudo gpt -r show disk0dans une fenêtre de terminal, cela produit une sortie qui ressemble à ceci:

      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640  447801712      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  448211352    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  449480888   40753831         
  490234719         32         Sec GPT table
  490234751          1         Sec GPT header

Vous pouvez voir la partition EFI correcte à l'index 1. Si cette ligne ne correspond pas exactement, la manière la plus simple est de supprimer la partition à sa place et de la recréer.

Assurez-vous de savoir ce que vous faites avant de continuer à partir d'ici - vous risquez de perdre des données si vous vous trompez.

Vous ne pouvez pas modifier la table de partition en utilisant les gptpartitions montées sur le lecteur, vous devrez donc démarrer à partir d'un autre lecteur (par exemple une clé USB avec le programme d'installation OSX) ou exécuter le mac en mode disque cible et effectuer le partitionnement à partir de un autre mac. Vous devrez peut-être démonter tous les volumes montés automatiquement en utilisant diskutil unmountDisk disk0avant de continuer et entre les commandes .

Pour supprimer votre "mauvaise" partition EFI, exécutez cette commande:

sudo gpt remove -i 1 disk0

Assurez-vous que disk0 est vraiment le disque que vous voulez changer - les nombres peuvent changer entre les redémarrages. De plus, cela ne fonctionnera que si vous avez déjà une partition non ESP à la place de l'ESP - sinon, la suppression de la partition 1 pourrait être désastreuse! Dans ce cas, vous devrez déplacer les indices, car je pense que l'ESP doit avoir l'index 1. Par le son, cela ne sera pas nécessaire dans votre cas.

Une fois supprimée, ajoutez de nouveau la partition avec la disposition et le type corrects:

sudo gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0

Cela devrait trier la partition elle-même, mais comme vous avez créé une partition HFS à sa place, vous devez également corriger son format.

Le format de la partition système EFI est documenté par Apple ici . Comme vous pouvez le voir, ils vous recommandent de cloner un ESP existant plutôt que de recréer le système de fichiers avec newfs_msdos. Si vous avez un disque externe avec une table de partition GPT (le stick d'installation OSX devrait l'avoir), vous pouvez le cloner.

Assurez-vous d'avoir les numéros de disque et de partition dans le bon sens ou vous pouvez remplacer les données:

Si disk1 est votre lecteur externe et qu'il contient un ESP en tant que première partition (disk1s1) et disk0 est le lecteur dont ESP (disk0s1) vous souhaitez corriger, exécutez cette commande:

sudo dd if=/dev/disk1s1 of=/dev/disk0s1

Cela copiera chaque bloc unique de l'ESP de disk1 et écrasera le bloc correspondant dans l'ESP de disk0 avec.

Vous pouvez également jouer avec newfs_msdos.


Merci pour la réponse très détaillée. J'ai finalement réussi à résoudre mon problème en utilisant iParition. Cependant, la lecture de votre méthode semble être la méthode exacte que je cherchais si iParition n'avait pas existé. Merci encore, je marque cela comme la bonne réponse.
Rich

Cette méthode a très bien fonctionné pour moi sur 10.6 après que GParted ait cloné l'ESP pour bloquer 2048 sur un SSD. Démarrer un disque d'installation et en suivant ce qui précède, j'avais l'habitude ddde stocker l'ESP cloné dans un fichier avant de le supprimer, de le recréer et de le réécrire. Merci!
Nick Westgate

Fonctionne très bien sur mon mbp avec lecteur hybride ssd. EFI a été écrasé par une installation grub et cette méthode a parfaitement fonctionné pour la récupérer.
sean_m

Merci d'avoir partagé. Pour enregistrer la saisie, vous pouvez réellement spécifier EFI comme type de partition au lieu du GUID: sudo gpt add -b 40 -i 1 -s 409600 -t EFI disk0

1
Comment puis-je changer les index des partitions afin que l'ESP puisse être à l'index 1?
addison

3

Essaye ça:

  1. Sauvegardez le lecteur sur la machine à voyager dans le temps.
  2. Redémarrez, redémarrez sur le disque d'installation de Lion.
  3. Accédez à Utilitaire de disque.
  4. Effacer la partition.
  5. Effacez HD.
  6. Ré-effacez à nouveau la partition, cette fois en lui donnant un nom.
  7. Cliquez sur HD.
  8. Vérifiez HD pour confirmer que le message d'erreur EFI n'apparaît plus.
  9. Revenez à l'écran d'installation.
  10. Choisissez restaurer de sauvegarde.

2

Une solution plus simple a été trouvée ici: /unix//a/174522/182014

Une partition EFI peut être créée via GParted Live CD / USB :

  • Créez un lecteur de 200 Mo (tout mon espace libre au début):
    • Type: fat32
    • Étiquette: EFI
  • Formatez-le
  • Définissez les indicateurs de démarrage (option disponible uniquement après le formatage) sur "boot, esp"

entrez la description de l'image ici

Prêt!


0

Essayez iPartition 3 ou supérieure. Accédez au menu d'affichage et affichez les périphériques du système. Puisqu'il manque l'EFI 200 Mo, réduisez la première partition sur le disque de 200 Mo, espérons-le. Créez une nouvelle partition, puis dans la fenêtre de l'inspecteur de disque, il y a des onglets. Vous pouvez choisir différents types de système de fichiers. Choisissez simplement la partition système EFI.


0

Cela a résolu le problème pour moi.

1) Sauvegardez la partition Bootcamp à l'aide de Winclone

2) Sauvegardez le lecteur Mac OSX à l'aide de Carbon Copy Clone sur un lecteur externe

3) Installez Mountain Lion sur un lecteur flash ou un lecteur externe

4) Achetez une copie de iPartition, téléchargez-la sur un lecteur flash ou un lecteur externe

5) Redémarrez en maintenant la touche Option pour obtenir le menu de démarrage

6) Sélectionnez le lecteur flash ou externe à partir duquel démarrer

7) Extraire iPartition et exécuter. Sélectionnez Affichage et inspecteur dans le menu déroulant.

8) Sélectionnez Bootcamp Partition sous l'onglet Partition et cochez les deux cases de la liste (Active et Visible dans Windows) puis fermez la case.

9) Le bouton Go doit être allumé, sinon augmentez un peu la partition Bootcamp. Le mien est 2 To OSX, 500 Go Windows sur un disque de 2,5 To.

10) Une fois que le bouton Go est enfoncé, il devrait commencer à traiter; bien que vous deviez peut-être tuer tout processus qui l'empêche de s'exécuter (fait avec le moniteur d'activité)

11) Une fois terminé, arrêtez et retirez le périphérique de démarrage externe, puis rallumez le Mac. Il devrait être réparé et démarrer normalement - du moins le mien l'a fait.

J'utilise un iMac 27, Intel Core i3 à 3,2 GHz avec 16 Go de RAM et un disque dur de 2,5 To. La plupart des éléments répertoriés que j'avais déjà fait avant l'installation de Mountain Lion, à l'exception d'une sauvegarde actuelle du lecteur Bootcamp. Winclone a fonctionné même si Bootcamp n'a pas démarré et le processus de restauration a généré une erreur lors de l'écriture du MBR. J'ai simplement ignoré l'erreur et j'ai continué avec le reste du processus. Apparemment, Mountain Lion a joué avec le PMBR ou l'EFI et même rEFIt ne l'a pas résolu, mais quoi que l'iPartition ait fait; son maintenant fixé.

*AVERTISSEMENT**

Bien que ce processus ait bien fonctionné pour moi, il peut ne pas fonctionner pour vous! COMME AVEC TOUT PROCESSUS QUI MODIFIE LA TABLE DE PARTITON ET LES DONNÉES DE BOOT, VOUS AVEZ UNE CHANCE DE PERDRE DES DONNÉES. SAUVEGARDEZ VOTRE LECTEUR SI VOUS VOULEZ CONSERVER VOS DONNÉES.

Je recommande fortement Carbon Copy Clone pour sauvegarder la partition OSX car il peut créer un clone de démarrage que je n'ai jamais eu d'échec.

Je suis sûr que d'autres ont réussi à résoudre ce problème ailleurs et apprécient tous ceux qui ont publié ce qu'ils ont fait car cela m'a aidé à résoudre ce problème sur mon iMac.

Merci à tous et j'espère que cela aide quelqu'un d'autre. (Publié dans Apple Forum) https://discussions.apple.com/message/19220149#19220149

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.