By 24 Novembre 2010 0 Comments

$mft danneggiato e non leggibile

L’MFT è il centro di comando del file system NTFS.
(Se chkdsk non risolve, allora è dura).
Essa è analoga alla file allocation table nel file system FAT perché MFT mappa tutti i file e le directory sul disco, inclusi i metadata files dell’NTFS stesso. La MFT è divisa in unità discrete chiamate records. In uno o più record, NTFS registra i metadati che descrivono un file o le caratteristiche di una direcory (informazioni sulla sicurezza e altri attributi come sola lettura o nascosto) e la loro locazione sul disco. Sorprendentemente la MFT è un file che NTFS mappa usando dei record all’interno della MFT stessa. Questa struttura lascia la possibilità alla MFT di espandersi oppure di restringersi.
NTFS internamente identifica i file e le directory usando la loro posizione del record che descrive l’inizio dei loro metadati all’interno della MFT. Per esempio, i file metadata che compaiono nella Tabella 1 hanno un preassegnato indirizzo di partenza (base) per il record che li identifica nella MFT.
I record sono solitamente di dimensione 1Kb in un disco formattato con Windows NT 4.0, ma possono essere anche più grandi.
Il file $MFTMIRR è un file di complemento, in caso di disastri al file system, per la prevenzione di perdita di dati. Esso contiene la copia dei primi 16 record della MFT. NTFS lo registra a metà del disco circa mentre la MFT è all’inizio dello stesso. Se NTFS ha un problema nella lettura di MFT, esso si riferisce ad un duplicato. La locazione della MFT e della sua copia sono registrate nel boot record del disco, un file da 512 bytes posto all’inizio del disco stesso.
L’accesso ai dati della MFT gioca un ruolo base sul discorso performance su un disco NTFS, così NTFS cerca delle soluzioni per accedere alla MFT in modo più rapido possibile. Dato che la MFT è un file residente su volume NTFS esso può ingrandirsi e rimpicciolirsi e quindi frammentarsi. Questa frammentazione si verifica perché NTFS non può allocare in anticipo lo spazio che la MFT occuperà. Quando la MFT cresce e qualche altro file occupa lo spazio oltre la sua fine, la MTF deve guardare altrove sul disco per avere dello spazio libero.
L’accesso più veloce si realizza quando vengono fatte delle operazioni sul disco in maniera sequenziale ma, una MFT frammentata significa che NTFS ha bisogno di più letture per accedere, ad esempio, ad un record e questo può portare ad un abbassamento delle performance. Per evitare questo, NTFS crea una regione di cluster attorno alla fine della MFT dove file e directory non possono essere memorizzati. In questo modo si dà la possibilità alla MFT di crescere e/o ridursi senza troppe difficoltà. Quando lo spazio libero sul disco comincia a scarseggiare, NTFS rilascia un po’ dello spazio attorno alla fine della MFT per altri usi. Questo però porta la MFT ad correre un grosso rischio di frammentazione in un disco che peraltro è già al limite delle sue capacità. C’è da dire inoltre che NTFS non lascia deframmentare a tool appositi la MFT.
MFT Records
I record della MFT consistono di una piccola intestazione (header) che contiene informazioni di base sul record, seguite da uno o più attributi che descrivono le caratteristiche del file o della directory che corrispondono al record. La figura 1 mostra la struttura di base di un record della MFT. I dati presenti nell’header includono numeri di sequenza che NTFS usa per una verifica di integrità, un puntatore al primo attributo nel record, un puntatore al primo byte libero nel record, e il numero del record di base della MFT del file in esame, se il record esaminato non è il primo.
NTFS usa gli attributi per immagazzinare tutte le informazioni sui file e sulle directory. L’NTFS di NT 4.0 ha ben 14 tipi di attributi elencati nella tabella 2. Sul disco gli attributi sono divisi in due componenti logiche: un header e la parte dati. Nell’header è registrato il tipo di attributo, il nome ed eventuali flag ed esso identifica la locazione della parte dati dell’attributo. NTFS usa un sistema per ottimizzare le performance: esso registra la parte dati dell’attributo, all’interno dei record della MFT quando possibile, invece che allocare cluster da qualche parte sul disco. Quando un attributo ha la sua parte dati memorizzata all’interno della MFT, l’attributo si dice residente, altrimenti, è detto non residente. Un attributo residente è possibile solo quando la sua parte dati stà all’interno del record assieme all’header dell’attributo, l’header del record e altri header dell’attributo. Così, un limite superiore di 1Kb (la dimensione tipica di un record della MFT) esiste per la dimensione di informazioni in un disco formattato con NT 4.0. Se la parte dati di un attributo è residente, l’header dell’attributo punta alla posizione dei dati all’interno del record della MFT. Per definizione, il nome del file, informazioni standard, e gli attributi di sicurezza sono sempre residenti.
Se NTFS deve memorizzare la parte dati di un attributo al di fuori della MFT, l’header dell’attributo, che è contenuto in un record della MFT associato con gli attributi dei file o directory, contiene informazioni che localizzano le informazioni sul disco. Le informazioni di data-mapping sono dette run-information perché pezzi contigui di dati formano una serie fatta da un cluster di partenza e una lunghezza. Le run-information, come molte strutture dati NTFS, hanno un header che identifica quale cluster della parte dati dell’attributo è mappata nella run-information.
Questo approccio è necessario perché attributi con grandi quantitativi di dati possono avere delle run-information divise in più record della MFT (ogni parte della run-information copre differenti parti del file).
Uno di questi punti contiene: un VCN (virtual cluster number), che è un offset relativo a cluster all’interno della parte dati dell’attributo; a LCN (logical cluster number), è la locazione sul disco dove risiedono i dati; e il numero di clusters contigui a quella posizione sul disco.
I file compressi sono un caso speciale. NTFS supporta la compressione solo sul data stream del file, e applica l’algoritmo di compressione a blocchi di 16 cluster. NTFS registra le informazioni compresse sul disco e per farlo richiede dei cluster, ma lo spazio salvato in un blocco di 16 cluster è essenzialmente registrato nella porzione compressa. I VCN per questi cluster compressi hanno gli LCN inesistenti, che NTFS rappresenta con un LCN pari a 1 nelle run-informations dei clusters compressi.
Se un file ha troppi attributi che non possono essere quindi registrati all’interno di un singolo record della MFT, NTFS alloca record addizionali e registra la lista degli attributi nel record base. La lista degli attributi punta alla locazione degli attributi nei record addizionali e consiste di un valore per ogni attributo


About the Author:

shared on wplocker.com