昨天遇到一个坏U盘,接入电脑后,系统可以识别新硬件,但是打开我的电脑试图访问U盘时系统却提示未响应。刚开始以为U盘有坏块,随即用工具在DOS对整个U盘进行坏块扫描,扫描时看到了U盘的容量8G,因为U盘容量并不大,所以扫描速度很快,检测完成后,并没有发现坏扇区。因此初步确定非物理故障。
根据Windows运行机制,当有新的设备接入时Windows都会读取介质信息,未响应的话,极有可能是U盘的目录区挂掉了,所以导致Windows无法访问,从而直接无法回应访问请求。综合来看这个U盘的文件系统极有可能是FAT32文件系统。
为了证实这个判断,首先把坏的U盘按扇区复制的方式完全克隆到另一个正常的U盘上,(无论什么问题,都不能直接在故障U盘上直接恢复)在DOS下用扇区编辑软件把0扇区的结束标志55 AA删掉,用00 00覆盖,这样的话这个U盘的MBR因为没有有效的55AA结束标志,所以系统就不会反复去读这个有问题的U盘,一般也就不会出现“未响应”了。这就给我们下一步的修复工作提供了很好的保证。
一切复制完毕后,直接跳转到63扇区,看看这个U盘的DBR的数据是否正确,通过查看发现这个U盘就是是FAT32文件系统格式,跳转到95扇区,就是FAT32文件系统的目录区,也这个U盘根目录所有文件夹开始的地方,一看吓一跳。一开始还是正确的,试图往后翻了若干个扇区后,后来的就开始有错了,接下来看了FAT表,FAT也是有错误的。继续往后看惊奇的发现FAT表的备份竟然没有问题。
接下来说修复的过程:对于FAT表,我们可以用它的备份来修复错误的,(直接用正确的覆盖即可)而目录区的错误会直接导致文件链的断裂,就好像一本几十万页故事书,要找特定的一段故事情节,没有目录的话,因为不知道从哪开始,到哪结束,所以基本上是找不到的,或者说是找不全的。我们只能把目录区一部分正确指向的文件夹通过winhex恢复到指定位置,顺带看了几个错误的指向,开始结束均不对,并且有的指向跳转到数据区后,数据区里的数据已经被覆盖了,所以有些不能恢复。
通过这个实例,再给大家几个忠告;
1,U盘并不是存储文件最好的介质,它的存储安全性能远远低于移动硬盘和硬盘。重要文件不要长时间存储在U盘上。
2,文件系统一定要实用NTFS格式,和FAT32文件系统格式相比,NTFS文件系统具有更好的安全性、容错性以及可恢复性。 3,一旦发现磁盘异常,要立即断开计算机电源,自己不要贸然进行恢复,避免造成数据覆盖,造成数据永久不可逆丢失。
这是水淼·帝国CMS站群文章更新器的试用版本更新的文章,故有此标记(2024-05-06 08:54:38)