如何对 NTFS 磁盘上的 MFT 进行碎片整理?

WBT*_*WBT 28 windows windows-vista defragment ntfs mft

前阵子,我几乎填满了我的硬盘,远远超过了推荐的最大容量的 85%。我相信 NTFS 开始在为主文件表 (MFT) 保留的空间中存储文件,并且 MFT 随着它的增长不得不在其他地方分片。
我已经清除了硬盘驱动器上的空间,但 MFT 显然仍然是碎片化的,即使是打开文件夹或小文件等非常简单的操作,磁盘访问速度也很慢。这是杀死性能。我记得 Windows 标准磁盘碎片整理程序不会对 MFT 进行碎片整理,因为在操作系统运行时 MFT 正在使用中。我正在运行 Vista Ultimate,它的碎片整理实用程序几乎没有报告方式,比旧版本少。

我怀疑解决方案可能涉及从带有基本操作系统(“Live CD”)的光盘启动并从中运行碎片整理实用程序。谁能告诉我使用什么程序,或者如何对我的 MFT 进行碎片整理?

谢谢!

小智 36

您可以使用 Sysinternals 工具Contig

contig.exe c:\$mft
Run Code Online (Sandbox Code Playgroud)

  • 注意:我尝试在 Windows 10 上的 PowerShell 中执行此操作,但它所做的只是打印帮助。在普通命令 shell 中,它按预期工作。编辑:我刚刚发现原因:`$` 在 PS 中具有特殊含义,需要转义:`contig.exe 'c:\$mft'` 有效。 (5认同)
  • 没有为我工作。UltimateDefrag 显示来自非系统分区的 $MFT 已碎片化,但 contig 显示“所有文件要么已经进行碎片整理,要么无法进行碎片整理。” 无论如何,我真的不知道为什么那里有 $MFT。 (2认同)

Sim*_*mon 15

Auslogics Disk Defrag Pro将为您完成此操作。虽然不是免费程序,但您可以下载免费试用版,如果您决定购买该许可证,最多可在三台 PC 上使用。

Ultradefrag是用于 Windows 平台的免费且功能强大的FOSS碎片整理工具。它可以对任何系统文件进行碎片整理,包括注册表配置单元和分页文件。它包括 MFT 优化,它只处理 MFT。

  • +1 **Ultradefrag** 用顽固的 $MFT 为我创造了奇迹,即使是“Contig”(在这里获得了如此多的赞成票)也无法击败 (4认同)
  • @RockPaperLizard - 我不知道,但是不将这几个文件移动到最后的替代方法是移动磁盘上的所有其他文件。您可以尝试在 Ultradefrag 之后运行普通的 Windows Defrag 或 Diskeeper;但请记住,按文件的使用次数对每个文件进行排序将是一项长时间运行的操作,下次启动 Web 浏览器时该操作就会崩溃。 (2认同)

sur*_*asb 7

迄今为止最好的工具是旧的 JKdefrag,现在是 Mydefrag。将对 MFT 进行碎片整理。此外,它是免费的。

原始站点已关闭,但可以在此处获取最新版本的来源:https : //www.techspot.com/downloads/3720-jkdefrag-mydefrag.html

编辑

MyDefrag 使用的Windows Defrag API支持对 MFT 进行碎片整理。

以下是FSCTL_MOVE_FILE 支持的系统文件、流和流类型,格式为“filename:streamname:$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.
Run Code Online (Sandbox Code Playgroud)

虽然它不能在 Live CD 上运行,但可以在Bart PEUltimate Windows BootCD 上运行

但也不需要对 MFT 进行碎片整理。

  • MyDefrag 仅在 Windows 上运行;您无法从开源 LiveCD 运行它。它声称只从保留的 MFT 空间中删除文件,如果 MFT 已经碎片化,则不会对其进行碎片整理。是否有另一个程序[作为不同的答案发布]可以对 MFT 进行碎片整理? (2认同)

gag*_*lo7 5

这些步骤对我有用:

  1. Hiren 的 BootCD 中运行MiniXP
  2. 禁用休眠、虚拟内存和内核内存转储。
  3. 按照此链接中描述的说明进行操作(使用 fsutil)。
  4. 在 MiniXP 上运行 MyDefrag 并选择“合并可用空间”。
  5. 再次启动 Windows,现在您可以缩小分区。