不使用CHKDSK,手动重置或清除Windows中的 dirty bit (脏位)

网友投稿 1683 2022-09-17

不使用CHKDSK,手动重置或清除Windows中的 dirty bit (脏位)

不使用CHKDSK,手动重置或清除Windows中的 dirty bit (脏位)

硬盘卷上的dirty bit是一个至今尚未完全解决的谜团,这是隐藏在硬盘上的十六进制值,微软直到最近才公开。

如果文件在打开状态时Windows被硬重置,或者文件尚未完全写入U盘就被拔出,dirty bit就会被保留,Windows据此认为磁盘卷可能有损坏的文件。

计算机在启动时会检查硬盘是否被设置了dirty bit,如果是就会在进入Windows之前检查磁盘的一致性。当然可以按任意键跳过磁盘检查,但下次启动计算机时它会再次出现,直到驱动器被扫描或格式化。或者你可以让Windows ​​不再检查特定驱动器​​。但这不会清除dirty bit,只是强制 Windows 在启动时不扫描驱动器而已。

WIN7的提示:

WIN10的提示:

同样,当 U 盘或移动硬盘被设置了dirty bit,插入 Windows 7/10之后也会弹一个窗口,询问:要扫描并修复XX么?

Windows 中有一个名为 fsutil.exe 的工具可用于检查卷是否“脏了”,甚至可用于手动将卷设置为“脏”,这会导致请求扫描驱动器,但奇怪的是它不能清除dirty bit。

为了方便接下来的实验,我们先将U盘置脏位:

可以用两种方法清除dirty bit:进行磁盘检查,或者格式化驱动器(之前先备份数据)。前者会生成一些​​后缀为CHK的文件​​,这些文件不知所谓,有可能让你丢失数据,后者更稳妥一些,但如果数据量很大,拷贝文件需要花很多时间。

本文介绍第三种方法。先在 NTFS 和 FAT16/32 文件系统上找到dirty bit,然后再用十六进制编辑器手动清除dirty bit。正如之前所说,dirty bit只是一个十六进制数值。

我们总共尝试了 13 种不同的十六进制编辑器,分别是 wxHexEditor、HxD、010 Editor、CI Hex Viewer、iBored、HexEdit Pro、Hackman Suite、DMDE、Hexprobe、FlexHEX、ADRC Hard Disk Hex Editor、WinHex 和 Hex Workshop。只有 DMDE、WinHex 和 Hex Workshop 能够将数据写回磁盘。HxD 无疑是最容易使用的工具之一,但速度稍慢,因为它需要手动搜索驱动器的某些值。

特别注意:经测试,没有一个十六进制编辑器能编辑系统卷(C:盘)或任何当前正在被使用并被系统锁定的卷,我们在文章底部给出了这个问题的解决方案。

-WinHex

链接: ​​4v56

清除dirty bit

1.-WinHex,只有注册版才能往硬盘里写回数据。

FATA32卷的dirty bit偏移量是0x41,该位置01为脏卷,置00为干净,所以将其置为00,按Ctrl+W或点软盘按钮写入驱动器,以后将不再提示检查磁盘。

FAT16卷dirty bit的偏移量是0x25,修改方法同上。

03 01 01 00 00 00 00 00 80 00 00 00 18

或者:03 01 81 01 00 00 00 00 80 00 00 00 18

红色部分即dirty bit。

本例是找到了特征串03018101,改8101为8000。

如果找到的特征串是03010100,改为03010000。

dirty bit即被清除,插上U盘不会再提示扫描驱动器了。

据实验,对WIN7、8、10的修改即刻生效,XP需要重启。

怎样修改系统卷/被锁定卷的dirty bit

如果要清除C盘或其它被锁定卷上的dirty bit,可以用WinPE进入系统,然后用WinHex修改,WinPE有很多家,推荐U启通,因为我发现有些WinPE过于精简,无法运行某些EXE文件,比如WinHex。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C# List转换成DataTable(c反应蛋白高说明什么)
下一篇:#yyds干货盘点#深入理解 Linux 的 I/O 系统
相关文章

 发表评论

暂时没有评论,来抢沙发吧~