Metadati NTFS dopo una formattazione rapida: un’analisi con WinHex

Test di formattazione rapida NTFS

I metadati NTFS dopo una formattazione rapida descrivono un file system appena inizializzato, mentre alcuni record e contenuti dei file del file system precedente potrebbero rimanere leggibili al di sotto di esso. Windows crea una nuova Master File Table e una nuova struttura di directory; non si limita semplicemente a nascondere tutti i vecchi nomi di file. Il recupero ha esito positivo quando una quantità sufficiente di metadati originali e dei dati da essi descritti sopravvive e rimane accessibile.

WinHex aiuta a distinguere queste condizioni mostrando i campi del settore di avvio, i record MFT e le mappature dei blocchi di dati. Questo articolo esamina un caso di formattazione rapida da NTFS a NTFS e un esempio separato di ricostruzione di frammenti MFT. I calcoli si applicano alle strutture registrate, piuttosto che a ogni volume Windows. Il comportamento di scarto degli SSD e le successive operazioni di scrittura possono produrre risultati molto diversi.

Indice dei contenuti

1. Quali modifiche apporta la formattazione rapida nel file system NTFS

Il Sistema di file NTFS organizza i file tramite file di metadati, indici delle directory e mappature dei cluster. Una formattazione rapida crea una nuova istanza di queste strutture.

Struttura

Ruolo dopo la formattazione rapida

Conseguenze per il recupero

Settore di avvio del volume e relativo backup

Descrivi il volume appena formattato

I puntatori MFT attuali potrebbero non riuscire più a individuare la vecchia tabella

$MFT e directory principale

Descrivi il nuovo file system e i suoi oggetti iniziali

I vecchi nomi dei file e le relazioni tra le directory scompaiono durante la normale navigazione

$MFT::$BITMAP

Tiene traccia dei record allocati nella nuova MFT

Non tiene conto dei record sopravvissuti al di fuori di quella tabella

$Bitmap

Tiene traccia dei cluster allocati nel nuovo volume

I cluster già occupati possono diventare disponibili per essere riutilizzati

$MFTMirr e altri metadati di sistema

Supportare il file system appena inizializzato

I loro scritti possono sovrascrivere metadati o contenuti di file precedenti

Posizioni precedenti dei dati dei file

Potrebbe conservare contenuti leggibili al di fuori degli intervalli sovrascritti o eliminati

La sopravvivenza va verificata, non data per scontata

Il Tabella file master è esso stesso un file. Il suo flusso $DATA, privo di nome, contiene record di file; la sua bitmap descrive l'allocazione dei record. Il file separato $Bitmap descrive l'allocazione dei cluster all'interno del volume. Confondere queste due bitmap porta a conclusioni errate su ciò che è stato salvato.

Anche la formattazione di una partizione esistente è diversa dall'eliminazione della relativa voce nella tabella delle partizioni. Una formattazione di routine del volume ricostruisce il file system all'interno del volume selezionato; l'eliminazione della partizione riguarda invece la struttura del disco al di fuori di esso.

2. Leggere il settore di avvio originale in WinHex

Per un confronto esadecimale "prima e dopo" della formattazione NTFS, conservare un'immagine del settore prima della formattazione e confrontarla con un'immagine acquisita successivamente. Su un supporto già formattato, utilizzare un'immagine e eventuali acquisizioni precedenti disponibili. Non ripetere la formattazione per riprodurre l'evento.

Il record di avvio del volume fornisce i parametri necessari per interpretare gli indirizzi dei cluster.

Leggere il settore di avvio originale in WinHex

Estratto esadecimale originale del settore di avvio tratto dal fascicolo di WinHex. I riquadri rossi indicano i campi relativi alla dimensione del settore, alla dimensione del cluster e alla posizione nella MFT.

Offset del settore di avvio

Byte registrati

Interpretazione

0x0B, 2 byte

00 02

512 byte per settore logico

0x0D, 1 byte

08

Otto settori per cluster

0x30, 8 byte

A8 59 79 0A 00 00 00 00

$MFT inizia a LCN 175.724.968

0x38, 8 byte

24 59 F9 09 00 00 00 00

$MFTMirr inizia a LCN 167.336.228

0x40, 1 byte

F6

Valore con segno −10: la dimensione del record è 2¹⁰ = 1.024 byte

I numeri interi multibyte utilizzano l'ordine dei byte little-endian. Il dimensione dell'unità di allocazione è quindi:

  1. 512 × 8 = 4.096 byte per cluster

LCN indica un numero di cluster relativo al volume. Di conseguenza:

  1. Settore relativo al volume MFT originale = 175.724.968 × 8
  2. = 1,405,799,744
  3. Offset in byte relativo al volume MFT originale = 175.724.968 × 4.096
  4. = 719,769,468,928

Quando si esamina un'immagine dell'intero disco, aggiungere l'offset in byte iniziale del volume. Quando si esamina un'immagine relativa solo al volume, non aggiungerlo nuovamente. Il contesto di indirizzamento visualizzato da WinHex deve corrispondere al calcolo.

Il settore di avvio identifica il primo extent dell'MFT. Non descrive ogni singolo frammento della tabella.

3. Decodificare i dati relativi ai non residenti contenuti nell’MFT originale

Nella posizione originale dell'MFT, verificare il record 0 e individuare il suo attributo senza nome $DATA, digitare 0x80. Un attributo non residente memorizza le informazioni di mappatura anziché l'intero contenuto all'interno del record.

Le note del caso indicano che questo attributo si trova all'offset del record 0x100. Questo fa sì che il suo byte di forma compaia a 0x108; il valore 01 indica "non residente". Questi offset assoluti appartengono a questo record. Altri record possono collocare l'attributo in un'altra posizione.

Quando si interpreta un altro record, utilizzare gli offset relativi all'inizio dell'attributo:

Offset relativo

Campo

+0x08

Modulo per residenti/non residenti

+0x10

Numero di cluster virtuale più basso, o VCN

+0x18

VCN più alto, compreso

+0x20

Offset rispetto all'array delle coppie di mappature

+0x28

Lunghezza assegnata

+0x30

Dimensione logica del file

+0x38

Lunghezza dei dati validi

Leggere i tre campi relativi alle dimensioni separatamente. La lunghezza allocata indica lo spazio di archiviazione riservato, la dimensione logica definisce la lunghezza del flusso e la lunghezza dei dati validi descrive i dati inizializzati. Non è necessario che siano uguali.

Decodifica dei dati relativi ai non residenti contenuti nell'MFT originale

Per un intervallo che copre i VCN da 0 a 98.431, il numero di cluster è 98.432, non 98.431. La struttura a due passaggi registrata fornisce:

Correre

Numero di cluster

Firmato LCN delta

Avvio di LCN

Slot di record logici da 1.024 byte ciascuno

1

75,096

+175,724,968

175,724,968

0–300,383

2

23,336

+83,118,309

258,843,277

300,384–393,727

Il secondo indirizzo è relativo alla corsa precedente inizio LCN:

  1. 175,724,968 + 83,118,309 = 258,843,277
  2. (75.096 + 23.336) × 4.096 = 403.177.472 byte
  3. 403.177.472 ÷ 1.024 = 393.728 slot per record

Si tratta di slot indirizzabili, non di un conteggio dei file attivi. Alcuni record potrebbero non essere utilizzati e un singolo file può richiedere più record.

Le intestazioni delle esecuzioni registrate 43 e 42 descrivere le larghezze dei campi. Per 43, la lunghezza occupa tre byte e il delta LCN quattro; per 42, la lunghezza occupa due byte e il delta quattro. Il delta LCN va interpretato come un valore con segno, poiché i frammenti successivi possono trovarsi in posizioni precedenti sul volume.

La lunghezza dell'estensione risultante è di 384,5 MiB. La visualizzazione arrotondata a “385 MB” non può di per sé stabilire una dimensione di allocazione diversa né dimostrare che siano stati riservati cluster aggiuntivi.

4. Confronta il nuovo MFT con il vecchio layout

Le note del caso riportano un MFT post-formattazione che inizia a LCN 786.432, con un’estensione di 180 cluster. Ipotizzando una dimensione del cluster pari a 4.096 byte, come riportato:

  1. Offset del byte iniziale del nuovo MFT = 786.432 × 4.096
  2. = 3,221,225,472
  3. Nuova dimensione dell'estensione = 180 × 4.096 = 737.280 byte

Il nuovo punto di inizio si trova a 3 GiB all'interno del volume. Tale indirizzo è un'osservazione relativa a questo caso specifico, non una posizione obbligatoria nel file system NTFS.

Confronta il nuovo MFT con il vecchio layout

Proprietà

Layout originale

Layout del formato del post registrato nelle note

Avvio di MFT LCN

175,724,968

786,432

Estensioni MFT registrate

Due

Uno

Copertura dell'estensione

98.432 cluster

180 cluster

Capacità alla dimensione del record registrata

393.728 slot

720 slot

Le note menzionano inoltre i record da 0 a 717. Si tratta di 718 record, ovvero 735.232 byte. Ciò è compatibile con un’allocazione sufficientemente ampia per 720 slot, ma non chiarisce se il numero 718 si riferisca alla lunghezza logica, alla lunghezza inizializzata o ai record esaminati. Tali campi richiedono i byte di attributo sottostanti.

Il cambiamento significativo è che Windows ora segue la nuova tabella. Le dimensioni ridotte della nuova MFT consentono non significa che la vecchia tabella è stata fisicamente troncata sul posto. Le sue precedenti posizioni devono essere ispezionate separatamente.

Per stabilire se l’MFT NTFS sia stato sovrascritto durante la formattazione, occorre confrontare gli estenti originali dell’MFT con tutte le nuove scritture di metadati e le successive allocazioni. Un puntatore modificato dimostra che il riferimento è stato alterato; un confronto a livello di byte conferma la sovrascrittura in una posizione specifica. Il solo spostamento non dimostra né la completa sopravvivenza né la completa perdita dei dati.

5. Ricostruire una tabella MFT frammentata a partire dai record sopravvissuti

La frammentazione dell'MFT si sviluppa man mano che la tabella cresce e lo spazio contiguo non è più disponibile. NTFS riserva una zona MFT per ridurre la frammentazione, ma ciò non garantisce un unico extent. La crescita può allocare frammenti prima o dopo l'extent corrente.

Un esempio di ricostruzione a sé stante, contenuto nel materiale del caso, illustra questa disposizione a tre righe. Non deve essere associato al caso precedente a due righe, come se entrambi descrivessero la stessa tabella.

Correre

Slot per record logici

Avvio di LCN

Differenza rispetto all'inizio dell'esecuzione precedente

Cluster

1

0–204,927

786,432

+786,432

51,232

2

204,928–248,587

9,274,281

+8,487,849

10,915

3

248,588–376,391

8,858,108

−416.173

31,951

Ricostruire una tabella MFT frammentata a partire dai record sopravvissuti

In ogni cluster da 4.096 byte trovano posto quattro slot da 1.024 byte. Questo spiega entrambi i limiti:

  1. 51.232 × 4 = 204.928 slot
  2. 204.928 + (10.915 × 4) = 248.588
  3. 9.274.281 − 416.173 = 8.858.108

Complessivamente, le esecuzioni coprono 94.098 cluster, pari a 385.425.408 byte. Il VCN finale è 94.097.

Individuazione e verifica dei dati dei candidati

Le note di ricostruzione descrivono la ricerca del record 204.928, lo scartamento di un candidato in quanto non valido e l'individuazione di un altro candidato ritenuto valido. Un numero corrispondente o il FILE La firma da sola non è sufficiente.

Su un'immagine di sola lettura:

  1. Ricerca di FILE firme, comprese quelle relative a posizioni al di fuori dell'attuale MFT. Una scansione limitata alla nuova tabella non rileverà i record distaccati.
  2. Verificare i limiti dei record, la lunghezza dei record, gli offset degli attributi e la lunghezza degli attributi.
  3. Verificare l'array della sequenza di aggiornamento prima di interpretare i byte dei record protetti. Nei record registrati da 1.024 byte, i controlli coprono le estremità dei due intervalli da 512 byte.
  4. Ripristinare i termini del trailer salvati nella memoria del parser prima di analizzare gli attributi oltre tali confini; non modificare l'immagine delle prove.
  5. Confrontare i record adiacenti, la numerazione dei record (ove presente), i nomi, i riferimenti ai record principali e i numeri di sequenza. Scartare le relazioni non plausibili o obsolete.

Se un vecchio record 0 ancora presente fornisce una runlist valida, utilizzare quella mappatura. Se manca, la ricostruzione degli extent a partire dalle sequenze di record rimane un’ipotesi che richiede ulteriori verifiche. La presenza di record vuoti in una regione non dimostra di per sé che non esistano frammenti successivi.

Rimontare separatamente la tavola logica

Copiare gli estenti convalidati in un file di analisi separato, in ordine VCN. Non ordinarli in base all’LCN crescente: la terza esecuzione sopra indicata si trova prima della seconda sul disco, ma la segue dal punto di vista logico.

Per il numero di registrazione n, dimensione del record R, e la dimensione del cluster C:

  1. VCN = floor(n × R ÷ C)
  2. Offset all'interno del cluster = (n × R) mod C
  3. LCN = LCN iniziale della corsa + (VCN − VCN iniziale della corsa)

Per il record 204.929 nell'esempio a tre run, il VCN è 51.232 e il suo offset all'interno del cluster è di 1.024 byte. Il suo indirizzo relativo al volume è quindi:

  1. 9.274.281 × 4.096 + 1.024 = 37.987.456.000 byte

Questa mappatura recupera un indirizzo, non un file. Il record e i dati a cui fa riferimento devono comunque essere sottoposti a verifica.

6. Recuperare il contenuto dei file tramite i vecchi attributi

Una volta compreso un record di file sopravvissuto, il suo attributo $DATA determina il metodo di estrazione.

Dati dei residenti: leggere l'offset e la lunghezza del valore dell'attributo, quindi esportare tale valore dal record convalidato e ripristinato tramite correzione. I file di piccole dimensioni possono perdere il proprio contenuto quando i relativi record MFT vengono sovrascritti, poiché il contenuto risiede proprio lì.

Dati relativi ai non residenti ordinari: decodificare la runlist del file stesso, leggere ogni estensione dall'immagine originale del volume, assemblare i byte nell'ordine VCN e ritagliare l'output in base alla dimensione logica del file. La runlist della MFT individua i record dei file; non sostituisce la mappatura tra file e dati di ciascun utente.

Seguire i riferimenti $ATTRIBUTE_LIST quando gli attributi si estendono ad altri record. I flussi sparsi e compressi richiedono le rispettive regole di decodifica. I contenuti crittografati richiedono comunque il materiale di decrittografia applicabile. In questi casi, la semplice concatenazione non è sufficiente.

Il recupero delle directory richiede particolare attenzione. Un nome di file può sopravvivere anche se la directory padre non esiste più. Ricostruire i percorsi solo quando i riferimenti e i numeri di sequenza coincidono; in caso contrario, mantenere il file orfano piuttosto che inventare una relazione con una cartella.

Salvare i file estratti su un altro dispositivo fisico. Modificare il nuovo settore di avvio in modo che punti a un vecchio MFT non equivale a recuperare i file: le mappe di allocazione, gli indici, i record di sistema e altri metadati potrebbero appartenere a istanze diverse del file system.

7. Perché il recupero può funzionare — e perché può fallire

Il recupero basato sui metadati può avere esito positivo perché un vecchio record conserva l'identità di un file, la sua dimensione logica e le mappature dei dati, mentre i contenuti mappati rimangono leggibili. Uno strumento di recupero può seguire tali relazioni anche se Windows non le include più nel proprio spazio dei nomi attivo.

Se mancano dei record, il “carving” basato sulle firme può talvolta identificare direttamente il contenuto dei file. Di solito questa tecnica comporta la perdita dei nomi dei file originali e della struttura delle directory ed è meno affidabile nel caso di file frammentati. X-Ways documenta la ricerca dei record NTFS al di fuori dell’attuale MFT separatamente dalla ricerca delle intestazioni dei file, riflettendo così questi diversi metodi di recupero.

Il recupero diventa più difficile quando nuovi metadati si sovrappongono ai record originali, i file successivi riutilizzano i vecchi cluster o mancano le mappature di frammentazione. Un nome file valido non garantisce l’integrità del contenuto; una prima pagina o un’intestazione video riconoscibile non garantiscono che i frammenti successivi siano sopravvissuti.

Gli SSD introducono un’ulteriore condizione. La formattazione di Windows può inviare notifiche TRIM/cancellazione; Microsoft’s formato la documentazione comprende /NoTrim per eliminarli. Si tratta di un'opzione di formattazione, non di una soluzione in caso di perdita di dati. A seconda del dispositivo e del percorso di archiviazione, gli intervalli eliminati potrebbero smettere di restituire i byte originali anche senza una sovrascrittura convenzionale visibile in WinHex. La formattazione rapida non garantisce quindi in modo universale la possibilità di recupero dei dati.

8. Verificare i dati estratti prima di riutilizzare il disco

Conservare l'immagine originale e la mappa di estensione fino al completamento della convalida. Per un flusso di lavoro pratico di scansione ed esportazione, consultare recuperare i file da un disco rigido formattato.

Confronta i file recuperati con un inventario precedente alla formattazione, se disponibile. Confronta nomi, dimensioni, relazioni tra cartelle e hash con gli originali noti. In assenza di hash di riferimento, apri i documenti e controlla le loro pagine, verifica gli archivi, visualizza le immagini a piena risoluzione e riproduci i file video per intero.

Registrare i file danneggiati o mancanti separatamente dai file verificati. Una tabella MFT ricostruita senza errori di analisi sintattica garantisce metadati leggibili; i contenuti esportati utilizzabili garantiscono il recupero dei file. Per un recupero completo è necessario tenere conto del set di dati previsto.

Domande frequenti

La formattazione rapida sovrascrive l'intera MFT del file system NTFS?

Non necessariamente. Inizializza un nuovo file system e la scrittura dei suoi metadati può sovrascrivere alcuni vecchi record. Altre regioni MFT potrebbero rimanere intatte al di fuori della tabella corrente, a seconda della struttura e del comportamento di eliminazione.

I file possono sopravvivere anche se i relativi record MFT sono andati persi?

Sì, alcuni contenuti non residenti potrebbero rimanere disponibili per il carving. La mancanza di mappature rende più difficile la ricostruzione dei file frammentati, mentre i contenuti residenti scompaiono se i record che li contengono vengono sovrascritti.

Il mirror MFT è in grado di ripristinare tutti i record dei file?

Il file n. $MFTMirr protegge solo una porzione iniziale limitata dell'MFT, non un elenco completo di tutti i file dell'utente. La formattazione può anche inizializzare un mirror per il nuovo file system.

Un bit pari a zero nella bitmap del nuovo volume significa che i vecchi dati sono stati cancellati?

No. Indica la disponibilità di spazio per l'allocazione nel nuovo file system. Non stabilisce se l'indirizzo sottostante restituisca ancora il contenuto originale, zeri o dati sostitutivi.

È possibile che un vecchio record MFT abbia ancora il flag "in uso" attivato?

Sì. Un record separato può conservare i flag del file system precedente. Tali flag non lo rendono parte della tabella attualmente attiva; vanno interpretati tenendo conto della sua posizione e dei metadati circostanti.

Il ripristino del vecchio settore di avvio annullerà la formattazione?

Non di per sé. Non è in grado di ripristinare i metadati sovrascritti, eliminati o modificati successivamente. L'estrazione dei file sopravvissuti da un'immagine evita di dare per scontato che tutte le vecchie strutture rimangano sufficientemente coerenti da poter essere montate in sicurezza.

Jason è uno specialista nel recupero dati e nell’assistenza tecnica con oltre 15 anni di esperienza sul campo. Ha lavorato a lungo a stretto contatto con gli utenti finali, risolvendo casi complessi di perdita di dati e fornendo soluzioni pratiche di recupero in caso di cancellazione accidentale, unità formattate, file system danneggiati, partizioni perse, guasti di sistema e altre emergenze di recupero. La sua competenza comprende anche il backup e il ripristino, la riparazione dei file e il ripristino di emergenza, con particolare attenzione a fornire indicazioni sicure, affidabili e tecnicamente accurate.