1 votes

Comment récupérer une partition NTFS perdue ?

J'ai un Macbook pro 13" modèle A1278 (EMC 2554*) de mi-2012. Je fais tourner MacOS Sierra 10.12 et Windows 10 Build 10240 sur un disque de 750 Go.

Sans faire de recherche approfondie, j'ai stupidement utilisé l'Utilitaire de Disque pour ajouter une nouvelle partition de 139 Go sur le même disque qui contenait MacOS et Bootcamp, et j'ai choisi le système de fichiers ExFat car je voulais que MacOS et Windows puissent y lire et écrire.

Mais voilà, Boot Camp ne fonctionnait plus. Alors que MacOS démarre toujours, la partition Boot Camp ne s'affichait plus dans le menu d'options de démarrage, bien qu'elle soit visible dans Utilitaire de Disque et sur le bureau MacOS. Tenter de démarrer directement via bootcamp affichait le message suivant : Aucun périphérique de démarrage --- insérez un disque de démarrage et appuyez sur n'importe quelle touche

J'ai suivi ce tutoriel : http://nerdr.com/bootcamp-partition-lost-repairing-mac-partitions/

Je sais déjà que j'ai peut-être fait une erreur car j'utilisais ce tutoriel et une réponse à d'autres posts de forums (https://discussions.apple.com/message/19071422#19071422 et Je ne peux plus démarrer macOS après avoir redimensionné ma partition bootcamp). Le tutoriel de nerdr dans le lien ci-dessus recommande d'utiliser gptfdisk, mais j'utilisais l'application Terminal gdisk d'après la réponse du forum.

Après avoir suivi exactement la procédure de Nerdr en utilisant gdisk, toutefois, il avait les mêmes options de menu donc je ne savais pas s'il y avait une différence. Après avoir fini, Bootcamp a été complètement effacé. Voici ce que gdisk montre comme nouvelle table de partition :

Commande (? pour l'aide) : p
Disque /dev/disk0 : 1465149168 secteurs, 698.6 GiB
Taille du secteur (logique) : 512 octets
Identifiant de disque (GUID) : DC08A243-0BDF-4D84-870F-044744CBFD1A
La table de partition contient jusqu'à 128 entrées
La table de partition principale commence au secteur 2 et se termine au secteur 33
Le premier secteur utilisable est 34, le dernier secteur utilisable est 1465149134
Les partitions seront alignées sur des frontières de 8 secteurs
L'espace libre total est de 70891845 secteurs (33,8 GiB)

Numéro   Début (secteur)    Fin (secteur)  Taille      Code  Nom
   1                 40            409639   200,0 Mio   EF00  Partition Système EFI
   2             409640        1100019007   524,3 Gio   AF00  
   3         1100019008        1101288543   619,9 Mio   AB00  
   4         1101288544        1392987759   139,1 Gio   0700  
   5         1392987760        1394257295   619,9 Mio   AB00  Recovery HD

Ces sorties du terminal pourraient également aider :

diskutil list:

   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *750,2 Gio   disque0
   1:                        EFI EFI                     209,7 Mio   disque0s1
   2:                  Apple_HFS 750GB HD                563,0 Gio   disque0s2
   3:                 Apple_Boot Recovery HD             650,0 Mio   disque0s3
   4:       Microsoft Basic Data TD                      149,4 Gio   disque0s4
   5:                 Apple_Boot                         650,0 Mio   disque0s5

diskutil cs list:
Aucun groupe de volumes logiques CoreStorage trouvé

Je pense que les données sont probablement toujours là, mais elles ne figurent plus dans la table des partitions. Comme vous pouvez le voir, le disque Recovery HD se termine au secteur 1394257295 et le dernier secteur disponible est 1465149134. Il indique qu'il y a 33,8 Go d'espace libre, et la partition Windows bootcamp était d'environ 39 Go si je me souviens bien.

Je n'ai pas de sauvegarde ni Time Machine en cours d'exécution.

Je pensais que restaurer la partition que j'avais créée revenant à la partition initiale pourrait réparer. Je n'ai pas pu restaurer la partition ExFat en arrière vers le disque dur de 750 Go. J'obtiens le message "Le processus de restauration a échoué" et la liste de commandes suivante : Validation de la cible... Validation de la source... Repartitionnement du périphérique cible... Le volume source est en lecture-écriture et ne peut pas être démonté, donc il ne peut pas être copié en bloc. L'opération a échoué...

Je reçois le message ci-dessus encore et encore, même après l'avoir démonté, reformaté le système de fichiers en MacOS journalisé, et ainsi de suite. Enfin, je ne sais pas si bootcamp se lançait en utilisant MBR ou GPT, mais le disque contenait un dossier Windows si cela peut aider.

Comment récupérer ma partition NTFS perdue ?

Édit : Sortie pour David Anderson

enter image description here

Il n'y a pas de sortie pour "dd if=/dev/disk0 bs=512 skip=1394257296 count=50000000 | fgrep -o -a -b "BOOTMGR is compressed" :

0 votes

La réponse courte est « Oui », si aucune des partitions BootCamp n'a été écrasée. Vous avez en réalité plus d'une question. Vous devriez probablement poser plusieurs questions séparées, chacune après que la précédente ait été répondue. Par exemple, je suggérerais de demander "Comment récupérer une partition NTFS perdue." Peut-être demander ensuite : Comment ajouter un volume partagé pouvant être lu/écrit à la fois par macOS et Windows." De plus, vous devriez inclure le modèle/année de votre Mac.

0 votes

1. GPT fdisk == gdisk 2. Vous avez deux partitions hd de récupération (3 et 5). À mon avis, il n'est pas du tout clair ce que vous avez fait précédemment pour récupérer votre table de partitions. Je penche pour une réponse brève "Non" car des parties de votre ancien volume NTFS ont probablement été écrasées.

0 votes

@klanomath, comme je l'ai dit dans le post, j'ai suivi le tutoriel Nerdr pour essayer de récupérer la table de partition en utilisant gDisk.

1voto

David Anderson Points 30783

Si vous avez besoin d'une meilleure explication d'une des étapes ci-dessous, veuillez poster un commentaire.

La réponse donnée ci-dessous suppose une taille de secteur de 512 octets. Pour des tailles de secteur supérieures, vous devrez effectuer les ajustements nécessaires. Vous trouverez ci-dessous les étapes de base nécessaires pour retrouver et restaurer une partition Windows Boot Camp perdue. Aucune de ces étapes exiger l'utilisation de logiciels tiers.

  1. Le cas échéant, désactivez la protection de l'intégrité du système (SIP). Vous devez le faire pour avoir accès à /dev/disk0 . En d'autres termes, vous devez être en mesure de lire les données stockées sur le disque à partir duquel vous démarrez.

    La commande pour désactiver SIP est donnée ci-dessous. Vous devrez démarrer sur l'un des plusieurs Modes de récupération de MacOS ou un disque de démarrage externe du Mac avant d'exécuter la commande à partir de l'application Terminal.

    csrutil  disable

    En fait, le SIP n'a pas besoin d'être totalement désactivé. La version non documentée suivante du csrutil peut être utilisée pour au moins désactiver les protections du système de fichiers de SIP.

    csrutil  enable  --without  fs

    Note : Je n'ai testé la commande ci-dessus que sous High Sierra (MacOS 10.13.1).

    Après avoir désactivé partiellement ou complètement SIP, redémarrez sous MacOS (OS X).

    Note : rEFInd peut également être utilisé pour désactiver/activer sélectivement le SIP.

  2. Lancez l'application Terminal et entrez la commande donnée ci-dessous.

    sudo  chmod  a+w  /dev/disk0

    Ceci vous permet de lire (mais pas d'écrire) à partir de /dev/disk0 sans faire précéder vos commandes de sudo .

    Remarque : Cet accès en lecture sera supprimé automatiquement lorsque vous redémarrerez votre ordinateur.

  3. Ensuite, vous devez déterminer quels secteurs peuvent contenir votre partition NTFS manquante. Ceci peut être accompli en entrant la commande donnée ci-dessous.

    gpt  -r  show  /dev/disk0

    Voici le résultat de mon ordinateur. Comme mon ordinateur a Fedora (linux) et rEFInd installé, le résultat ci-dessous sera différent de ce qui serait typique. Cependant, le volume Windows NTFS réside toujours dans la partition 4, comme prévu pour un iMac 2011.

    Marlin:~ davidanderson$ gpt -r show /dev/disk0
    gpt show: /dev/disk0: Suspicious MBR at sector 0
          start       size  index  contents
              0          1         MBR
              1          1         Pri GPT header
              2         32         Pri GPT table
             34          6         
             40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
         409640  585937496      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
      586347136    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
      587616672  193097312      4  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
      780713984     409600      5  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
      781123584    1024000      6  GPT part - 0FC63DAF-8483-4772-8E79-3D69D8477DE4
      782147584  192528384      7  GPT part - E6D6D379-F507-44C2-A23C-238F2A3DF928
      974675968          8         
      974675976    1835008      8  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
      976510984     262144      9  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      976773128          7         
      976773135         32         Sec GPT table
      976773167          1         Sec GPT header

    Dans votre cas, vous pouvez substituer votre sortie de gdisk . Ce que vous devez rechercher, c'est la présence de grandes quantités d'espace libre. Votre sortie montre de l'espace libre à partir du secteur 1394257296 et en terminant un secteur 1465149134 . C'est 70891839 secteurs, ce qui représente environ 36 Go d'espace libre.

  4. Vous êtes maintenant prêt à commencer la recherche de la partition NTFS manquante. Pour faire un hex dump du premier secteur de ma partition Windows NTFS Boot Camp, j'ai entré la commande suivante.

    hexdump  -C  -v  -n  512  -s  587616672b  /dev/disk0

    Note : Dans la commande ci-dessus, 587616672b est 587616672 suivi de la lettre b . Il est PAS 5876166726 .

    Voici le résultat de la commande ci-dessus.

    Marlin:~ davidanderson$ hexdump -C -v -n 512 -s 587616672b /dev/disk0
    460ca34000  eb 52 90 4e 54 46 53 20  20 20 20 00 02 08 00 00  |.R.NTFS    .....|
    460ca34010  00 00 00 00 00 f8 00 00  3f 00 33 00 a0 51 06 23  |........?.3..Q.#|
    460ca34020  00 00 00 00 80 00 80 00  5f 6e 82 0b 00 00 00 00  |........_n......|
    460ca34030  00 00 0c 00 00 00 00 00  02 00 00 00 00 00 00 00  |................|
    460ca34040  f6 00 00 00 01 00 00 00  f8 1a 1d 9e f0 ed 53 24  |..............S$|
    460ca34050  00 00 00 00 fa 33 c0 8e  d0 bc 00 7c fb 68 c0 07  |.....3.....|.h..|
    460ca34060  1f 1e 68 66 00 cb 88 16  0e 00 66 81 3e 03 00 4e  |..hf......f.>..N|
    460ca34070  54 46 53 75 15 b4 41 bb  aa 55 cd 13 72 0c 81 fb  |TFSu..A..U..r...|
    460ca34080  55 aa 75 06 f7 c1 01 00  75 03 e9 dd 00 1e 83 ec  |U.u.....u.......|
    460ca34090  18 68 1a 00 b4 48 8a 16  0e 00 8b f4 16 1f cd 13  |.h...H..........|
    460ca340a0  9f 83 c4 18 9e 58 1f 72  e1 3b 06 0b 00 75 db a3  |.....X.r.;...u..|
    460ca340b0  0f 00 c1 2e 0f 00 04 1e  5a 33 db b9 00 20 2b c8  |........Z3... +.|
    460ca340c0  66 ff 06 11 00 03 16 0f  00 8e c2 ff 06 16 00 e8  |f...............|
    460ca340d0  4b 00 2b c8 77 ef b8 00  bb cd 1a 66 23 c0 75 2d  |K.+.w......f#.u-|
    460ca340e0  66 81 fb 54 43 50 41 75  24 81 f9 02 01 72 1e 16  |f..TCPAu$....r..|
    460ca340f0  68 07 bb 16 68 52 11 16  68 09 00 66 53 66 53 66  |h...hR..h..fSfSf|
    460ca34100  55 16 16 16 68 b8 01 66  61 0e 07 cd 1a 33 c0 bf  |U...h..fa....3..|
    460ca34110  0a 13 b9 f6 0c fc f3 aa  e9 fe 01 90 90 66 60 1e  |.............f`.|
    460ca34120  06 66 a1 11 00 66 03 06  1c 00 1e 66 68 00 00 00  |.f...f.....fh...|
    460ca34130  00 66 50 06 53 68 01 00  68 10 00 b4 42 8a 16 0e  |.fP.Sh..h...B...|
    460ca34140  00 16 1f 8b f4 cd 13 66  59 5b 5a 66 59 66 59 1f  |.......fY[ZfYfY.|
    460ca34150  0f 82 16 00 66 ff 06 11  00 03 16 0f 00 8e c2 ff  |....f...........|
    460ca34160  0e 16 00 75 bc 07 1f 66  61 c3 a1 f6 01 e8 09 00  |...u...fa.......|
    460ca34170  a1 fa 01 e8 03 00 f4 eb  fd 8b f0 ac 3c 00 74 09  |............<.t.|
    460ca34180  b4 0e bb 07 00 cd 10 eb  f2 c3 0d 0a 41 20 64 69  |............A di|
    460ca34190  73 6b 20 72 65 61 64 20  65 72 72 6f 72 20 6f 63  |sk read error oc|
    460ca341a0  63 75 72 72 65 64 00 0d  0a 42 4f 4f 54 4d 47 52  |curred...BOOTMGR|
    460ca341b0  20 69 73 20 63 6f 6d 70  72 65 73 73 65 64 00 0d  | is compressed..|
    460ca341c0  0a 50 72 65 73 73 20 43  74 72 6c 2b 41 6c 74 2b  |.Press Ctrl+Alt+|
    460ca341d0  44 65 6c 20 74 6f 20 72  65 73 74 61 72 74 0d 0a  |Del to restart..|
    460ca341e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
    460ca341f0  00 00 00 00 00 00 8a 01  a7 01 bf 01 00 00 55 aa  |..............U.|
    460ca34200

    Une description de la sortie ci-dessus peut être trouvée à l'adresse suivante Microsoft : Structure physique de NTFS ou Wikipédia : Internes NTFS .

    Dans ce secteur, il y a plusieurs cordes à son arc. Pour trouver votre partition NTFS, vous devrez rechercher l'une de ces chaînes. Je vais choisir au hasard la chaîne BOOTMGR is compressed . Comme je sais où se trouve ma partition NTFS, je peux entrer la commande ci-dessous pour rechercher cette chaîne.

    dd  if=/dev/disk0  bs=512  skip=587616672  count=50000000  |  fgrep  -o  -a  -b  "BOOTMGR is compressed"

    Le plus grand count La valeur maximale permise par mon ordinateur est d'environ 50000000 . Cette valeur peut être différente pour votre ordinateur. Ainsi, si je voulais rechercher toute ma partition NTFS, je devrais entrer cette commande 4 fois. Chaque fois avec un skip valeur augmentée par 50000000 . Bien sûr, on pourrait écrire un script shell avec une boucle pour répéter ces commandes, mais je pense que l'ajout d'un tel script ici dépasserait le cadre de cette réponse.

    Le résultat, après avoir entré la commande ci-dessus sur mon ordinateur, est donné ci-dessous.

    Marlin:~ davidanderson$ dd if=/dev/disk0 bs=512 skip=587616672 count=50000000 | fgrep -o -a -b "BOOTMGR is compressed"
    425:BOOTMGR is compressed
    338433776:BOOTMGR is compressed
    790493856:BOOTMGR is compressed
    1095625536:BOOTMGR is compressed
    1405559232:BOOTMGR is compressed
    3533975792:BOOTMGR is compressed
    3534741744:BOOTMGR is compressed
    4601366880:BOOTMGR is compressed
    6145609496:BOOTMGR is compressed
    6146292528:BOOTMGR is compressed
    6146951928:BOOTMGR is compressed
    6951738816:BOOTMGR is compressed
    8739643840:BOOTMGR is compressed
    8846594496:BOOTMGR is compressed
    9138315712:BOOTMGR is compressed
    9241170368:BOOTMGR is compressed
    21212440040:BOOTMGR is compressed
    50000000+0 records in
    50000000+0 records out
    25600000000 bytes transferred in 874.399247 secs (29277244 bytes/sec)

    Comme prévu, la chaîne a été trouvée dans le premier secteur recherché. Le reste des correspondances peut être ignoré.

    Si c'est votre cas, vous devez entrer la commande suivante, où je suppose un count valeur de 50000000 serait valable.

    dd  if=/dev/disk0  bs=512  skip=1394257296  count=50000000  |  fgrep  -o  -a  -b  "BOOTMGR is compressed"

    Remarque : vous pouvez saisir un "contrôle T" pendant que le bouton dd est en cours d'exécution. Cela aura pour effet que la dd pour afficher sa progression.

    Si cette commande ne renvoie pas de correspondance, vous pouvez supposer que votre partition NTFS n'est pas complètement intacte.

  5. Vérifiez qu'une correspondance réside dans un secteur de démarrage de partition valide. Toute valeur de concordance donnée peut être convertie en une valeur de départ du secteur d'amorçage de partition en divisant d'abord la valeur de concordance par l'indice bs valeur. Tout ce qui reste peut être jeté. Ensuite, ajoutez le skip au résultat. Ceci est calculé ci-dessous pour ma première valeur de correspondance de 425 .

    425 / 512 + 587616672 = 587616672

    Ensuite, entrez une commande pour vider en hexadécimal le secteur calculé. Pour mon ordinateur, la commande et la sortie sont indiquées à l'étape 4. Pour le -s vous devrez remplacer la valeur de votre secteur de départ. N'oubliez pas d'ajouter la lettre b à votre valeur.

    Au minimum, le secteur doit commencer par la séquence hexagonale suivante eb 52 90 4e 54 46 53 20 20 20 20 00 et se terminent par la séquence hexagonale 55 aa . D'autres valeurs, à vérifier, peuvent être trouvées dans les références données à l'étape 4.

  6. Déterminez les valeurs de début et de taille de la partition NTFS. La valeur de départ de la partition est la même que celle du secteur d'amorçage de la partition. Pour déterminer la taille, vous devrez acquérir les 8 valeurs d'octets hexadécimaux, stockées dans le secteur d'amorçage de partition, en commençant par la 41ème valeur. Pour mon secteur d'amorçage de partition présenté à l'étape 4, ces valeurs sont indiquées ci-dessous.

    5f 6e 82 0b 00 00 00 00

    Ensuite, vous devrez convertir le format little endian en big endian en inversant l'ordre des octets, comme indiqué ci-dessous.

    00 00 00 00 0b 82 6e 5f

    Convertissez ces valeurs en une seule valeur hexadécimale en supprimant les espaces et les zéros précédents, puis en ajoutant 0x le début du résultat. En procédant ainsi, pour les valeurs ci-dessus, on obtient la valeur unique indiquée ci-dessous.

    0xb826e5f

    Déterminez l'équivalent décimal en utilisant la commande ci-dessous.

    Marlin:~ davidanderson$ echo $((0xb826e5f))
    193097311

    Enfin, arrondissez cette valeur à l'entier le plus proche divisible par 8. Dans ce cas, 193097311 n'est pas divisible par 8. Par conséquent, cette valeur doit être arrondie à une valeur de 193097312 .

    Pour ceux qui ne le savent pas, une valeur est divisible par 8, si ses 3 derniers chiffres sont divisibles par 8. Dans ce cas, 311/8=38.875 y 312/8=39 donc 193097311 n'est pas divisible par 8, mais 193097312 est.

  7. Ajoutez la partition trouvée à la table de partition GUID (GPT). Si cette partition n'existait pas déjà dans mon ordinateur, je pourrais l'ajouter en entrant la commande indiquée ci-dessous. Dans votre cas, vous utiliseriez l'option d'indexation -i 6 à la place de -i 4 . Aussi, votre secteur de départ -b et la taille -s les valeurs des options seraient différentes.

    sudo  gpt  -f  add  -i  4  -b  587616672  -s  193097312  -t  windows  /dev/disk0

    Mon ordinateur fonctionne sous MacOS 10.13.1. Cette commande peut ne pas s'exécuter, si vous utilisez OS X ou une version antérieure de MacOS. Si c'est le cas, vous devrez d'abord démarrer à partir de Récupération de MacOS par Internet ou un disque de démarrage externe du Mac puis exécutez la commande alternative ci-dessous à partir de l'application Terminal. Là encore, votre -i , -b y -s Les valeurs des options seraient différentes de ce qui est montré ci-dessous.

    gpt  add  -i  4  -b  587616672  -s  193097312  -t  windows  /dev/disk0

    Une autre alternative serait d'utiliser gdisk pour ajouter la partition au GPT.

    Remarque : après avoir modifié le GPT, un redémarrage de l'ordinateur peut être nécessaire.

  8. Si nécessaire, activez SIP. La procédure à suivre est la même que celle de l'étape 1, sauf que la commande pour activer SIP est indiquée ci-dessous.

    csrutil  enable

0 votes

@Mutant_Bunny: Mes instructions vous demandent d'entrer la commande: dd if=/dev/disk0 bs=512 skip=1394257296 count=50000000 | fgrep -o -a -b "BOOTMGR is compressed"

0 votes

Bonjour David Anderson, j'ai commencé à essayer cette instruction. Je suis bloqué à l'étape 5. Je ne sais pas comment procéder car je ne comprends pas ce que signifient les chiffres ou comment faire les calculs que vous avez affichés là-bas. J'ai essayé de lire les pages de partition Windows NTFS et de Wikipédia que vous avez liées mais je ne comprends toujours pas. Merci de consulter mon message d'origine pour une modification avec mes sorties des étapes précédentes....

0 votes

Il n'y a pas de sortie pour "dd if=/dev/disk0 bs=512 skip=1394257296 count=50000000 | fgrep -o -a -b "BOOTMGR is compressed"

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X