Как дефрагментировать MFT на диске NTFS?

Как дефрагментировать MFT на диске NTFS?

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

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

Спасибо!

решение1

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

contig.exe c:\$mft

решение2

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

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

решение3

Лучшим инструментом был старый JKdefrag, теперь Mydefrag. Дефрагментирует MFT. К тому же, он бесплатный.

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

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

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

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

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

И MyDefrag'sдокументация по скрипту:

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, он будет работать наБарт PEилиUltimate Windows BootCD.

Но дефрагментировать MFT не обязательно.

решение4

Я знаю, что это старая тема, но старые системы — это то, чем я занимаюсь. Я выпускаю проект с открытым исходным кодом наhttps://github.com/DHorse2/TaylorDoи все желающие могут использовать эту библиотеку MyDefrag или внести в нее свой вклад.

Перемещение MFT и дефрагментация выполняются в системе, работающей нормально. Однако это несколько $xxx и системных файлов, если вы их переместите, функция не сработает. Точки восстановления являются лучшим примером.

Суть продукта TaylorDo в том, что он обеспечивает максимальную производительность ПОСЛЕ загрузки системы, тогда как другие продукты, как правило, оптимизируют только загрузку.

Редактирование 20240315: этот проект нуждается в незначительной доработке перед финальным выпуском (включение/отключение планировщика); я оставляю его открытым.

Связанный контент