Некоторое время назад я почти заполнил свой жесткий диск, намного больше рекомендуемого максимума в 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: этот проект нуждается в незначительной доработке перед финальным выпуском (включение/отключение планировщика); я оставляю его открытым.