Come si deframmenta la MFT su un disco NTFS?


28

Qualche tempo fa, ho quasi riempito il mio disco rigido, molto più del massimo raccomandato dell'85% della capacità. Credo che NTFS abbia iniziato a archiviare i file nello spazio riservato alla Master File Table (MFT) e che la MFT abbia dovuto frammentarsi altrove man mano che cresceva.
Ho liberato spazio sul disco rigido, ma apparentemente MFT rimane frammentato e c'è un sacco di accesso al disco lento per operazioni anche molto semplici come l'apertura di una cartella o di un piccolo file. Questo sta uccidendo le prestazioni. Ricordo che la deframmentazione del disco standard di Windows non deframmenta la MFT perché la MFT è in uso quando il sistema operativo è in esecuzione. Sto eseguendo Vista Ultimate e la sua utilità di deframmentazione ha ben poco in termini di reportistica, meno delle versioni precedenti.

Sospetto che una soluzione potrebbe comportare l'avvio da un disco ottico con un sistema operativo di base ("Live CD") e l'esecuzione di un'utilità di deframmentazione da quello. Qualcuno può dirmi quale programma utilizzare o come deframmentare la mia MFT?

Grazie!


1
Non è gratuito, ma so che Disckeeper può gestirlo.
Zoredache,

Risposte:


35

Puoi usare lo strumento Sysinternals Contig :

contig.exe c:\$mft

2
Non ha funzionato per me. UltimateDefrag mostra che $ MFT da una partizione non di sistema è frammentato, ma contig dice "Tutti i file erano già stati deframmentati o impossibile deframmentarli". Comunque non so davvero perché ci sia $ MFT lì.
Yuri Ghensev,

15

Auslogics Disk Defrag Pro lo farà per te. Sebbene non sia un programma gratuito, puoi scaricare una versione di prova gratuita e, se decidi di acquistare, la licenza è disponibile per l'uso su un massimo di tre PC.

Ultradefrag è uno strumento di deframmentazione FOSS gratuito e potente per la piattaforma Windows. Può deframmentare qualsiasi file di sistema, inclusi hive del registro e file di paging. Include l'ottimizzazione MFT, che elabora solo la MFT.


3
+1 Ultradefrag mi ha fatto miracoli con una testata $ MFT che nemmeno Contig(che ha ottenuto così tanti voti qui) non poteva sconfiggere
BornToCode

@BornToCode Un modo per ottenere Ultradefrag per non spostare i file alla fine della partizione quando ottimizza la MFT?
RockPaperLizard,

1
@RockPaperLizard - Non lo so, ma l'alternativa a non spostare quei pochi file alla fine è spostare ogni altro file sul disco. Potresti provare a eseguire Windows Defrag o Diskeeper ordinario dopo Ultradefrag; tenere presente, tuttavia, che ordinare ogni file in base a quante volte viene utilizzato sarà un'operazione di lunga durata che andrà in pezzi la prossima volta che avvii un browser web.
KeithS

Nota che ora dovrai seguire il link per il download delle "vecchie versioni", poiché l'attuale versione 8 non è più FOSS.
trlkly

6

Il miglior strumento di gran lunga era il vecchio JKdefrag, ora Mydefrag. Deframmenterà la MFT. Inoltre, è gratuito.

Il sito originale è inattivo ma è possibile reperire per ottenere l'ultima versione qui: https://www.techspot.com/downloads/3720-jkdefrag-mydefrag.html

modificare

L'API di deframmentazione di Windows , utilizzata da MyDefrag, supporta la deframmentazione della MFT.

Di seguito sono riportati i tipi di file di sistema, stream e stream supportati da FSCTL_MOVE_FILE nel formato "nome file: streamname: $ typename".

$ MFT :: $ DATA $ MFT :: $ ATTRIBUTE_LIST $ MFT :: $ BITMAP

E la documentazione di script di MyDefrag :

Inode   Filename    Description
0   $MFT    Master File Table - An index of every file.
1   $MFTMirr    A backup copy of the first 4 records of the MFT.
2   $LogFile    Transactional logging file.
3   $Volume Serial number, creation time, dirty flag.
4   $AttrDef    Attribute definitions.
6   $Bitmap Contains volume's cluster map (in-use vs. free).
7   $Boot   Boot record of the volume.
8   $BadClus    Lists bad clusters on the volume.
9   $Quota  [Windows NT only] Quota information.
9   $Secure Security descriptors used by the volume.
10  $UpCase Table of uppercase characters used for collating.
11  $Extend A directory for: $ObjId, $Quota, $Reparse, $UsnJrnl.
$Extend\$ObjId  Unique Ids given to every file.
$Extend\$Quota  Quota information.
$Extend\$Reparse    Reparse point information.
$Extend\$UsnJrnl    USN Journal.
$Extend\$RmMetadata Transactional data.

Anche se non verrà eseguito su un Live CD, verrà eseguito su Bart PE o sul BootCD di Windows Ultimate .

Ma nessuno dei due è necessario per deframmentare la MFT.


Sì, questo. Credo che l'API di deframmentazione sia stata modificata con Vista, quindi non è nemmeno necessario riavviare.
Hydaral,

1
MyDefrag funziona solo su Windows; non è possibile eseguirlo da un LiveCD open source. Afferma di rimuovere i file dallo spazio MFT riservato, non di deframmentare la MFT se è già frammentata. Esiste un altro programma [da pubblicare come risposta diversa] che può deframmentare la MFT?
WBT,

Tui hai torto. Non è esplicito perché l'API Defrag supporta la deframmentazione della MFT. Inoltre, puoi controllare gli script MyDrag.
surfasb,

il sito ora è: mydefrag.net
Randall Flagg,

jkdefrag e mydefrag ora sono morti - mydefragGUI può ancora essere scaricato su mydefrag.net come mostra il commento sopra ma non ci sono stati aggiornamenti dal 2009
thomasrutter

5

Questi passaggi hanno funzionato per me:

  1. Esegui MiniXP nel BootCD di Hiren .
  2. Disabilita l' ibernazione , la memoria virtuale e il dump della memoria del kernel.
  3. Seguire le istruzioni descritte in questo collegamento (utilizzare fsutil).
  4. Esegui MyDefrag su MiniXP con l'opzione "Consolida spazio libero".
  5. Riavvia Windows e ora puoi ridurre la partizione.

-1

c'è un'opzione su ultimatedefrag che fornisce una deframmentazione del tempo di avvio, tuttavia non ha funzionato per me ma spero che funzioni per te

ultimatedefrag> strumenti> impostazioni ...> tempo di avvio

selezionare l'unità desiderata, ci vuole un po 'di tempo per analizzare l'unità. al termine dell'analisi è possibile regolare la posizione del file mft ma consiglio di lasciarlo così com'è (se lo si è modificato è presente un pulsante per ripristinarlo ai valori predefiniti). quindi attiva l'opzione Esegui al prossimo avvio e riavvia il PC

per me impila al 24% ogni volta e quindi avvia Windows senza deframmentare il file ma spero che funzioni per te. condividi anche la tua esperienza

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.