虽然现在的存储技术越来越先进,什么ZIP、LS120、CD-RW等新型存储工具正在普及,网络应用也越来越广泛,个人主页、E-mail满天飞,数据的传输与备份有了更多的选择余地,但由于种种原因,所有这些暂时都无法替代从PC诞生那一天起就伴随其发展的软驱和软盘。软盘方便、易于携带且价格便宜,仍然在存储市场中占据重要的份额。最重要的一点是,现在几乎每一台PC机都配有一个1.44M的软盘驱动器,软盘恐怕还是传递、备份少量资料最方便的选择。但是,由于现在市面上的软驱翻新伪劣者极多,假软盘更是满天飞。在这种情况下软盘损坏的情况根本不是什么稀奇的事,加上软盘和软驱天生的弱点,软盘上存储的资料数据很容易丢失。如果软盘中只是一些无关紧要或者另有备份的数据那也就算了,但如果其中的数据非常重要并且没有备份,如何尽量抢救数据那就非常值得研究了。另外现在软盘非常容易损坏,一旦坏掉,大多数朋友都是扔掉了事,尽管一张软盘现在只值几元钱,但如果能将软盘再利用,不仅节约资金,而且还有利于环保。本文将全面介绍软盘数据恢复、修复坏软盘等方面的内容,希望能对你有所帮助。
一、软盘数据结构简介
现在普遍使用的是3.5英寸1.44M的软磁盘,一张软盘格式化后,被逻辑地分为:
磁道(TRACK):磁盘上分成的数个同心圆环;
面(Head):分为0/1两面;
扇区(SECTOR):磁道上储存资料的区域,有几部分。
3.5″盘的标准格式有720kB(80道、每道9个扇区)和1.44MB(80道、每道18个扇区)两种,而5″盘的标准格式有1.2MB(80道、每道15个扇区)和360kB(40道、每道9个扇区)两种。
现在使用最为普遍的1.44M 2HD的软盘有80轨(即80个同心圆),每一轨又分为9个扇区,每个扇区又再分512个位元组,软盘的0面0道是非常重要的,第1扇区是引导信息,第2、3扇区是第1个文件分配表(FAT)的起始扇区,再后面就是数据区了。每张经过格式化的、并且装了文件的磁盘,都在磁盘中建立了一张文件目录表,记录着整个磁盘上所有文件的有用信息,所以我们了解它的结构很有好处。在文件目录表中,每个文件占32个字节(用PC-TOOLS或DEBUG读出时占两行),各个字节的含义是这样的:
0-7字节:文件名,共8个字节,不足8个的用29填满,其中第一个字节为00时,表示此项未用,为E5时表示此项已经删除。
8-10字节:扩展名,占3个字节,无扩展名或不足3个的用20填充。
11字节,表示文件属性。具体含义是:20为归档文件,01为只读文件,不能对其进行修改和删除。02为隐含,不能用DIR命令进行查找,04为系统文件,也不能用DIR命令进行查找。10表示此项为子目录,而不是文件。28表示此项为磁盘的卷标,即磁盘的名字,不是文件。
12-21共10个字节为保留字段,没有使用。
22-23为建立文件的时间。
24-25为建立文件的日期。
26-27为文件占用的第一个簇号,即起始簇。
28-31共4个字节,为此文件的长度。
不同的磁盘目录表在磁盘中的位置和长度也不相同,360k磁盘目录表在磁盘的相对5号扇区到11号扇区共7个扇区;1.44M磁盘在相对15号扇区到28号扇区共14个扇区。掌握了目录表的结构,我们可以利用它来做一些工作,比如误删了文件,而磁盘又没进行其它写操作,在没有其它软件恢复时,可以修改目录表此项的第1个字节,把E5改为其它,就可以恢复误删文件。
二、用工具软件恢复磁盘数据
一般来说软盘被损坏、数据丢失的情况可以分为3大类:
一种情况是零磁道坏,无法看到盘符和列出目录,屏幕显示的错误信息一般为:
“General Failure error Reading drive A Abort, Retry, Ignore?”
第二种情况是最常见的,即软盘的某一个部分损坏,可以列出目录,但有某一个文件或某几个文件无法读出或读出后文件损坏。屏幕显示的错误信息一般为:
“Sector not found error Reading drive A Abort, Retry, Ignore?或Data error Reading drive A Abort, Retry, Ignore?”
第三种情况是受到了物理损坏,比如盘片发生了霉变、盘上有划痕、磁粉脱落等。要恢复软盘数据需要借助一些工具软件。下面对常用的软盘数据恢复软件逐一进行介绍:
1.HD-COPY
HD-COPY是一位德国人编写的一个磁盘对拷程序。主程序只有40多k,但功能非常强大,具有作格式化软盘、软盘扩容、修复坏软盘、保存软盘信息、读取坏软盘、压缩文件、清洗软驱磁头等功能。其读取坏盘数据的功能非常强,它可以对坏道反复读取(最多次数可达100次),在确认实在无法读出坏道信息的情况下就会将损坏的部分空在一边将有用的尽可能地保存起来。HD-COPY用法很简单:
HD-COPY在工作时会从软盘的0面1道和1面1道一直到0面及1面的79道读出所有的扇区,遇到坏磁道或者坏扇区时会反复多次地读该磁道或扇区,尽量多地读出信息,所以不管软盘遭到何种损伤,我们都可以用它来读出错软盘,然后将信息复制到一张完好的盘上。进入HD-COPY时,屏幕左上角的Source(源盘)框内有两排小点,其中上面一排表示0面0~79道,下面表示1面0~79道。当你插入软盘并选择Read(读)时,它会用R来代替小点表示正读某磁道和已读磁道,E表示某磁道的扇区有错。读完源盘后,把目的盘插入驱动器、光标移到Write(写)并回车,这时,在Destination(目的盘)框有移动的W或V覆盖小点代表“写”或“校验”。
如果只是零磁道坏,那么软盘上数据恢复的可能性很大。通常情况下只要用HD-COPY将其做一个映像,再将映像存到另一张好软盘中去,数据即可恢复。而对于磁盘数据区被损坏的情况,用HD-COPY可以尽可能地读取,如果是文本文件恢复的数据还是很有价值的,但对于exe、dll之类的文件恢复后也没有什么实际意义了。
2.诺顿的NU软件包
磁盘工具软件包Norton(诺顿),是专门用来修复磁盘的工具软件。其中包含了几个对恢复软盘数据很有用的程序。
(1)NDD
把需要修复的软盘放入A驱,启动NDD,在主菜单中选择Diagnose Disk,然后选驱动器A并回车,NDD就会分析磁盘的引导记录、文件分配表、目录结构、丢失簇等信息,发现错误扇区时,会显示错误的地方及原因,问你是否希望改正该错误?按Y后,屏幕显示是否建立一个UNDO文件、或跳过这一步、或是退出NDD。选择Skip(跳过),磁盘医生就开始修复出错扇区。如果是第一个FAT表损坏,它就会自动把第2个文件分配表写回第1个文件分配表所在的扇区,磁盘的全部文件就可以读出来了。如果坏扇区是在目录区,列目录时可能会找不到一些文件或子目录,NDD把丢失的子目录用DIR00000─DIRXXXXX、文件用FILEXXXX.-DD代表;坏扇区在数据区时,存放在这个扇区的文件有部分可能不能修复,一个扇区可以存放512字节的内容。要注意在屏幕显示XXXX个丢失的簇在XXX个链中,并提问:“Do you wish to save lost chains as files?”(你希望把丢失的链作为文件保存吗?)时,要选择Save,如选择Detele,则丢失的信息全被删除,再也不能恢复。接着要做的是Surface Test(盘面测试),检查磁盘表面有无坏磁道(柱面)。你可根据需要选择测试或跳过。如果你想继续使用有一些坏道的磁盘,不妨用它来帮助你标注坏道,使DOS在读写时绕开这些坏道。
NDD是一位非常专业的磁盘医生,智商很高,能修复磁盘上的绝大多数错误。NDD的使用过程相当“傻瓜”,一般情况下,NDD启动后只要选定需修理的软盘所在的驱动器的盘符,然后一路回车就可以完成修理工作。NDD主要用于磁盘文件错误、磁盘表面轻微损伤、磁盘系统错误等,功能非常强大。但是它有个局限就是只能识别标准格式的软盘,如果被维修的软盘不是标准格式,NDD会自动将其修改为标准格式,这样很可能导致数据彻底丢失。因此,不能使用NDD来修理非标准格式软盘,非标准格式软盘上的文件要用HD-COPY等工具来挽救。
(2)DISKEDIT
Norton中的Disk Editor(磁盘编辑器),具有读写绝对扇区的功能。如果你对磁盘数据的存储规律很熟悉,可以使用这个软件来直接恢复一些数据。运行DISKEDIT后,用鼠标单击菜单上的(O)对象,单击(D)驱动器,选(P)物理磁盘后再击软驱A:,出现选择物理扇区域,读绝对(物理)扇区的默认值是0面(磁头)0柱面(磁道)1扇区。因为数据区一般是从0柱1面16扇区开始,我们可以从第15扇区往下寻找自己的文件,可用PgUP、PgDn键或鼠标上下翻页。如果文件是文本文件等,在屏幕右边会显示其内容;当看到有自己需要内容的扇区,可以把它们保存到一个文件中:在屏幕上选(P)物理扇,输入起始扇区和扇区数,单击确定后在(T)工具中选(W)写对象至,在出现的屏幕中选择(F)文件并确定,注意一定要把文件保存在硬盘上。
(3)DISKTOOLS
DISKTOOLS.exe也是NORTON工具箱中的一个磁盘修复工具,其最大优点是能不丢失数据地对软盘进行低级格式化,对挽救坏盘数据是非常有用的;
中文版的DISKTOOLS.exe主程序只有54kB,但和上面两个软件一样也需要NORTON系统文件nlib200.rtl、中文字库china16.fnt两个文件配合才能正常运行。它提供了4项功能:使磁盘可引导、在使用DOS recover命令后恢复、再生一个有缺陷的磁盘和标记一个簇,其中,再生磁盘就是安全低级格式化,这一功能对于挽救坏盘上的文件非常有用,尤其是在没有其它备用的软盘时更重要。DISKTOOLS具体使用方法很简单,在此就不赘述了。
(4)TS
NORTON工具箱中还有一个不被人注意的小工具:TS.exe。这个软件的作用是按扇区查找被误删或丢失的数据,然后根据需要将找到的数据保存到另一个文件中。
3.PCTools 5.0和DEBUG
PCTools 5.0是一个比较常用的磁盘工具软件,只有一个文件pc.exe,长度约169kB,主要有文件服务和磁盘服务两大功能。其磁盘服务功能主要提供了磁盘的复制、删除、比较、改名、校验、编辑和初始化,还有文件的反删除等功能,其中磁盘初始化功能是对软盘进行低级格式化(同时进行高级格式化),能将磁盘文件彻底删除,即使使用反删除工具也无法挽救,但正是这样的低级格式化才能使一些高级格式化无法解决的问题得以解决,加上低级格式化之后无须进行高级格式化,而且采用了比较细腻的校验,不能通过校验的簇都已标记为坏簇,软盘初始化之后即可放心使用。
另外DOS自带的DEBUG也是一个可以对软盘进行物理级读写的软件,是一些顶尖高手的常用工具。
4.Scandisk
对于有问题的软盘,我们可以简单地用工具软件来尝试修复。在无法读取软盘数据时,试试Win98自带的Scandisk是个好主意,虽然它的功能不是很强大,但它容易找到、使用方便,并完全支持微软的长文件名格式。我们只要选定目标盘的盘符,并执行完整的表面检测(surface test),中间如有提示,一律yes或next,程序会自动把数据从坏的磁道或扇区移动到完好位置,如果运气好的话,修理后的磁盘和没坏时没什么两样了。
此外当磁盘空间无故减少或出现乱字符文件名或是超大文件时,Scandisk对这类问题也一样能对付。通常,这类情况发生的原因是磁盘簇异常丢失。簇是磁盘读写的最小单位,在1.44M软盘上等同于一个扇区就是512字节,如果一个数据段被占用但FAT表内并未标记,则会造成数据丢失;反之,若FAT对空数据段进行了文件标注,就会导致空间无故减少。
5.Badcopy
Badcopy是由国人任良编制专门用于对有磁道损坏的软盘拷贝、挽救数据的工具软件。Badcopy99可以稳定工作在中英文Win95/Win98/Win2000及WinNT平台上,整个软件300K多一点,是“绿色软件”,不用安装,直接执行即可。
Badcopy99的复制及修复功能全部可以在软件的首页[Badcopy]上实现,先确定需要复制文件(可以是多个文件)还是复制整个文件夹(包括其中的子文件夹),在[Source]下面有File及Folder两项供你选择;然后选上要复制的文件或文件夹,接着告诉Badcopy把挽救的数据存放在哪个文件夹(Target Folder)下,也可用浏览的方式挑选,一切准备就绪,按Copy按钮后,Badcopy会自动拼命地试图读出每一个字节的数据,实在不行的话,Badcopy会用智能填充的方式补全数据。这些过程全部是透明的,在Target Folder下面会显示复制修复进度,再下面显示复制文件数目与智能填充的数据多少。[Option]页面中可以自由定制Badcopy的一些参数。如是否显示隐含或系统文件,是否自动进行智能数据填充,还有是否重试及每个数据块的大小(当修复数据效果不理想时可以试着调整其中的参数,如果数据比较宝贵,可以将每块大小Block Size相对定小一点,这样可以最大限度地挽回你的数据;如果追求速度,则适当定大一些)。还有[Tools]等页面,提供了一些常用的文件操作功能,这个软件的使用很简单,一试便知。
6.Disketer
这个软件被称为Windows下的HD-Copy,是目前Windows下专门针对软盘操作的好工具。标准的Windows界面,使用方便,功能强大,但这个软件有个很大的限制,要使用Disketer的超强功能就要遵照它的一些特殊要求,即一定要使用Disketer的格式化功能然后用Disketer向软盘里面复制删除文件,这样以后软盘发生损坏时Disketer才会有用武之地,即在主界面上选取“Tools/format”进行格式化,然后点击工具条的“Open”打开磁盘,点击“Add”向磁盘里添加文件或“Del”删除文件。这在相当程度上影响了这个软件的广泛应用,下面还是具体地说一下Disketer修复磁盘的功能:
修复0磁道:如果磁盘可以打开但却不能进行写或删除的操作,则可判断为0磁道损坏,选择“Tools/Diskservice”。选择“Repair #0 sector”,即可处理为一张正常的软盘了,这大约只要花30秒的时间。另外和Badcopy一样,Disketer也能读取软盘或者硬盘上坏道中的文件。它对于坏道的放弃自动以512Bytes为单位,点取“File/repair file”,在“Sector number”后输入坏道的扇区(坏道扇区的确定是在用Disketer复制过程中软件显示的,用笔记下来在这里输入就行了),可以输入多个用“Add”按钮添加;然后输入需要读取文件的路径与名称以及修复后文件存放路径与名称;设完后按“Repair”按钮就开始恢复数据了。
7.其他“旁门左道”
有时候为挽救软盘上的重要数据我们可以想尽一切办法,有些软件表面上不是用来修复磁盘的,我们也可以拿来试试,说不定有奇效,比如:
Ultra Edit,运行Ultra Edit,插入磁盘,选定想拯救的文件。这里一般都是“HEX”模式(文本文件除外),如果能够读出的话,这时你只需做“SAVE AS”,给它起个名字,保存。大多数时候Ultra Edit会提示“Error reading file:A:\filename.ext”。还不死心的话,请按“重试”,多试几次。
WinZip,插入磁盘,打开资源管理器,选定要拯救的文件,右键打开快捷菜单,选“Add to Zip”(如果你安装了WinZip的话),在“add to archive”中输入目标路径和文件名(一定要放在硬盘中),单击“Add”,被损坏的文件可能被打到压缩包中!然后你只需将其“EXTRACT”出即可。
三、恢复软盘遇到的其他问题
软盘上数据无法读取的情况是很复杂的,除了因为坏道等原因,可以采用我上面提到的那些工具软件来挽救外,还有下面一些情况也可能导致软盘上的数据无法读取。
1.非标准容量盘的读取
用HD-Copy等软件对软盘扩容后,其直接后果就是在其他机器上很可能无法读取,比如我们用HD-COPY软件将3.5英寸1.44MB高密软盘格式化成1.722MB后,在DOS下进行读写时常会出现“sector not found reding drive b(或a),abort,retry,ingore,fail?”这是由于1.77MB磁盘每面是82磁道,每磁道有21个扇区,即82×21,而1.44MB盘是80×18,可见1.722MB盘相对来说是不规则的,要正常读写这类磁盘可以采用下面的方法:
找一个名为800.EXE,常驻内存的专用小软件,支持不规则软盘的读写。也可加载DOS外部文件DRIVER.SYS来解决,即在CONFIG.SYS文件中加一行语句:DEVICE=[路径]DRIVER.SYS /D:[数字]/F:9
其中:
/D:[数字]此处[数字]中的数字是指物理软驱,0代表A驱,1代表B驱。
/F:9此处数字9可以用其他数字代替,各数字意义如下:
0:代表单密160KB/180KB或320KB/360KB软驱;1:代表1.2M软驱;2:代表720KB软驱;3:代表8英寸单密软驱;4:代表8英寸的软驱;5:代表硬盘;6:代表磁带驱动器;7:代表1.44MB软驱;8:代表光驱;9:代表2.88MB软驱。
不过最简单的方法是,如果微机的CMOS配置中有2.88MB软驱的选项,则只要将软驱配置为2.88MB即可。
2.霉变软盘的处理
对已发生霉变的软盘,如果没啥重要数据,当然应毫不犹豫地扔掉。但对有些储存了重要数据的软盘,我们还是要想法修复。
对轻度霉变的磁盘,用脱脂棉蘸上少许录音机磁头请洗剂,从磁头读写口上轻轻擦拭可将磁霉斑擦去,再用干净的脱脂棉将盘面上的液珠擦干即可。而对于霉变比较严重的磁盘,则要先将磁片从封套中取出,放置于平整、干净的白纸上,再用录音机磁头清洗剂擦拭整个盘面,用干净的脱脂棉吸干清洗剂液珠。然后换一张白纸,再清洗另一面。待磁盘清洗干净后,再重新装入封套中。用无水酒精(化学纯或分析纯)、丙酮代替录音机磁头清洗剂,效果也很好。要注意的是:操作中不要使用金属器具,最好戴上薄手套,以避免与磁盘直接接触。大多数经过处理后的磁盘,可以恢复大部分数据。
3.软驱故障导致读盘失败
如果出现无法读绝大多数或是全部的软盘、无法格式化、有异常声响等现象,就很可能是因为软驱硬件故障导致软盘数据无法正常读出了,可能性很多,但肯定是软驱硬件有故障,建议更换。另外有些软盘在某台软驱上读不出,换台机器就OK了的情况也是经常遇到的。
最后提醒大家一点,软盘的可靠性是很差的,千万不要把重要数据只存放在一张软盘中,存有重要数据的软盘一定要做好它的备份工作,并且要将它写保护,以防误操作而造成数据的丢失。
本文提到的Badcopy、HD-copy之类的软件大家可以到http://www.esoftware.com.cn/file/system/disktool/2000121201.shtml、http://www.esoftware.com.cn/file/fmanager/mirror/100071204.shtml网站搜索下载。