如何编写程序检查硬盘损坏?

huoyunbx   2008-9-9 11:20 楼主
我在linux系统下。

1)判断特定文件所在的扇区是否损坏,io系统调用返回的错误能标识么?
2)程序做磁盘扫锚?

回复评论 (5)

没人回答,顶
点赞  2008-9-15 19:32
听声音啊,当拷文件硬盘开始响,那个位置用铅笔做个记号,就是有坏道的地方。
点赞  2008-9-16 09:37
呵呵,说笑了,一般扫描原理好像就是写数据,再读出来,校验。
点赞  2008-9-16 09:38
你可以在DOS下编写一个小程式,通过int13的ext read/Write command来检查
具体做法建议:
1.int13的42h/43h command,使用硬盘LBA address访问
2.一次读64k,也就是256sector(一个sector=512bytes),读前申请一段memory保存所读磁盘空间当前内容(所以程式不能是small型,否则申请不了64k的memory做为buffer)
3.既然已经保存了数据,那么就可以向这段空间写已知pattern(建议0x55AA),然后再读回来看是否无误
4.Label所以读写不一致的部分,并将其LBA地址存些在一个文件里作为返回
点赞  2008-9-18 13:31
致敬,顶!
点赞  2008-9-19 09:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复