荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Bulls (音乐虫子), 信区: Hardware
标  题: FAT的问题
发信站: BBS 荔园晨风站 (Tue Oct 12 11:13:15 1999), 站内信件

当Dos,win3x,win9x 遇到读写错误时 就会在文件分配表FAT中,把该分配单元标记
为"不可使用" 也就是坏簇,因为FAT文件系统的最小分配单位是簇. 坏簇的标记是
(十六进制值),可用的好簇的标记是
FAT12 : FF7 000
FAT16 : FFF7 0000
FAT32 : FFFFFFF7 00000000
(我猜的,因为我的DE.EXE不能访问FAT32分区) 大家先要记住FAT也是储存在磁盘上
的,也是一个字节一个字节地存储的 ,
因此,只需要找一个能编辑FAT的软件
如Norton的DE.EXE或PCtools的DE.EXE,(Norton的较好,有Find功能) 在这个软件里,
编辑FAT,分别查找字串FAT16中,查找 F7 FF (因为FAT的存储是高位字节在后的,
所以FFF7会被存为F7 FF) FAT32中,查找 F7 FF FF FF. FAT12,(软盘和32M以下的分
区使用FAT12)的情况比较复杂 因为FAT12只使用12bit来做簇标记,所以在FAT中,每3
个字节为2个连续的 簇标记.3个字节=24bit=2个12bit的簇编号. 例如:簇标记编号
1,2,3,4 会被储存为 01 20 00 03 40 0. (6个字节) 解读为 001 002 003 004 四
个12bit的簇编号 (请记住高位字节在后,所以
第一个字节01是第一个簇编号的低位字节01)
第二个字节20的低位字节0是第一个簇编号的高位字节0)
第二个字节20的高位字节2是第二个簇编号的低位字节2)
第三个字节00的高位字节2是第二个簇编号的高位字节00)
那么,坏簇标记FF7在FAT12中可能有以下2种形式存在
(?是任意16进制数0,1,2-,E,F)
F7 ?F (当坏簇是相联的两个簇编号的第一个时)
7? FF (当坏簇是相联的两个簇编号的第二个时)
找起来比较费劲.

我用这个方法多次成功地把硬盘/软盘的坏簇重新标记为好簇.
这个方法最好用是用在软盘上,软盘的坏簇其实很可能是好的.
硬盘的出错率比较低,所以一旦有了坏簇,就很可能是真的坏了.
不过如果只有一处,连续的,数量比较少的坏簇,那么就很可能是好的簇
被标志错了,可以重新标记后,再运行SCANDISK(全面检查),看看是不是
真的坏了.如果是真的坏了,SCANDISK会重新标记它为坏簇.
我最成功的一次是把一个坏簇很多的硬盘标记为好的
然后拿到二手货的收购店去卖,店主没有用SCANDISK(全面检查)来测试
因为这个测试太花时间,结果就把坏硬盘卖掉了,我好坏.....^_^
备注: FAT32的坏簇标记不知道是不是沿用FFFF FFF7,我猜99.99%是
Norton for 98的版本可能有编辑FAT32的功能.
另外有一个小程序也可以的,Download地点
http://www.cd.ilike.com.cn/pub/soft_edit/winhex.zip


--
※ 修改:.Bulls 於 Oct 12 11:14:49 修改本文.[FROM: 192.168.28.1]
☆ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: bbs@210.39.3.178]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店