Comment défragmentez-vous le MFT sur un disque NTFS?

28

Il y a quelque temps, j'ai presque rempli mon disque dur, bien plus que le maximum recommandé de 85% de la capacité. Je crois que NTFS a commencé à stocker des fichiers dans l'espace réservé à la Master File Table (MFT) et la MFT a dû se fragmenter ailleurs au fur et à mesure de sa croissance.
J'ai dégagé de l'espace sur le disque dur, mais le MFT reste apparemment fragmenté, et il y a beaucoup d'accès lent au disque pour des opérations même très simples comme l'ouverture d'un dossier ou d'un petit fichier. Cela tue les performances. Je me souviens que le défragmenteur de disque standard de Windows ne défragmente pas le MFT car le MFT est utilisé lorsque le système d'exploitation est en cours d'exécution. J'utilise Vista Ultimate et son utilitaire de défragmentation a très peu de rapports, moins que les anciennes versions.

Je soupçonne qu'une solution pourrait impliquer le démarrage à partir d'un disque optique avec un système d'exploitation de base ("Live CD") et l'exécution d'un utilitaire de défragmentation à partir de cela. Quelqu'un peut-il me dire quel programme utiliser ou comment défragmenter mon MFT?

Merci!

WBT
la source
1
Ce n'est pas gratuit, mais je sais que Disckeeper peut gérer cela.
Zoredache

Réponses:

35

Vous pouvez utiliser l'outil Sysinternals Contig :

contig.exe c:\$mft
Dmitri Sologoub
la source
2
Ça n'a pas marché pour moi. UltimateDefrag montre que $ MFT d'une partition non-système est fragmenté, mais contig dit "Tous les fichiers ont déjà été défragmentés ou n'ont pas pu être défragmentés." Quoi qu'il en soit, je ne sais vraiment pas pourquoi il y a $ MFT là-bas.
Yuri Ghensev
15

Auslogics Disk Defrag Pro accomplira cela pour vous. Bien qu'il ne s'agisse pas d'un programme gratuit, vous pouvez télécharger un essai gratuit, et si vous décidez d'acheter la licence est disponible pour une utilisation sur un maximum de trois PC.

Ultradefrag est un outil de défragmentation FOSS gratuit et puissant pour la plate-forme Windows. Il peut défragmenter tous les fichiers système, y compris les ruches de registre et les fichiers d'échange. Il comprend l'optimisation MFT, qui traite uniquement le MFT.

Simon
la source
3
+1 Ultradefrag m'a fait des miracles avec un $ MFT tenace que même Contig(qui a eu tant de votes positifs ici) n'a pas pu vaincre
BornToCode
@BornToCode Y a-t-il un moyen pour qu'Ultradefrag ne déplace pas les fichiers à la fin de la partition lorsqu'elle optimise le MFT?
RockPaperLizard
1
@RockPaperLizard - Je ne sais pas, mais l'alternative à ne pas déplacer ces quelques fichiers à la fin est de déplacer tous les autres fichiers sur le disque. Vous pouvez essayer d'exécuter Windows Defrag ou Diskeeper ordinaire après Ultradefrag; gardez à l'esprit cependant que le fait de classer chaque fichier en fonction du nombre de fois qu'il sera utilisé sera une opération de longue durée qui s'effondrera au prochain lancement d'un navigateur Web.
KeithS
Notez que vous devrez maintenant suivre le lien de téléchargement vers les «anciennes versions», car la version actuelle 8 n'est plus FOSS.
trlkly
6

Le meilleur outil était de loin l'ancien JKdefrag, maintenant Mydefrag. Défragmentera la MFT. De plus, c'est gratuit.

Le site d'origine est en panne mais on peut se procurer la dernière version ici: https://www.techspot.com/downloads/3720-jkdefrag-mydefrag.html

modifier

L'API Windows Defrag , utilisée par MyDefrag, prend en charge la défragmentation du MFT.

Voici les fichiers système, flux et types de flux pris en charge par FSCTL_MOVE_FILE au format "nom de fichier: nom de flux: $ nom_type".

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

Et la documentation du script de 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.

Bien qu'il ne s'exécute pas sur un Live CD, il s'exécute sur Bart PE ou l' Ultimate Windows BootCD .

Mais ni l'un ni l'autre n'est nécessaire pour défragmenter la MFT.

surfasb
la source
Ouais, ça. Je crois que l'API de défragmentation a été modifiée avec Vista, vous n'avez donc même pas besoin de redémarrer.
Hydaral
1
MyDefrag ne fonctionne que sur Windows; vous ne pouvez pas l'exécuter à partir d'un LiveCD open source. Il prétend supprimer uniquement les fichiers de l'espace MFT réservé, et non pas défragmenter le MFT s'il est déjà fragmenté. Existe-t-il un autre programme [à publier comme réponse différente] qui peut défragmenter la MFT?
WBT
Vous avez tort. Ce n'est pas explicite car l'API Defrag prend en charge la défragmentation du MFT. De plus, vous pouvez vérifier les scripts MyDrag.
surfasb
le site est maintenant: mydefrag.net
Randall Flagg
jkdefrag et mydefrag sont maintenant morts - mydefragGUI peut toujours être téléchargé sur mydefrag.net comme le montre le commentaire ci-dessus mais il n'y a pas eu de mise à jour depuis 2009
thomasrutter
5

Ces étapes ont fonctionné pour moi:

  1. Exécutez le MiniXP dans Hiren's BootCD .
  2. Désactivez l' hibernation , la mémoire virtuelle et le vidage de la mémoire du noyau.
  3. Suivez les instructions décrites dans ce lien (utilisez fsutil).
  4. Exécutez MyDefrag sur MiniXP avec l'option "Consolider l'espace libre".
  5. Redémarrez Windows et vous pouvez maintenant réduire votre partition.
gagallo7
la source
-1

il y a une option sur ultimatedefrag qui fournit une défragmentation au démarrage, mais cela n'a pas fonctionné pour moi mais j'espère que cela fonctionne pour vous

ultimatedefrag> outils> paramètres ...> temps de démarrage

sélectionnez le lecteur que vous voulez, cela prend un certain temps analyser le lecteur. une fois l'analyse terminée, vous pouvez ajuster l'emplacement du fichier mft mais je recommande de le laisser tel quel (si vous l'avez modifié, il y a un bouton pour le laisser par défaut). puis basculez l'option Exécuter lors du prochain démarrage et redémarrez simplement le PC

pour moi, il empile à 24% à chaque fois, puis démarre les fenêtres sans défragmenter le fichier, mais j'espère que cela fonctionne pour vous. partagez également votre expertise

abbas beau
la source