首页
社区
课程
招聘
[原创][11月26日更新]我写的磁盘坏道标记工具 MarkBadClusTool (有源)
发表于: 2013-2-12 20:00 49511

[原创][11月26日更新]我写的磁盘坏道标记工具 MarkBadClusTool (有源)

2013-2-12 20:00
49511
我写的磁盘坏道标记工具 MarkBadClusTool

    半年前,我的硬盘惹上了坏道的麻烦。机器经常假死或者蓝屏,而且由于坏道导致的文件系统的损坏,使得不少数据丢失,让我心疼不已。苦于没钱更换新的硬盘,只有寻找死马当活马医的方法了。找了各种关于修复/屏蔽硬盘坏道的工具,它们的工作原理大致如下:1、通过低格的方式重新检测坏的扇区,并将这些扇区放入P表,类似硬盘刚出厂时检测缺陷时的处理方式。2、硬盘正常使用过程中检测出坏扇区并将其加入G表。MHDD一类的软件修复坏扇区就是这样的原理。3、通过多次读写坏扇区使其磁性恢复正常。这种方式很不稳定,过段时间多半仍然是坏扇区,无法真正修复。4、通过分区的方式隔离硬盘上不能正常使用的区域。这种方式对于坏道集中,有规律的情况下是有效的。对于范围大、分散不规律的情况下则力不从心。而且这种方式会牺牲硬盘的“大容量”以及用户体验。5、用文件系统本身的坏块机制屏蔽坏扇区。这是本文的重点,下边会着重讨论。还有一种修复方法就是用专业工具PC3000修复硬盘。这种方式很理想,然而对于我等农民而言是渴望而不可求的事情,只能作罢。

    上个暑假,天易奶牛针对NTFS文件系统的大放奶,掀起了一股NTFS热。再结合其它前辈的研究成果,使我受到了启发。过程中发现,一般的文件系统均有屏蔽坏扇区的机制。然而在系统正常工作的过程中对该机制的使用是很低效的。通常情况下,文件系统在执行完全的高级格式化或者系统在运行过程中遇到坏扇区时才会将坏扇区添加到文件系统的坏块机制中,而在磁盘有大量坏道的情况下,高级格式化往往由于检测扇区缓慢或者磁盘IO问题无法顺利完成,文件系统工作过程中遇到坏扇区再标记又不全面。而且,上边这两种方法都有一个共性,即对坏扇区的识别太精确,由于坏扇区有向周围蔓延的特点,所以这两种方法无法有效降低文件系统下次访问坏扇区的概率。因此,系统假死或者蓝屏,无故丢失数据的现象依旧会频繁出现。基于上边的分析,很自然的想到,如果能将大量的坏扇区信息一次性加入文件系统的坏块机制中,甚至将真正坏扇区周围的“正常”扇区也视为坏扇区一并加入,则可以很好的应对“坏道蔓延”,大范围不规律分布的情况。

    一边学习,一边敲代码调试,大约用了将近一个学期的零碎时间写成了这个小工具。如何使用请参看Readme以及演示视频。由于时间精力所限,目前仅实现了NTFS文件系统的处理,其它文件系统还没实现。

    本来想写点高质量的代码的,然而由于功力实在太差,没能达到预期的高质量。大家就将就着看吧:-) 这个代码对文件系统的操作几乎是最底层的了,算法都是自己写的,效率不高的情况在所难免。帖子最后提供了模块架构图,为要阅读代码的朋友提供导航支持。但愿这些代码对大家关于NTFS的学习有所帮助。如果对这个有兴趣,可以在论坛里联系我,大家一起学习进步。

    最后,我要特别感谢论坛里的朋友 天易奶牛、 雪yaojun、 邓韬、仙果,以及家人对我的支持。再加上以前那句话:好好学习,天天向上!




软件下载地址:http://pan.baidu.com/share/link?shareid=291307&uk=34547064

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
打赏 + 1.00雪花
打赏次数 1 雪花 + 1.00
 
赞赏  mb_smizague   +1.00 2024/06/01
最新回复 (69)
雪    币: 2155
活跃值: (29)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
感谢楼主无私放出代码。。。下载学习
2013-2-12 20:12
0
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
潜力贴留名.Opera插图补丁.颜色补丁.字数补丁..
2013-2-12 20:19
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
4
居然榜上有名,我是来下载源代码学习的,辛苦了,谢谢。
2013-2-12 20:25
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
5
手机党路过。
2013-2-12 20:26
0
雪    币: 120
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢楼主奉献。。。
2013-2-12 20:33
0
雪    币: 31
活跃值: (43)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
潜力贴留名。
过个年楼主居然也这么辛苦。
2013-2-12 21:46
0
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
8
呵呵,好东西,收下了!
2013-2-12 22:45
0
雪    币: 298
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢楼主无私分享。
2013-2-12 22:46
0
雪    币: 397
活跃值: (352)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
10
好强大,支持哦。
2013-2-12 23:06
0
雪    币: 114
活跃值: (180)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
射前一顶,蛇年幸福。
2013-2-12 23:07
0
雪    币: 162
活跃值: (63)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
感谢楼主无私分享.............
2013-2-13 00:25
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
13
此物生猛海鲜啊~~
2013-2-13 08:28
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
强帖留名
2013-2-13 11:43
0
雪    币: 1040
活跃值: (41)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
强帖。感谢楼主技术分享。
2013-2-13 17:31
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
16
此物生猛海鲜啊~~
2013-2-13 18:42
0
雪    币: 74
活跃值: (703)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
强帖留名
2013-2-13 21:29
0
雪    币: 284
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
mark!!!
2013-2-14 10:15
0
雪    币: 2834
活跃值: (2675)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
谢谢楼主分享!
2013-2-14 16:52
0
雪    币: 12
活跃值: (523)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
谢谢,学习一下
2013-2-14 18:01
0
雪    币: 213
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
很好的思路,

[已解决] XPsp3出错求解决



上传的附件:
2013-2-14 22:00
0
雪    币: 95
活跃值: (64)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
22
谢谢LZ的无私分享精神。
2013-2-14 22:27
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
牛人,学习一下
2013-2-14 22:46
0
雪    币: 93908
活跃值: (200199)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
24
Thanks for share.
2013-2-14 22:51
0
雪    币: 1689
活跃值: (379)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
25
[QUOTE=gyfhgyfh;1142892]很好的思路,XPsp3出错求解决



[/QUOTE]

你电脑上可能缺少必要的C库文件,现在不在家,一两天回去后修复。谢谢支持。
2013-2-15 00:15
0
游客
登录 | 注册 方可回帖
返回
//