2012-09-27 41 views
8

Mi rendo conto che la domanda che sto facendo non è semplice "O, è facile! Fai un semplice questo e quello e voilà!" Il fatto è che senza pensare una notte ho cancellato la partizione sbagliata. Ho provato alcuni strumenti di Windows e Linux (disco del dottore, Easeus, disco di test, ecc.) Ma nessuno di loro ha funzionato. E penso che sia a causa del modo in cui ho cancellato la partizione.Scrivere il recupero della propria partizione

Ho scritto i miei creatori del settore di avvio/strumenti di backup in C++ prima così come uno o due kernel in C e Assembler (anche se kernel abbastanza inutili ...) quindi penso di avere una conoscenza sufficiente al minimo PROVA per recuperarlo manualmente.

Il mio disco è stato istituito come segue:

Size: 1.82TB 
part0 100MB (redundant windows recovery partition) 
part1 ~1760MB (my data partition) 

Come ho rotto:

In Windows 7, ho cancellato la prima partizione. Ho quindi esteso il secondo a occupare il primo spazio libero, il che significava che avevo ancora 2 partizioni, che ora fungevano da una partizione dinamica. Ho riavviato il mio sistema operativo Ubuntu e ho capito che non potevo più leggerlo. Ho riavviato di nuovo in Windows, cancellato la prima partizione, poi ho pensato, aspetta ... non avrei dovuto farlo. Inutile dire che è morto ora.

Quello che vorrei sono alcuni consigli/buoni collegamenti su dove iniziare, cosa non fare e cosa non aspettarsi. Spero che se i diari saranno ancora intatti, riuscirò a recuperare l'unità.

Modifica:
Questa è un'unità NTFS. Dopo aver postato questa domanda, mi chiedevo: dato che conosco la posizione approssimativa di dove si trovava la mia partizione, c'è un modo per identificare facilmente le riviste? Forse posso ricostruire alcune delle altre informazioni sull'unità/partizione e scriverlo sul disco.

+2

Potrebbe aiutare gli altri a dire cosa c'era in FS. NTFS? EXT \ *? –

+3

Questo probabilmente appartiene al superutente, non vedo come sia collegato alla programmazione. Stai chiedendo aiuto per recuperare manualmente una partizione in questo caso particolare, giusto? –

+2

@Charles, credo (basato sui tag 'c',' C++ 'e' assembly') che l'OP vuole scrivere un'applicazione per recuperarlo. – SingerOfTheFall

risposta

1

Il primo passo, penso, è capire come esattamente quelle "partizioni dinamiche" come le chiamate funzionano in Windows 7. Dalla tua descrizione, sembra che tu abbia creato una sorta di volume logico da due partizioni fisiche . La mia ipotesi è che la seconda partizione ora contenga un qualche tipo di intestazione per quel volume, ed è per questo che gli strumenti di recupero non familiari con quel formato non funzionano.

Se si capisce cosa Windows 7 ha fatto esattamente quando si sono unite le due partizioni, si dovrebbe essere in grado di scrivere un'applicazione che estrae un'immagine del volume logico.

Oppure, è possibile verificare NTFS-3G, l'implementazione FUSE di NTFS a http://www.tuxera.com/community/ntfs-3g-download/. Studiando quel codice, scommetto che puoi trovare un modo per localizzare il filesystem NTFS sul tuo disco borked. Una volta ottenuto ciò, provare a estrarre tutto dall'inizio del file system fino alla fine del disco in un'immagine, ed eseguire su di esso un controllo del filesystem ntfs. Con un po 'di fortuna, avrai un filesystem moutable.

Se ti stai chiedendo come accedere al disco, basta aprire il dispositivo corrispondente in linux come se fosse un normale file. Potrebbe essere necessario allineare le letture a 512 byte, tuttavia (o qualunque sia la dimensione del settore del disco. 512 e un 4096 estensione minore sono valori comuni), altrimenti read() potrebbe restituire un errore.

Problemi correlati