Ripristino di un'intera partizione che è stata in qualche modo formattata (ho seriamente compromesso il filesystem di un HD esterno)

0

Ho un problema imbarazzante ma molto urgente. Un mio amico mi ha chiesto di configurare il nuovo HD esterno per Time Machine e l'archiviazione dei file e di trasferire su file dal loro vecchio HD. Ho iniziato a partizionare la nuova unità usando Utility Disco, ma l'opzione di partizione era disattivata. L'intero disco è stato formattato come exFat, quindi ho pensato di riformattarlo come HFS +. Ho iniziato a farlo con diskUtil: diskUtil erasedisk hfs+ External /dev/disk2 (Nota: questo è su un Macbook Pro che esegue El Capitan)

Tuttavia, ho sbagliato a scrivere. La nuova unità non era disk2, era disk3 - avevo iniziato a cancellare il vecchio disco, che contiene dati importanti. Ho realizzato il mio problema in un istante e ^C 'd il mio modo di uscire da lì, ma il danno è stato fatto. Ecco il punto:

  • L'output del terminale dice:

    Starting erase on disk2
    Unmounting disk
    diskutil:interrupted
    $ diskUtil list
    ...
    /dev/disk2 (external, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *1.0 TB     disk2
       1:                        EFI EFI                     209.7 MB   disk2s1
       2:                  Apple_HFS                         999.8 GB   disk2s2
    
  • Come puoi vedere, OSX riconosce l'unità come GPT e la partizione come HFS +. Tuttavia, l'unità non verrà visualizzata nel Finder.

  • Windows (10) riconosce che ho un HD esterno collegato, ma non viene visualizzato nulla sotto "Volumi" quando visualizzo il suo dispositivo in Gestione periferiche.
  • Linux (Arch) riconosce l'unità e la partizione, proprio come OSX. Ho provato a eseguire ntfsfix, ma senza alcun risultato. (Mi ha dato un avvertimento che diceva qualcosa sull'impossibilità di risolverlo e di provare a usare chkdsk).
  • Non sono sicuro al 100% quale sia stato lo stato di questa HD prima di averlo parzialmente formattato. È stato utilizzato per la prima volta e formattato su un laptop Windows economico quando Vista era il più recente sistema operativo Windows, quindi pensavo che fosse NTFS su uno schema MBR prima di averlo violato. (Forse mi sbaglio e qualcuno lo sa meglio, ma è quello che sono portato a credere)

Comunque, eccomi qui. Ho bisogno di recuperare circa 700 GB di dati, forse NTFS / MBR, su un'unità che pensa sia HFS + / GPT. Tutti i dati devono essere lì, più o meno almeno, ma ho bisogno di aiuto per accedervi. Se hai qualche intuizione o conoscenza che potrebbe aiutarmi, lo apprezzerei davvero.

(Infine, ho scaricato e installato alcuni software di recupero dati da Easeus. È in esecuzione una "scansione" sull'unità e ho il sospetto che risolverà il mio problema se ripasserò oltre $ 90 o giù di lì. L'ultima spiaggia, però, preferirei che il mal di testa non diventi costoso, e dal momento che raccolgono molti dati, so che ci deve essere un modo per risolvere questo problema con un po 'di grasso di gomito.)

    
posta cogeary 26.08.2016 - 04:21
fonte

2 risposte

1

Dovresti essere in grado di ripristinare almeno i limiti del vecchio volume NTFS:

Windows (come OS X) utilizza alcuni schemi di partizione predefiniti per partizionare e formattare un disco.

Un disco MBR / NTFS di solito ha un MBR nel primo blocco (blocco0). La prima partizione di solito inizia al limite di 1 MB (che è block2048) con un blocco speciale - il settore di avvio NTFS - e termina con un blocco speciale. Entrambi i blocchi iniziano con EB 52 90 4E 54 46 53 20 (hex) o ∂RENTFS (x20) . Gli ultimi 4096 blocchi (2 MiB) sono di solito spazi vuoti.

A seconda di quanto è stato scritto durante la creazione ("cancellazione") del nuovo volume HFS + principale (in genere circa 120 - 160 MB dopo il completamento del processo), il successo di un ripristino dei dati può variare.

Scollega qualsiasi unità esterna tranne quella interrotta!

Per ripristinare i vecchi limiti del volume NTFS, è necessario eliminare la tabella delle partizioni GUID e ripristinare uno schema di partizione MBR:

Per rimuovere il GUIDpt, innanzitutto apri Terminal.app e ottieni una panoramica (qui sotto presumo che l'identificativo del disco formattato in modo errato sia disk2):

diskutil list
sudo gpt -r show disk2

Il risultato è simile a quello qui sotto (la dimensione totale - qui blocchi 1953525760 e il volume principale - qui blocchi 1952853936 - possono differire leggermente):

         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 1952853936      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
1953263576     262151         
1953525727         32         Sec GPT table
1953525759          1         Sec GPT header

Rimuovi il GUIDpt:

diskutil umountDisk disk2
sudo gpt destroy disk2 
dd if=/dev/zero of=/dev/disk2 bs=512 count=1

Cerca nel disco la stringa ∂RENTFS (x20) negli ultimi settori del disco:

hexdump -s 930g /dev/rdisk2  | grep "eb 52 90 4e 54 46 53 20"

-s: salta i byte di offset dall'inizio dell'input. La taglia è KiB / MiB / GiB. Nel mio esempio il disco ha una dimensione di 931,51 GiB, quindi ho cercato solo l'ultimo Gib 1,51.

Il risultato è e8e0bffe00 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 con e8e0bffe00 come offset in esadecimale. Convertito con un servizio hex2dec questo significa un offset di 1000203091456 (dividendolo per 512, il risultato è uguale a blocco 1953521663).

Poiché questo blocco è l'ultimo del volume precedente, è possibile determinare la dimensione del volume precedente: 1953521663 (ultimo blocco) - 2048 (probabile blocco di avvio) + 1 (il conteggio inizia con 0). Il risultato deve essere divisibile per 8!

Puoi anche controllare i primi blocchi del disco con:

hexdump /dev/rdisk2  | grep "eb 52 90 4e 54 46 53 20"

Dovresti ottenere almeno una riga come questa: 800 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 . Questo è il settore di avvio NTFS al blocco 2048 - il limite di 1 MB - poiché questi blocchi non vengono solitamente cancellati da Utility Disco. Inserisci ctrl C per fermare hexdump.

Ora avendo il primo blocco e l'ultimo blocco del volume NTFS dovresti essere in grado di ripristinare la vecchia partizione MBR con fdisk:

fdisk -e /dev/disk2
Would you like to initialize the partition table? [y] y
fdisk:*1> auto dos
fdisk:*1> edit 1
     Starting       Ending
#: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
*1: 0C    0   1   1 - 1023 254  63 [        63 - 1953525697] Win95 FAT32L
Partition id ('0' to disable)  [0 - FF]: [C] (? for help) 07
Do you wish to edit in CHS mode? [n] n
Partition offset [0 - 1953525760]: [63] 2048 #probable start of the NTFS volume
Partition size [1 - 1953523712]: [1953523712] 1953519616 #use the probable size of YOUR NTFS volume found previously here.
fdisk:*1> write
Writing MBR at offset 0.
fdisk: 1> q

Ora potresti essere fortunato e il volume NTFS si apre o devi usare uno strumento per il recupero dei dati.

    
risposta data 26.08.2016 - 11:15
fonte
0

Potrebbe provare CGSecurity testdisk?) link

Solo perché ho molto tempo per ripristinare i dati su questo programma Questo progetto ha - App di testdisk per partizione di ripristino e dati sulle partizioni - app fotorec per recupero dati persi da flash drive

    
risposta data 26.08.2016 - 13:16
fonte

Leggi altre domande sui tag