我有一台 Windows 7 笔记本电脑,过去几个月我一直无法对其进行碎片整理。
当我尝试从命令行调用碎片整理程序时,它显示“此卷上设置了脏位”。因此,我尝试强制它在下次重新启动时进行碎片整理,但从未发生过。
当我尝试调用碎片整理程序 UI 时,出现一个对话框,提示“磁盘碎片整理程序已使用另一个程序安排”,并显示一个“删除设置”按钮,但显然没有任何效果。
即使我以管理员身份运行任务计划程序,也无法删除计划任务,我收到一条消息,提示“指定资源管理器中的事务支持未启动或由于错误而关闭”
关于如何运行 win7 碎片整理程序,有什么建议吗?我知道有第三方碎片整理程序解决方案。
答案1
陈瑞文(长期从事 Windows 开发人员)解释 dirty bit这里:
一个长期未解之谜是硬盘卷上的脏位。基本上,脏位只是一个 1 十六进制值,位于硬盘上的某个隐藏位置,微软直到最近才透露。Windows 将检查脏位以确定卷是否可能包含损坏的文件,这是由于硬重置 Windows 计算机时文件仍处于打开状态,或者当您拔下正在复制文件的 USB 闪存驱动器时造成的。
当计算机在启用硬盘脏位的情况下启动时,系统会要求您在加载 Windows 之前检查磁盘的一致性。您可以按任意键跳过磁盘检查,但下次启动计算机时它会再次出现。这种情况通常会持续发生,直到您允许扫描驱动器,或者您可以告诉 Windows 停止检查特定驱动器。但是,此方法不会清除驱动器上的脏位,而只是强制 Windows 在启动时不扫描驱动器。
因此,假设已设置脏位(您可以使用它fsutil dirty query c:
来找出),那么您有三个选择:
- 重新启动计算机并检查磁盘。
- 运行
chkdsk c: /F
以尝试修复所有错误。 - 使用十六进制编辑器/备用启动 CD 手动设置驱动器上的位(可在第2页他的这篇文章)。
就我个人而言,我可能会重新启动计算机,因为这样可以确保没有任何程序运行可能会阻止扫描的进行。
一旦脏位被取消设置,您就应该能够运行碎片整理程序。
边注:如果您想手动设置驱动器 C 上的脏位,请使用。但是fsutil dirty set c:
没有办法fsutil
取消设置它。