28

Некоторое время назад я почти заполнил свой жесткий диск, намного больше, чем рекомендуемый максимум 85% емкости. Я считаю, что NTFS начала хранить файлы в пространстве, зарезервированном для главной таблицы файлов (MFT), и MFT пришлось фрагментировать в другом месте по мере роста.
Я освободил место на жестком диске, но MFT, очевидно, остается фрагментированным, и существует очень медленный доступ к диску даже для очень простых операций, таких как открытие папки или небольшого файла. Это убийственное выступление. Я помню, что стандартный дефрагментатор диска Windows не дефрагментирует MFT, потому что MFT используется, когда операционная система работает. Я использую Vista Ultimate, и ее утилита дефрагментации имеет очень мало способов создания отчетов, по сравнению с более старыми версиями.

Я подозреваю, что решение может включать загрузку с оптического диска с базовой ОС ("Live CD") и запуск из него утилиты дефрагментации. Кто-нибудь может сказать мне, какую программу использовать, или как дефрагментировать мой MFT?

Спасибо!

4 ответа4

34

Вы можете использовать инструмент Sysinternals Contig:

contig.exe c:\$mft
15

Auslogics Disk Defrag Pro сделает это за вас. Хотя это и не бесплатная программа, вы можете загрузить бесплатную пробную версию, и если вы все же решите приобрести лицензию, она будет доступна для использования на трех компьютерах.

Ultradefrag - это бесплатный и мощный инструмент дефрагментации FOSS для платформы Windows. Он может дефрагментировать любые системные файлы, включая кусты реестра и файл подкачки. Он включает в себя оптимизацию MFT, которая обрабатывает только MFT.

6

На сегодняшний день лучшим инструментом был старый JKdefrag, теперь Mydefrag. Будет дефрагментировать MFT. Кроме того, это бесплатно.

Оригинальный сайт не работает, но можно получить последнюю версию здесь: https://www.techspot.com/downloads/3720-jkdefrag-mydefrag.html

редактировать

Windows Defrag API, используемый MyDefrag, поддерживает дефрагментацию MFT.

Ниже приведены системные файлы, потоки и типы потоков, поддерживаемые FSCTL_MOVE_FILE в формате «имя файла: имя потока: $ typename».

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

И документация сценария 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.

Хотя он не будет работать на Live CD, он будет работать на Bart PE или Ultimate Windows BootCD.

Но ни то, ни другое не является необходимым для дефрагментации MFT.

5

Эти шаги работали для меня:

  1. Запустите MiniXP в загрузочном CD Hiren.
  2. Отключите спящий режим, виртуальную память и дамп памяти ядра.
  3. Следуйте инструкциям, описанным в этой ссылке (используйте fsutil).
  4. Запустите MyDefrag на MiniXP с опцией "Объединить свободное пространство".
  5. Запустите Windows снова, и теперь вы можете уменьшить свой раздел.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .