2024年2月21日发(作者:)
硬盘维修原理
有人都说硬盘怎么能修的好,那修好了也不是很容易坏吗?!
其实硬盘是可以修好的。如果你的水平高的话,修好的硬盘也不会那么容易坏的。
修理的原理有2种:
1 用lformat,hp,adm,dm,wipinfo,ndd这些软件是把坏道修成G-list增长坏道列表中的。这个其实是一般的修理方法,这种方法那,比较容易掌握,也是普通人都是可以搞定的。但是G-list列表的空间不是很大的,也就是500-700个之间的空间吧,如果硬盘坏道超过这个数字后,坏道就不能加入G-list列表了,也就是修不好了。这种方法修好的坏道,也是对文件是没有影响的,因为它是修复成增长行坏道表中去了,系统是不可能访问他们的。
2 用专业的软件和设备来修理。本网站上有相关的设备。
这个修理的原理是把硬盘的物理坏道屏蔽成工厂坏道P-list列表中去的。
其实每个新的硬盘的盘片上都是有坏道的,只是厂家经过的特殊的手段,把它屏蔽掉了。这样你们用普通的软件是查看不到的。因为那些不是专业的软件(用hp的软件就可以查看到昆腾硬盘的P坏道列表,你们有兴趣的可以下载一个去看看)。问什么一定要把坏道屏蔽到p-list中呢,把它屏蔽到G列表中不就是行了吗!但是一个硬盘的坏道是很多的,一般都是1000个左右和以上,G列表的大小有限制的,不大。p列表就大的多了,一般都是4000个左右和以上,空间的大小和硬盘牌子和硬盘的容量有直接的关系,硬盘容量越大p列表就
越大。屏蔽到p列表中才可以修好更多的硬盘吗!
以上就是修好一个硬盘的原理,知道这个原理呢,就知道修硬盘是怎么回事了。
关于专业的具体修理,请浏览专业的维修设备相关的资料。
昆腾la lb lc硬盘的通病
昆腾公司这三款硬盘比较容易损坏,主要是电路板上的芯片发热严重,导致不稳定和烧毁,tda5247这个芯片,现象表现为在工作的途中,突然嗒的一声响和连续哒哒的响声,有时转但不认盘,有时干脆就不转。如果用an8428ngak代换上它的话,性能会稳定很多.
在用个几年是没有问题的!
IBM硬盘维修
关于IBM硬盘损坏案例,很多人都亲身体验过。下面这篇文章,就针对IBM 60GXP 和75GXP型号的硬盘的普遍故障;
IBM硬盘损坏的一个普遍故障,大多是出现在使用一段时间后,硬盘突然有怪声出现,然后磁盘开始出现坏道。最后经过IBM drive fitness
tester 工具等一些手段的修复,或是坏道消失(从技术层面上讲,我们怀疑它是真的“消失”抑或是一种屏蔽手段)但数据全无,或是进入一个使用不稳定阶段,或是完全报废无法再使用,而“怪声”的出现几乎在是所有损坏案例中共有的一个情况。
IBM 公司官方技术员的解释:
故障是由于用户使用“不合理”造成,并非硬盘品质问题:
奇怪的哒哒声(特别是启动中),是由于用户在安装硬盘时插电源线时太用力,使电路板错位导致电路板与盘体数据接触点(电源口附近)移位,从而造成磁头不能正常“走位”,这是IBM硬盘电路板做工最精细带来的“附作用”。手动校正电路板位置可处理此问题。
今天没事,按照官方的解释和解决问题的思路,拿起电烙铁折腾了俩小时,我的两个IBM 硬盘暂时 好用了。不敢藏私,就又找来一个IBM同样故障的硬盘,把我解决这个故障的全过程拍照记录下来,请大家参考。
首先,是准备过程。好的策划准备和一套好的维修工具可以使维修过程顺利进行,起到事半功倍的效果。
IBM DFT 软件
IBM DFT 软件,可以从IBM 官方主页下载,或者在 google 中以 "IBM Drive Fitness Test " 为关键词搜索。当前最新版本为 3.40.
IBM在对其功能的描述中叙述到:
[iduba_page]
支持SCSI和IDE硬盘;
对IBM的硬盘做即时分析,并能快速判定硬盘是否有问题;
判断是否存在系统故障,诸如是否温度过高,是否有接线错误等;
自动记录重要的硬盘参数,以便跟踪在操作中对硬盘的潜在冲击;
拯救硬盘,包括擦除启动扇区和低级格式化;
对IDE硬盘作S.M.A.R.T(self-monitoring analysis and reporting Technology自我监控,分析和记录技术)操作。
下载后运行,按操作指示建立了一张含DFT utilities的开机盘
磁盘阵列(Disk Array)原理
1.为什么需要磁盘阵列?
如何增加磁盘的存取(access)速度,如何防止数据因磁盘的故障而失落及如何有效的利用磁盘空间,一直是电脑专业人员和用户的困扰;而笕萘看排痰募鄹穹浅0汗?对用户形成很大的负担。磁盘阵列技术的产生一举解决了这些问题。
过去十几年来,CPU的处理速度增加了五十倍有多,内存(memory)的存取速度亦大幅增加,而数据储存装置--主要是磁盘(hard disk)--的存取速度只增加了三、四倍,形成电脑系统的瓶颈,拉低了电脑系统的整体性能(through put),若不能有效的提升磁盘的存取速度,CPU、内存及磁盘间的不平衡将使CPU及内存的改进形成浪费。
目前改进磁盘存取速度的的方式主要有两种。一是磁盘快取控制(disk cache controller),它将从磁盘读取的数据存在快取内存(cache memory)中以减少磁盘存取的次数,数据的读写都在快取内存中进行,大幅增加存取的速度,如要读取的数据不在快取内存中,或要写数据到磁盘时,才做磁盘的存取动作。这种方式在单工环境(single- tasking envioronment)如DOS之下,对大量数据的存取有很好的性能(量小且频繁的存取则不然),但在多工(multi-tasking)环境之下(因为要不停的作数据交换(swapping) 的动作)或数据库(database)的存取(因为每一记录都很小)就不能显示其性能。这种方式没有任何安全保障。
其二是使用磁盘阵列的技术。磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率。磁盘阵列所利用的不同的技术,称为RAID
level,不同的level针对不同的系统及应用,以解决数据安全
的问题。
一般高性能的磁盘阵列都是以硬件的形式来达成,进一步的把磁盘快取控制及磁盘阵列结合在一个控制器(RAID controler或控制卡上,针对不同的用户解决人们对磁盘输出入系统的四大要求:
(1)增加存取速度,
(2)容错(fault tolerance),即安全性
(3)有效的利用磁盘空间;
(4)尽量的平衡CPU,内存及磁盘的性能差异,提高电脑的整体工作性能。
2.磁盘阵列原理
磁盘阵列中针对不同的应用使用的不同技术,称为RAID level,RAID是Redundent Array of Inexpensive Disks的缩写,而每一level代表一种技术,目前业界公认的标准是RAID 0~RAID 5。这个level并不代表技术的高低,level 5并不高于level 3,level 1也不低过level 4,至于要选择那一种RAID level的产品,纯视用户的操作环境(operating environment)及应用(application)而定,与level的高低没有必然的关系。
RAID 0及RAID 1适用于PC及PC相关的系统如小型的网络服务器(network server)及需要高磁盘容量与快速磁盘存取的工作站等,比较便宜;RAID 3及RAID 4适用于大型电脑及影像、CAD/CAM等处理;RAID 5多用于OLTP(在线事务处理),因有金融机构及大型数据处理中心的迫切需要,故使用较多而较有名气, RAID 2较少使用,其他如RAID 6,RAID 7,乃至RAID 10等,都是厂商各做各的,并无一致的标准,在此不作说明。介绍各个RAID level之前, 先看看形成磁盘阵列的两个基本技术:
磁盘延伸(Disk Spanning):
译为磁盘延伸,能确切的表示disk spanning这种技术的含义。如图磁盘阵列控制器, 联接了四个磁盘,这四个磁盘形成一个阵列(array),而磁盘阵列的控制器(RAID controller)是将此四个磁盘视为单一的磁盘,如DOS环境下的C:盘。这是disk spanning的意义,因为把小容量的磁盘延伸为大容量的单一磁盘,用户不必规划数据在各磁盘的分布,而且提高了磁盘空间的使用率。并使磁盘容量几乎可作无限的延伸;而各个磁盘一起作取存的动作,比单一磁盘更为快捷。很明显的,有此阵列的形成而产生RAID的各种技术。
磁盘或数据分段(Disk Striping or Data Striping):
因为磁盘阵列是将同一阵列的多个磁盘视为单一的虚拟磁盘(virtual disk),所以其数据是以分段(block or segment)的方式顺序存放在磁盘阵列中,数据按需要分段,从第一个磁盘开始放,放到最後一个磁盘再回到第一个磁盘放起,直到数据分布完毕。至于分段的大小视系统而定,有的系统或以1KB最有效率,或以4KB,或以6KB,甚至是4MB或8MB的,但除非数据小于一个扇区(sector,即521bytes),否则其分段应是512byte的倍数。因为磁盘的读写是以一个扇区为单位,若数据小于512bytes,系统读取该扇区后,还要做组合或分组(视读或写而定)的动作,浪费时间。从上图我们可以看出,数据以分段于在不同的磁盘,整个阵列的各个磁盘可同时作读写,故数据分段使数据的存取有最好的效率,理论上本来读一个包含四个分段的数据所需要的时间约=(磁盘的access time+数据的tranfer time)X4次,现在只要一次就可以完成。
若以N表示磁盘的数目,R表示读取,W表示写入,S表示可使用空间,则数据分段的性能为:
R:N(可同时读取所有磁盘)
W:N(可同时写入所有磁盘)
S:N(可利用所有的磁盘,并有最佳的使用率)
Disk striping也称为RAID 0,很多人以为RAID 0没有甚么,其实这是非常错误的观念, 因为RAID 0使磁盘的输出入有最高的效率。而磁盘阵列有更好效率的原因除数据分段外,它可以同时执行多个输出入的要求,因为阵列中的每一个磁盘都能独立动作,分段放在不同的磁盘,不同的磁盘可同时作读写,而且能在快取内存及磁盘作并行存取(parallel access)的动作,但只有硬件的磁盘阵列才有此性能表现。
从上面两点我们可以看出,disk spanning定义了RAID的基本形式,提供了一个便宜、灵活、高性能的系统结构,而disk striping解决了数据的存取效率和磁盘的利用率问题,RAID 1至RAID 5是在此基础上提供磁盘安全的方案。
RAID 1
RAID 1是使用磁盘镜像(disk mirroring)的技术。磁盘镜像应用在RAID 1之前就在很多系统中使用,它的方式是在工作磁盘(working disk)之外再加一额外的备份磁盘(backup disk),两个磁盘所储存的数据完全一样,数据写入工作磁盘的同时亦写入备份磁盘。磁盘镜像不见得就是RAID 1,如Novell Netware亦有提供磁盘镜像的功能,但并不表示Netware有了RAID 1的功能。一般磁盘镜像和RAID 1有二点最大的不同:
RAID 1无工作磁盘和备份磁盘之分,多个磁盘可同时动作而有重叠(overlaping)读取的功能,甚至不同的镜像磁盘可同时作写入的动作,这是
一种最佳化的方式,称为负载平衡(load-balance)。例如有多个用户在同一时间要读取数据,系统能同时驱动互相镜像的磁盘,同时读取数据,以减轻系统的负载,增加I/O的性能。
RAID 1的磁盘是以磁盘延伸的方式形成阵列,而数据是以数据分段的方式作储存,因而在读取时,它几乎和RAID 0有同样的性能。从RAID的结构就可以很清楚的看出RAID 1和一般磁盘镜像的不同。
下图为RAID 1,每一笔数据都储存两份:
从图可以看出:
R:N(可同时读取所有磁盘)
W:N/2(同时写入磁盘数)
S:N/2(利用率)
读取数据时可用到所有的磁盘,充分发挥数据分段的优点;写入数据时,因为有备份,所以要写入两个磁盘,其效率是N/2,磁盘空间的使用率也只有全部磁盘的一半。
很多人以为RAID 1要加一个额外的磁盘,形成浪费而不看好RAID 1,事实上磁盘越来越便宜,并不见得造成负担,况且RAID 1有最好的容错(fault tolerence)能力,其效率也是除RAID 0之外最好的。
在磁盘阵列的技术上,从RAID 1到RAID 5,不停机的意思表示在工作时如发生磁盘故障, 系统能持续工作而不停顿,仍然可作磁盘的存取,正常的读写数据;而容错则表示即使磁盘故障,数据仍能保持完整,可让系统存取到正确的数据,而SCSI的磁盘阵列更可在工作中抽换磁盘,并可自动重建故障磁盘的数据。磁盘阵列之所以能做到容错及不停机, 是因为它有冗余的磁盘空间可资利用,这也就是Redundant的意义。
RAID 2
RAID 2是把数据分散为位(bit)或块(block),加入海明码Hamming Code,在磁盘阵列中作间隔写入(interleaving)到每个磁盘中,而且地址(address)都一样,也就是在各个磁盘中,其数据都在相同的磁道(cylinder or track)及扇区中。RAID 2的设计是使用共轴同步(spindle synchronize)的技术,存取数据时,整个磁盘阵列一起动作,在各作磁
盘的相同位置作平行存取,所以有最好的存取时间(accesstime),其总线(bus)是特别的设计,以大带宽(band wide)并行传输所存取的数据,所以有最好的传输时间(transfer time)。在大型档案的存取应用,RAID 2有最好的性能,但如果档案太小,会将其性能拉下来,因为磁盘的存取是以扇区为单位,而RAID 2的存取是所有磁盘平行动作,而且是作
单位元的存取,故小于一个扇区的数据量会使其性能大打折扣。RAID 2是设计给需要连续且大量数据的电脑使用的,如大型电脑(mainframe
to supercomputer)、作影像处理或CAD/CAM的工作站(workstation)等,并不适用于一般的多用户环境、网络服务器 (network server),小型机或PC。
RAID 2的安全采用内存阵列(memory array)的技术,使用多个额外的磁盘作单位错误校正(single-bit correction)及双位错误检测(double-bit
detection);至于需要多少个额外的磁盘,则视其所采用的方法及结构而定,例如八个数据磁盘的阵列可能需要三个额外的磁盘,有三十二个数据磁盘的高档阵列可能需要七个额外的磁盘。
RAID 3
RAID 3的数据储存及存取方式都和RAID 2一样,但在安全方面以奇偶校验(parity check)取代海明码做错误校正及检测,所以只需要一个额外的校检磁盘(parity disk)。奇偶校验值的计算是以各个磁盘的相对应位作XOR的逻辑运算,然后将结果写入奇偶校验磁盘,任何数据的修改都要做奇偶校验计算,
如某一磁盘故障,换上新的磁盘后,整个磁盘阵列(包括奇偶校验磁盘)需重新计算一次, 将故障磁盘的数据恢复并写入新磁盘中;如奇偶校验磁盘故障,则重新计算奇偶校验值, 以达容错的要求.
较之RAID 1及RAID 2,RAID 3有85%的磁盘空间利用率,其性能比RAID 2稍差,因为要做奇偶校验计算;共轴同步的平行存取在读档案时
有很好的性能,但在写入时较慢,需要重新计算及修改奇偶校验磁盘的内容。RAID 3和RAID 2有同样的应用方式,适用大档案及大量数据输出入的应用,并不适用于PC及网络服务器。
RAID 4
RAID 4也使用一个校验磁盘,但和RAID 3不一样
RAID 4是以扇区作数据分段,各磁盘相同位置的分段形成一个校验磁盘分段(parity block),放在校验磁盘。这种方式可在不同的磁盘平行执行不同的读取命今,大幅提高磁盘阵列的读取性能;但写入数据时,因受限于校验磁盘,同一时间只能作一次,启动所有磁盘读取数据形成同一校验分段的所有数据分段,与要写入的数据做好校验计算再写入。即使如此,小型档案的写入仍然比RAID 3要快,因其校验计算较简单而非作位(bit level)的计算;但校验磁盘形成RAID 4的瓶颈,降低了性能,因有RAID 5而使得RAID 4较少使用。
RAID 5
RAID5避免了RAID 4的瓶颈,方法是不用校验磁盘而将校验数据以循环的方式放在每一个磁盘中,
磁盘阵列的第一个磁盘分段是校验值,第二个磁盘至后一个磁盘再折回第一个磁盘的分段是数据,然后第二个磁盘的分段是校验值,从第三个磁盘再折回第二个磁盘的分段是数据,以此类推,直到放完为止。图中的第一个parity block是由,B1,B2计算出来,第二个parity block是由B3,B4,...,C4,D0计算出来,也就是校验值是由各磁盘
同一位置的分段的数据所计算出来。这种方式能大幅增加小档案的存取性能,不但可同时读取,甚至有可能同时执行多个写入的动作,如可写入数据到磁盘1而其parity block在磁盘2,同时写入数据到磁盘4而其parity block在磁盘1,这对联机交易处理 (OLTP,On-Line Transaction
Processing)如银行系统、金融、股市等或大型数据库的
处理提供了最佳的解决方案(solution),因为这些应用的每一笔数据量小,磁盘输出入频繁而且必须容错。
事实上RAID 5的性能并无如此理想,因为任何数据的修改,都要把同一parityblock的所有数据读出来修改后,做完校验计算再写回去,也就是RMW cycle(Read-Modify-Write cycle,这个cycle没有包括校验计算);正因为牵一而动全身,所以:
R:N(可同时读取所有磁盘)
W:1(可同时写入磁盘数)
S:N-1(利用率)
RAID 5的控制比较复杂,尤其是利用硬件对磁盘阵列的控制,因为这种方式的应用比其他的RAID level要掌握更多的事情,有更多的输出入需求,既要速度快,又要处理数据,计算校验值,做错误校正等,所以价格较高;其应用最好是OLTP,至于用于图像处理等, 不见得有最佳的性能。
2.磁盘阵列的额外容错功能:Spare or Standby driver
事实上容错功能已成为磁盘阵列最受青睐的特性,为了加强容错的功能以及使系统在磁盘故障的情况下能迅速的重建数据,以维持系统的性能,一般的磁盘阵列系统都可使用热备份(hot spare or hot standby driver)的功能,所谓热备份是在建立(configure) 磁盘阵列系统的时候,将其中一磁盘指定为后备磁盘,此一磁盘在平常并不操作,但若阵列中某一磁盘发生故障时,磁盘阵列即以后备磁盘取代故障磁盘,并自动将故障磁盘的数据重建(rebuild)在后备磁盘之上,因为反应快速,加上快取内存减少了磁盘的存取, 所以数据重建很快即可完成,对系统的性能影响很小。对于要求不停机的大型数据处理中心或控制中心而言,热备份更是一项重要的功能,因为可避免晚间或无人值守时发生磁盘故障所引起的种种不便。
另一个额外的容错功能是坏扇区转移(bad sector reassignment)。坏扇区是磁盘故障的主要原因,通常磁盘在读写时发生坏扇区的情况即表示此磁盘故障,不能再作读写,甚至有很多系统会因为不能完成读写的动作而死机,但若因为某一扇区的损坏而使工作不能完成或要更换磁盘,则使得系统性能大打折扣,而系统的维护成本也未免太高了。坏扇区转移是当磁盘阵列系统发现磁盘有坏扇区时,以另一空白且无故障的扇区取代该扇区, 以延长磁盘的使用寿命,减少坏磁盘的发生率以及系统的维护成本。所以坏扇区转移功能使磁盘阵列具有更好的容错性,同时使整个系统有最好的成本效益比。其他如可外接电池备援磁盘阵列的快取内存,以避免突然断电时数据尚未写回磁盘而损失;或在RAID 1时作写入一致性的检查等,虽是小技术,但亦不可忽视。
3.硬件磁盘阵列还是软件磁盘阵列
市面上有所谓硬件磁盘阵列与软件磁盘阵列之分,因为软件磁盘阵列是使用一块SCSI卡与磁盘连接,一般用户误以为是硬件磁盘阵列。以上所述主要是针对硬件磁盘阵列,其与软件磁盘阵列有几个最大的区别:
l 一个完整的磁盘阵列硬件与系统相接。
l 内置CPU,与主机并行运作,所有的I/O都在磁盘阵列中完成,减轻主机的工作负载, 增加系统整体性能。
l 有卓越的总线主控(bus mastering)及DMA(Direct Memory Access)能力,加速数据的存取及传输性能。
l 与快取内存结合在一起,不但增加数据的存取及传输性能,更因减少对磁盘的存取而增加磁盘的寿命。
l 能充份利用硬件的特性,反应快速。
软件磁盘阵列是一个程序,在主机执行,透过一块SCSI卡与磁盘相接形成阵列,它最大的优点是便宜,因为没有硬件成本(包括研发、生产、维护等),而SCSI卡很便宜(亦有的软件磁盘阵列使用指定的很贵的SCSI卡);它最大的缺点是使主机多了很多进程(process),增加了主机的负担,尤其是输出入需求量大的系统。目前市面上的磁盘阵列
系统大部份是硬件磁盘阵列,软件磁盘阵列较少。
4.磁盘阵列卡还是磁盘阵列控制器
磁盘阵列控制卡一般用于小系统,供单机使用。与主机共用电源,在关闭主机电源时存在丢失Cache中的数据的的危险。磁盘阵列控制卡只有常用总线方式的接口,其驱动程序与主机、主机所用的操作系统都有关系,有软、硬件兼容性问题并潜在地增加了系统的不安定因素。在更换磁盘阵列卡时要冒磁盘损坏,资料失落,随时停机的风险。
独立式磁盘阵列控制一般用于较大型系统,可分为两种:
单通道磁盘阵列和多通道式磁盘阵列,单通道磁盘阵列只能接一台主机,有很大的扩充限制。多通道磁盘阵列可接多个系统同时使用,以群集(cluster)的方式共用磁盘阵列,这使内接式阵列控制及单接式磁盘阵列无用武之地。目前多数独立形式的磁盘阵列子系统,其本身与主机系统的硬件及操作环境?
--
首先,IDE的性能不会比SCSI更高的。特别是在多任务的情况下。一般广告给出的是
最大传送速度,并不是工作速度。同一时期的IDE与SCSI盘相比,主要是产量比较大,
电路比较简单,所以价格比SCSI低很多,但要比性能,则差远了。
RAID并没有限制使用多少个盘,应时盘越多越好。
对于SCSI结构的RAID来说,盘的最大数量与SCSI通道(SCSI总线)的数量有关一般是每个通道最多装15个盘(SCSI/3)对于FC-AL(光纤)则是每个通道200个盘当然,要有这样大的磁盘箱才行!
美钻的硬盘推出后就问题多多,问题的表现也是千奇百怪的,主要表现为:
有正常自检的声音,不认盘,这找到一排硬盘的型号,没有容量。
有正常自检的声音,转一下就停转了。
这种美钻的故障也是出现的很多的,主要也是硬盘你的参数不正常或者丢失所至,修复方法也都是用专业的维修设备,把硬盘内部的资料恢复成为出厂的状态下就ok了。一般的软件维修方法,现在还在研究当中,期待中....
硬盘诊断要领
1.检查电源部是否供电
1) 与硬盘相连的电源接头(Connector)的中间的2插头是接地(ground)头,两边的接头各位+5V DC 和+12V DC。
2) 可通过spindle Motor是否转动来判断电源供应与否,如果转动就说明电源供电正常。
2. 连线(Cable)是否连接正确
1) Riborn Cable有颜色的部分一般时1所在的部分,第20pin是key.,因此没有pin。
2) 有电源的一边一般为1所在的一边。
3) 经常移动的硬盘或使用时间较长的计算机而言,更换连线(cable)来测试也是较好的方法,因为虽然连接部和外观上没有异常,但也可能因为接触阻力,noixe, 连接不良(poor connection)等问题而不能正常工作的情况也时有发生。
3. 检查设置(setting)
1) 检查是否根据使用数量和使用目的而正确设定Disk Select Jumper(Master/Slave)。
4.检查安装(set up)是否正确
-有自动检测(Auto Detection)功能的, 打开电源后用自动检测(Auto Detection)来识别硬盘。
1)如自动检测(Auto Detection)和硬盘初始化一切正常,可以认为除坏扇区等表面损伤外硬盘硬件基本正常。
2)找不到硬盘(自动检测(Auto Detection)不到)时,按照5以下步骤找到后,按照各自的要领分区(partition), 格式化(format), Surface
Analysis, NDD依次检查硬盘状况。
5.检查spidle motor是否转动
1)检查spindle motor是否转动时,供应电源并用手轻触磁盘得上盖(top cover), 可感觉到转动震动。 大部分硬盘驱动器发出转动声音。
2)Spindle Motor不转动的原因有
- 没有供应电源
- Board有损
- spindle Motor自身有损
- Stictiontiction
<参考〉
- spindle motor 不能启动,不能开始转动,达不到正常的转动速度,转动速度忽高忽低等的故障的修理过程也各不相同。
- 供应电源后spindle Motor开始转动后,如出现刮磨的声音,可说明磁片有刮痕或Head Slider 已破损。
- 如spindle Motor正常转动,但出现碰橦声或时而转动时而不转动,说明spindle 相关的机能基本正常,是在为了搜索(search)磁片上必要的数据而重试(retry)过程发生的现象,也叫Not Ready, 其原因是多方面综合造成的。
6. 检查磁头在初始化过程中是否正常
1)spindle speed达到正常速度(旧的驱动器需6-15秒,最新驱动器需2-6秒),磁头从里向外移动, 可用手来感觉到其初始化过程。
2) 达到这个状态以后,除坏扇区以外的80%-90%可达到ready状态。
7.利用HDD检测软件检查读/写功能和表面状态
1)没有HDD检测软件的情况下,可通过一般步骤来检查。?.
* Partition
* Format
* Scandisk, NDD等
2)表面状态不好或有坏扇区存在的情况下,要确定是否修复之后使用。
* 坏扇区较少并且不扩散的情况下,对使用没有大的影响。
DM的使用!
一般来说如果硬盘出现物理的故障是很难修复的,你唯一可以做的事情只有更换,但是在更换之前还有最后一个方法值得试试,那就是低级格式化。
低级格式化的作用是将空白的磁片划分一个个同心圆、半径不同的磁道,还将磁道划分为若干个扇区,每个扇区的容量为512字节。在这里要说明的是,低级格式化是硬盘高损耗的操作,将大大缩短硬盘的使用寿命,因此,如非十分必要,建议不要进行低级格式化。
以前要进行低级格式化有两种方法,一是通过主板BIOS中所支持的功能,但是现在的主板一般都不带有次项功能。或者使用专用的软件进行,其中DM就是其中一款。
默认启动DM是无法进行低级格式化的,你需要打开DM的高级菜单。可以在启动时加上参数“dm/m”或者在DM的主界面中按“Alt+M”切换到高级菜单。
选择菜单中的“(M)aintenance Options”,进入高级菜单。
然后选择“(U)tilities”,进入低级格式化界面。
接着选择你需要低级格式化的硬盘,如果你只有一个硬盘直接回车即可,如果有多个需要进行从中进行选择。
选择硬盘后,然后再选择“Low Level Format”,进行低级格式化。
这是会弹出警告的窗口,你需要按“Alt+C”进行确认。
确认之后,还会显示让你再次确认的窗口,选择“YES”。
选择完毕,就开始硬盘低级格式化的操作,其中用百分比显示进度。
低级格式化是很耗时间的事情,这个要依据你硬盘的大小以及硬盘损坏情况来定。
再次提醒大家,低级格式化是对硬盘有损坏的操作,不是万不得已最好不要进行
明明白白了解硬盘维修
BIOS:这是一个本不该出现在这里的一个术语,因为硬盘上没有它。
DSP:数字信号处理机,相当于主板上的CPU,现在的DSP中已经集成了IDE接口电路。它有两套接口:IDE接口,伺服机接口。有一套以上的总线。
FIREWARE:一套在运行在DSP里的软件。它一般的被存储在电板的ROM上,或者DSP内部的ROM内。这就是为什么一些ST的硬盘在换电板的同时要将电板上的那块ROM对应于它原来的盘体。以及QT相近的电板可以换DSP,所支持的盘体的系列改变的缘故。
G-LIST:坏道增长列表,一个被限制了大小的坏道列表,普通的软件就可以改变的它的内容。
P-LIST:坏道增长列表,一个没有限制的坏道列表,一般的软件改变不了。改硬盘的大小就是该这个列表。
隐藏磁道:记录着P-LIST,G-LIST.硬盘的S/N,型号,等。它的柱面编号时候负的。美钻的硬盘狂喜欢把它给搞丢了,所以导致硬盘转转停停。富士通的硬盘出现乱码也是的。
成为一个硬盘维修高手的的必要条件:懂精密机械,精密电子,电磁学,DSP,……………………等等
零磁道坏损的软、硬盘修复记
一、零磁道坏损的硬盘
病因:零磁道坏损
病情描述:朋友买了一台二手电脑,操作一段时间后,出了问题:无法启动,经实地调查:开机自检通过显示昆腾火球3.2G硬盘,C盘启动时出现“没有系统盘!”。 用A盘启动,运行Scan-disk,扫描C盘,发现第一簇出现坏簇,零磁道坏损。
手术方案:
1、拟乎用某电脑刊物1999年9月6日的文章“硬盘零磁道损坏的抢救”进行修复,但该法采用Pc-tools,要求只可胳膊于Fat32格式,且在D盘的大量重要文件。因零磁道坏损无法格式化C盘,又不忍心将其Fdisk重新分区为Fat16,将其重要文件毁之一旦,所以我只好采用其它方案。
2、采用PartitionMagoc(以下简称为PMagic)。它可以说是目前最专业的硬盘分区管理工具,可以十分方便地实现了硬盘的动态分区和无损分区。此次可利用它进行零磁道硬盘坏损的修复。
手术过程:
电脑从A盘启动,运行PMagic,在主界面上可以鼠标确定一个需要操作的分区(即其C盘),你有两种选择:
㈠ 为将FAT32转换回FAT16格式(最后点击的时候要选取“FAT32到FAT”这项),再按该文利用Pctools进行修复。
㈡ 为直接利用PMagic修复。推荐选择第二种。先在主界面上部的分区图表中先择分区,然后在这个图标上点击鼠标右键,并选择“调整容量/移动”这时将会看见一个窗口,拖动窗口上部左边的容量滑动条,这时下部的自由空间就会作出相应的变化。如果觉得鼠标拖动不是很准确,可以直接在对话框中键入需要释放的硬盘空间大小,等调整到一个合适的容量(当然越小越好)之后,按下“确定”按键,就可以在硬盘中多出一个小小自由空间了。这个自由空间包含坏损的零磁道在内,我们放弃使用它。另外,调整簇的大小还能够让硬盘空间的浪费程度降到最低点。然后,退出PMagic,重新格式化C盘,安装系统,大功告成。
二、零磁道坏损的软盘
病因:零磁道坏损。
病情描述:另一朋友使用软盘拷贝、备份文件,由于软盘使用频繁,经常出现软盘零磁道坏损,又不忍遗弃,已累积有50余张。虽说一张软盘值不了几个钱,但如果能变废为宝,通通修好加以利富。带着这50余张软盘(朋友已“慷慨”地全送给某了),某开始要动手术了。
手术过程:既然已经知道都是零磁道损坏,首先使用古老的Pctools看一下是否凑效。运行Pctools9.0,插入软盘,找找找……找不到软盘;改用Norton95,好容易按其要求一步一步操作(那可全是E文啊!),最后显示软盘修复完成。哈哈,试用一下,嗯……,还是“无法访问A:/,设备没有准备好”!莫非真的要把这50张软盘送入“回收站”?,无奈之中,想起用HDCopy for Windows这个软件格式化看看,说不定会……按1.44M格式化操作完成,“??依旧”。后来想干脆把它格式化为1.2M或XXXK算了,若成功倒也不错。这次我把它“格”成1.2M的软盘又重新按1.44M格式化了一次,你猜怎么着,成功了。格式化后的容量为1.39M,虽然少了几十K,但废物利用嘛。更何况某共有50张这样的软盘呢?
神奇的三茗硬盘医生
故障: 一台pc,系统是windows98。一天开机自检后屏幕出现"Type the
name of the command interperter (e.g.,c:)
c>_ "的提示 我哭!! 于是我用启动盘(软盘)启动机器,到是能引导,出现A:> 输入 C: 后再输入 dir命令,又出现了"Not ready reading
drive c" abort,retry,fail?_" 提示 ,不能进系统。我再哭 !!而且其他分区不见了。
处理: 用“三茗硬盘医生”中的修复硬盘功能修复硬盘,点一下回车问题解决了
故障硬盘数据拯救全攻略
为了有效地保存硬盘中的数据,除了经常性地进行备份工作以外,还要学会在硬盘出现故障时如何救活硬盘,或者从坏的区域中提取出有用的数据,把损失降到最小程度。
系统不认硬盘
系统从硬盘无法启动,从A盘启动也无法进入C盘,使用CMOS中的自动监测功能也无法
发现硬盘的存在。这种故障大都出现在连接电缆或IDE端口上,硬盘本身故障的可能性不大,可通过重新插接硬盘电缆或者改换IDE口及电缆等进行替换试验,就会很快发现故障的所在。如果新接上的硬盘也不被接受,一个常见的原因就是硬盘上的主从跳线,如果一条IDE硬盘线上接两个硬盘设备,就要分清楚主从关系。
CMOS引起的故障
CMOS中的硬盘类型正确与否直接影响硬盘的正常使用。现在的机器都支持“IDE Auto Detect”的功能,可自动检测硬盘的类型。当硬盘类型错误时,有时干脆无法启动系统,有时能够启动,但会发生读写错误。比如CMOS中的硬盘类型小于实际的硬盘容量,则硬盘后面的扇区将无法读写,如果是多分区状态则个别分区将丢失。还有一个重要的故障原因,由于目前的IDE都支持逻辑参数类型,硬盘可采用“Normal,LBA,Large”等,如果在一般的模式下安装了数据,而又在CMOS中改为其它的模式,则会发生硬盘的读写错误故障,因为其映射关系已经改变,将无法读取原来的正确硬盘位置。
主引导程序引起的启动故障
主引导程序位于硬盘的主引导扇区,主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的DOS或其他操作系统。此段程序损坏将无法从硬盘引导,但从软驱或光驱启动之后可对硬盘进行读写。修复此故障的方法较为简单,使用高版本DOS的FDISK最为方便,当带参数/mbr运行时,将直接更换(重写)硬盘的主引导程序。实际上硬盘的主引导扇区正是此程序建立的,之中包含有完整的硬盘主引导程序。虽然DOS版本不断更新,但硬盘的主引导程序一直没有变化,从DOS 3.x到Windos 95的DOS,只要找到一种DOS引导盘启动系统并运行此程序即可修复。
分区表错误引发的启动故障
分区表错误是硬盘的严重错误,不同的错误程度会造成不同的损失。如果是没有活动分区标志,则计算机无法启动。但从软驱或光驱引导系统后可对硬盘读写,可通过FDISK重置活动分区进行修复。
如果是某一分区类型错误,可造成某一分区的丢失。分区表的第四个字节为分区类型值,正常的可引导的大于32MB的基本DOS分区值为06,而扩展的DOS分区值是05。很多人利用此类型值实现单个分区的加密技术,恢复原来的正确类型值即可使该分区恢复正常。
分区表中还有其它数据用于记录分区的起始或终止地址。这些数据的损坏将造成该分区的混乱或丢失,可用的方法是用备份的分区表数据重新写回,或者从其它的相同类型的并且分区状况相同的硬盘上获取分区表数据。
恢复的工具可采用NU等工具软件,操作非常方便。当然也可采用DEBUG进行操作,但操作繁琐并且具有一定的风险。
分区有效标志错误的故障
在硬盘主引导扇区中还存在一个重要的部分,那就是其最后的两个字节:“55aa”,此字节为扇区的有效标志。当从硬盘、软盘或光盘启动时,将检测这两个字节,如果存在则认为有硬盘存在,否则将不承认硬盘。此处可用于整个硬盘的加密技术,可采用DEBUG方法进行恢复处理。另外,当DOS引导扇区无引导标志时,系统启动将显示为:“Mmissing Operating System”。方便的方法是使用下面的DOS
系统通用的修复方法。
DOS引导系统引起的启动故障
DOS引导系统主要由DOS引导扇区和DOS系统文件组成。系统文件主要包括、、,其中是DOS的外壳文件,可用其它的同类文件替换,但缺省状态下是DOS启动的必备文件。在Windows 95携带的DOS系统中,是一个文本文件,是启动Windows必须的文件,但只启动DOS时可不用此文件。DOS引导出错时,可从软盘或光盘引导系统后使用SYS C:命令传送系统,即可修复故障,包括引导扇区及系统文件都可自动修复到正常状态。
FAT表引起的读写故障
FAT表记录着硬盘数据的存储地址,每一个文件都有一组FAT链指定其存放的簇地址。FAT表的损坏意味着文件内容的丢失。庆幸的是DOS系统本身提供了两个FAT表,如果目前使用的FAT表损坏,可用第二个进行覆盖修复。但由于不同规格的磁盘其FAT表的长度及第二个FAT表的地址也是不固定的,所以修复时必须正确查找其正确位置,一些工具软件如NU等本身具有这样的修复功能,使用也非常的方便。采用DEBUG也可实现这种操作,即采用其m命令把第二个FAT表移到第一个表处即可。如果第二个FAT表也损坏了,则也无法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用CHKDSK或SCANDISK命令进行修复,最终得到*.CHK文件,这便是丢失FAT链的扇区数据。如果是文本文件则可从中提取出完整的或部分的文件内容。
目录表损坏引起的引导故障
目录表记录着硬盘中文件的文件名等数据,其中最重要的一项是该文件的起始簇号。目录表由于没有自动备份功能,所以如果目录损坏将丢失大量的文件。一种减少损失的方法也是采用CHKDSK或SCANDISK程序恢复的方法,从硬盘中搜索出*.CHK文件,由于目录表损坏时仅是首簇号丢失,每一个*.CHK文件即是一个完整的文件,把其改为原来的名字即可恢复大多数文件。
误删除分区时数据的恢复
当用FDISK删除了硬盘分区之后,表面上是硬盘中的数据已经完全消失,在未格式化时进入硬盘会显示为无效驱动器。如果了解FDISK的工作原理,就会知道FDISK只是重新改写了硬盘的主引导扇区(0面0道1扇区)中的内容,具体说就是删除了硬盘分区表信息,而硬盘中的任何分区的数据均没有改变。可仿照上述的分区表错误的修复方法,即想办法恢复分区表数据即可恢复原来的分区及数据。如果已经对分区格式化,在先恢复分区后,可按下面的方法恢复分区数据。
误格式化硬盘数据的恢复
在DOS高版本状态下,FORMAT格式化操作在缺省状态下都建立了用于恢复格式化的磁盘信息,实际上是把磁盘的DOS引导扇区、FAT分区表及目录表的所有内容复制到了磁盘的最后几个扇区中(因为后面的扇区很少使用),而数据区中的内容根本没有改变。这样通过运行UNFORMAT命令即可恢复。另外DOS还提供了一个MIROR命令用于记录当前磁盘的信息,供格式化或删除之后的恢复使用,此方法也比较有效
硬盘软故障完全修复手册——数据结构篇
硬盘是计算机中极为重要的存储设备,计算机工作所用到的全部文件系统和数据资料的绝大多数都存储在硬盘中。硬盘是产生计算机软故障最主要的地方,常见的硬盘软故障有:硬盘重要参数及文件丢失,电脑不能起动;碎片过多,电脑运行速度变慢;硬盘分区后丢失容量等。对付硬盘软故障,只要我们肯动脑并利用一些硬盘维护工具,发挥一不怕苦、二不怕(硬盘)死的革命精神,外加胆大心细,当然还要掌握硬盘基本常识,这样就可以轻松搞定(说的容易、做起来可不简单 )。因此,我收集了大量的资料整理汇编了“硬盘软故障完全修复手册”,希望能在与大家一起学习的过程中掌握硬盘常见故障的排除方法,做到“自已动手、丰衣足食”,凡事不求人的目的。
大家知道,一个硬盘要能存放文件,必须经过硬盘分区,格式化等操作步骤,因为经过这些步骤之后,在硬盘中就建立起了主分区,引导分区,确定了FAT16或FAT32文件表。主分区的作用是保存硬盘中各逻辑分区在盘片上起始位置和终止位置及分区的容量大小。引导分区的作用是在固定的位置存放有操作系统文件,在电脑送电或复位时,由BIOS程序将处于固定位置的系统文件装入内存,再将电脑控制权交给系统文件人而完成引导过程。扩展分区作为一个主分区占用了主分区表的一个表项。在扩展分区起始位置所指示的扇区(即该分区的第一个扇区)中,包含有第一个逻辑分区表,同样从1BEH字节开始,每个分区表项占用16个字节。逻辑分区表一般包含两个分区表项,一个指向某逻辑分区,另一个则指向下一个扩展分区。下一个扩展分区的首扇区又包含了一个逻辑分区表,
这样以此类推,扩展分区中就可以包含多个逻辑分区。下面我们就来学习一下硬盘数据的基本结构。
★ 硬盘的数据结构 ★
① MBR(Main Boot Record 主引导记录区)
MBR位于整个硬盘的0磁道0柱面1扇区,包括硬盘引导程序和分区表。在总共512字节的硬盘主引导扇区中,MBR只占用了其中的446个字节,其最后两个字节“55 AA”是分区的结束标志。另外的64个字节交给了DPT(Disk Partition Table 硬盘分区表),从1BEH字节开始,共占用64个字节,包含四个分区表项。每个分区表项的长度为16个字节,它包含一个分区的引导标志、系统标志、起始和结尾的柱
面号、扇区号、磁头号以及本分区前面的扇区数和本分区所占用的扇区数。其中“引导标志”表明此分区是否可引导,即是否活动分区。当引导标志为“80”时,此分区为活动分区;“系统标志”决定了该分区的类型,如“06”为FAT16分区,“0B”为FAT32分区,“07”为NTFS分区,“63”为UNIX分区,等;起始和结尾的柱面号、扇区号、磁头号指明了该分区的起始和终止位置。
我们假设一个硬盘分区表从1BEH字节开始的16个字节为 80 01 01 00 06 0D 68 6D 28 00 00 00 78 20 03 00
硬盘分区表项的16个字节分配如下:
第1字节:是一个分区的激活标志,表示系统可引导。如是0则表示非活动分区。
第2字节:该分区起始磁头(HEAD)号
第3字节:该分区起始扇区(Sector)号
第4字节:该分区起始的柱面(Cylinder)号
第5字节:该分区系统类型标志
第6—8字节:该分区终止磁头(HEAD)号、分区结束的扇区号、分区结束的柱面号
第9-12字节:该分区首扇区的相对扇区号
第13-16字节:该分区占用的扇区总数
以上参数我们可以用NU 8.0中DISKEDIT工具软件可轻松获取,其功能非常强大,但应用不当会有很大错误,请各位注意使用方法。操作步骤如下:
以一台硬盘为270 MB,分为C盘(100 MB)和D盘(170 MB)的机子(老掉牙了 ^_^)为例,在纯DOS下启动DISKEDIT → 在对象菜单(Object)上选中驱动器(Drive)和物理磁盘选项后确定 → 在对象菜单(Object)上选中分区表(Partition Table) → 在显示菜单(View)中选择十六进制(Hex)
以下数据为主分区信息:
000001B0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 80 01
000001C0: 01 00 06 0D 68 6D 28 00 - 00 00 78 20 03 00 00 00
000001D0: 41 6E 05 0D E8 AE A0 20 - 03 00 30 EE 04 00 00 00
000001E0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00
000001F0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 55 AA
② DBR(Dos Boot Record 操作系统引导记录区)
它通常位于硬盘的0磁道1柱面1扇区,是操作系统可直接访问的第一个扇区,它包括一个引导程序和一个被称为BPB(BIOS Parameter
Block)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区跟目录前两个文件是不是操作系统的引导文件(以DOS为例,即是和)。如果确定存在,就把它们读入内存,并把控制权交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元的大小等重要参数。DBR是由高级格式化程序(即Format等程序)所产生的。
③ FAT(File Allocation Table 文件分配表)
FAT是DOS、Windows 9X系统的文件寻址格式,位于DBR之后。
在解释文件分配表的概念的时候,我们有必要谈谈簇(Cluster)的概念。文件占用磁盘空间,基本单位不是字节而是簇。一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64……
同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。
为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以为了安全起见,FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为“未占用”,但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中标为“坏簇”,以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见的是FAT16和FAT32。
④ DIR (Directory 根目录区)
DIR位于第二个FAT表之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。
⑤ DATA(数据区)
数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘的大部分空间。当将数据复制到硬盘时,数据就存放在DATA区。
分区表损坏的修复
硬盘主引导记录所在的扇区也是病毒重点攻击的地方,通过破坏主引导扇区中的DPT(分区表),即可轻易地损毁硬盘分区信息。分区表的损坏通常来说不是物理损坏,而是分区数据被破坏。因此,通常情况下,可以用软件来修复。
通常情况下,硬盘分区之后,备份一份分区表至软盘、光盘或者USB盘上是极为明智的。这个方面,国内著名的杀毒软件KV3000系列和瑞星都提供了完整的解决方案。另外,对于没有备份分区表的硬盘,也提供了相应的修复方法,不过成功率相对较低。
另外,中文磁盘工具DiskMan在这方面也是行家里手。重建分区表作为它的一个“杀手锏”功能,非常适合用来修复分区表损坏。
对于硬盘分区表被分区调整软件(或病毒)严重破坏,引起硬盘和系统瘫痪,DiskMan可通过未被破坏的分区引导记录信息重新建立分区表。在菜单的工具栏中选择“重建分区表”,DiskMan即开始搜索并重建分区。DiskMan将首先搜索0柱面0磁头从2扇区开始的隐含扇区,寻找被病毒挪动过的分区表。接下来搜索每个磁头的第一个扇区。搜索过程可以采用“自动”或“交互”两种方式进行。自动方式保留发现的每一个分区,适用于大多数情况。交互方式对发现的每一个分区都给出提示,由用户选择是否保留。当自动方式重建的分区表不正确时,可以采用交互方式重新搜索。
但是,需要注意的是,重建分区表功能不能做到百分之百的修复分区表,除非你以前曾经备份过分区表,然后通过还原以前备份的分区表来修复分区表损坏。因此可见,平时备份一份分区表是多么的必要!
十年积累,硬盘分区,文件全手工恢复新鲜出炉了
最近经常见有很多硬盘分区表及硬盘数据被破坏而导致机器不能引导或使用的帖子,本着扶危济困的人道主义精神,和近十年的电脑龄以及之前成功修复N(N约等于10)块硬盘的经验特发一帖,系统讲述硬盘软故障恢复的方法,望大家不吝伺教!
注:所有前提是硬盘没有物理损坏,以DISKEDIT(诺顿2.0 for windows中获取),DISKMAN(华军软件园),NORTON(D版),UNFOMAT(其它兼容的反格式化软件也可)等软件为基础,如果多少精通一下下汇编就再理想不过啦!呵呵~~~~
好,万事就绪!先说一下当系统分区表被误操作或病毒破坏时会出现的现象。1:启动显示NO ROM BASIC。2:启动显示INVALID
PARTITION TABLE。3:无显示(如遭CIH毒手)。4:提示硬盘逻辑分区错误无法正常识别(如提示逻辑盘符超过Z,并切FDISK等程序无法识别)5:对于AWARD BIOS可能还会提示硬盘无法初始化(没用过AMI的,不知道会有什么显象……)
知道了表象现在来研究一下本质,我尽可能简单的解释一下硬盘的物理结构和各种参数。众所周知,硬盘的主引导区位于硬盘的0柱0面1区包含有若干分区表项,共有64字节。其中每个分区项有16字节包括以下一些信息:
第一字节,是引导标志,其中80为活动分区00为非活动分区。
第二字节,起始磁头,表明分区的起始位置。
第二字节,表示起始扇区,其中低六位(简单说就是*右面的六位)为起始扇区,高二位为起始柱面(有时也会加上第四字节)。
第三字节,表示硬盘柱面信息。
第四字节,确定起始柱面的的低八位。
第五字节,决定分区的类型,06代表FAT16,0b代表FAT32,63代表UNIX分区。
第6字节: 终止磁头
第7字节: 低6位为终止扇区, 高2位与第8字节为终止柱面
第8字节: 终止柱面的低8位
第9-12字节: 该分区前的扇区数目
第13-16字节: 该分区占用的扇区数目
扩展分区的信息位于上面所示的硬盘分区表中,逻辑分区的信息则位于扩展分区的起始扇区,可通过查找上面的表得到起始地址“X面/X扇区/X柱”所对应的扇区。分区信息的16个字节表示的是逻辑驱动器(D:E:……)的起始和结束地址。了解这些后当分区表破坏后我们就能利用各种软件来进行手工恢复,如果没有就手的软件的话那么FDISK/MBR手工填写参数也马马虎虎啦!呵呵~~~
手工恢复分区时推荐使用全中文界面且支持虚拟操作的DISKMAN!至于大名鼎鼎的DISKEDIT因为操作过于复杂非老鸟甚用!不然一时失手可能连哭都来不及……。具体步骤是1:检查C盘活动分区有效标志80是否存在。2:编辑0柱1磁头1扇区,查看末尾是否有55AA的有效标志。3:根据自己分区的情况依次检查分区的类型标志,引导标志和系统标志是否与自己的硬盘相同如不同就改为正确的。致此分区引导记录应该被恢复的七七八八了。4:选择DISKMAN菜单中重建分区表一项,从0柱0磁头2扇区以自动或者交互两种方式开始扫描硬盘,建议对硬盘参数有较深了解的人选择交互方式,由于自己对自己的硬盘比较了解所以成功的可*性大些。不了解的人还是选择自动好些……至此,运气好的话应该可以恢复硬盘的使用了,如果只是分区有问题加之上天保佑的话至此能进入98也是有可能的!备份好必要的数据后最好重新分区并且FOIMAT /U。如果不能使用但可以用启动盘引导后可以得到硬盘的控制权就是说可以进入分区,这时可以使用一些杀毒软件(KV3000)的重建分区功能。毕竟人家正规军的办法比起咱这土办法应该还是牢*些的。如果还不成的话那我也只好拿出最后的法宝了!用DEBUG搞定它!
事先声明,下面这段DEBUG我只用过一次,虽然幸运的成功了但不保证适用于所有硬盘,而且说实话我的DEBUG水平也就是马马虎虎应付场面的,实在不够牢*,只提供一下思路,大家用的时候最好搞清楚再来。如果实在没着了照搬也成,反正已经不能用了也不会有更烂的后果……不过至于到底会出现什么后果没我责任哦!呵呵~~~~~
debug
a 100
mov ax,201 */以下三行是对寄存器的操作
mov bx,200
moc cx,1
int 13 */调用中断13对硬盘写操作
int 3
g=200
d 3b0 3ff
e 3be 80 */针对引导区添入引导区有效标志80
e 102 3
g-100
到这如果还搞不定那我也没办法了……只好送修或者找人用专用设备读出残存的数据,不过花费银子不菲,不如买了新的省心!呵呵~~~~
恢复分区说完了现在聊一下如何恢复数据。由于恢复数据和硬盘大小参数密切相关所以不能具体到没一块硬盘这里也只是给一下大致的操作方法,具体到每人的硬盘还要根据自己的具体情况来搞定。
1:假设C全毁(一般我们见势不妙都会立刻关机所以除C外其它硬盘不会受到太大的损失)需要恢复D上的文件(我们大多数重要文件不会存在C盘吧?)。按上面的方法先恢复分区,如果有一个大小及逻辑分区都相同或者至少不是差得很夸张的完好硬盘就最理想不过!只需备份下它的分区表恢复即可!(对于仅有分区表被毁的现象此种恢复方法应列为第一优先的考虑!)
2:这里就要用到DISKEDIT了。恢复分区重新启动后运行DISKEDIT D:/M按F6以分区表方式查找,一般可以找到X道1头1扇区(X值难以确定)。由于从1磁头开始那么其为第一逻辑分区即D的可能很大,如此则其原始连接应在X道0头1扇区,通过INFO-> DRIVER
INFO查看该扇区得到原主分区的结束位置。因为主分区一般开始于0道0头1扇,现在可以大致确定下主分区的信息了。
3:执行TOOLS->RECALCUATE PARTITION添入刚刚得到的参数重新计算分区,然后写入到硬盘并重新启动。
4:FORMAT C:/S重新填充C的引导信息
5:再重启,执行(UN)FORMAT /Z:8 D:恢复D的原始簇值(因为如此恢复分区簇的数量和原先的数量不同的可能性较大)
6:如为FAT32分区则以DISKEDIT /M维护模式编辑磁盘将主分区表中1C2H中的0600改为0B00将FAT清零为重新格式化FAT32做准备
7:重新启动后先运行FORMAT /Z:8 D:完成后在进行反格式化UNFORMAT此时文件应该大部恢复。当然可能部分文件名字会有出入但不会变化太大。
注:此种恢复操作是针对FAT16如果分区为FAT32那可以省不少的事,但个别时候操作上可能更繁琐些。
感谢大家能耐心看完,我这些土办法还是经过一定的实践考验的,可能比不上专业的工具或技术人员但在实在没有办法的时候也还能讲就一下的。全部文章都只是个思路,尤其恢复文件是根据格式化后可以反格式化完成的,此间不能有写硬盘的操作,所以还是有点不便。其实如果能用现成的软件完成任务的话就不要用我的方法了。一家之言谨做参考,如果谁还有其它办法欢迎一起切磋!谢谢
全自动恢复分区-Ghost的参数应用
Norton Gost是一个克隆应用工具软件,使用简单,功能强大。它能用十分钟的时间恢复你的整个系统,极大地节约了用户的时间,提高了电脑的使用效率,这是一篇关于Ghost的使用技巧的文章。
一般情况下,你可以使用Ghost的图形界面中的功能来完成系统的恢复。有时候我们希望一个按键后软件就能帮我全部恢复,而不用再坐在电脑前时刻留意是否有需要确认之类的对话框。如果要实现这种功能,那你就得了解Ghost的参数。我们得用DOS的方式来解决这问题。(利用参数实现软件的一部分功能,这可是DOS的最大特点了)下面我们将以实例分析的方式来说明如何利用Ghost的参数实现这功能。
下面是我的硬盘的分区情况。(如果你还不懂分区是什么,请不要随便使用这些参数,不然后果我们可不负责哦!!)
硬盘数:1 个 (电脑上可不一定只有一个硬盘,如果你有两个或以上的硬盘,可得注意修改参数值)
分区情况:分4个盘。
主分区1个
C盘: 即DOS分区;
护展分区
D盘、E盘和F盘三个逻辑分区。
一、实现系统的备份
首先我们用以下的参数行实现把C盘的东西压缩成一个影像文件(*.gho)。-clone,mode=pdump,src=1:1,dst=E:
-z9 -sure
参数说明:
-clone,mode=pdump 表示采用克隆分区方式(pcopy是硬盘对拷 pload是恢复影像文件;
src=1:1 表示克隆第一个物理硬盘的第一分区,一般来说是C盘,也就是系统盘;
dst=E: 表示分区被克隆成影像文件,并保存到E盘backup目录里;
-z9 表示使用最高压缩形式(-z9 )备份;
-sure 表示在软件运行过程中所有出现的对话框中都取OK值。
二、系统的恢复
-clone,mode=pload,src=E:1,dst=1:1 -sure -rb
参数说明:
src=E:1 表示采用保存在E盘的back目录下的 的影像文件中的第一分区内容;dst=1:1 表示恢复到第一物理硬盘的第一分区;
-rb 表示系统恢复完成后,自动重新启动系统。
三、一些常用参数的说明
适当运用Ghost的参数,你就能高效地完成工作。下面的参数都是一些比较常用的参数,有兴趣不妨组合试用一下效果如何。
1、-rb
本次GHOST操作结束退出时自动REBOOT。一个很有用的参数,特别是在复制系统时你可以放心离开了。
2、-fx
本次GHOST操作结束退出时自动回到DOS提示符(前提是你是以DOS命令的方式启动的GHOST)。
3、-sure
对所有要求确认的提示或警告一律回答“YES”。此参数有一定的危险性,慎用!!
4、-fro
如果源分区发现坏簇,则略过提示强制拷贝。此参数可用来试着挽救硬盘坏道中的数据。
5、-fnw
禁止对FAT分区进行写操作,以防误操作(此参数对NTFS分区无效)。
6、-f32
将源FAT16分区拷贝后转换成FAT32(前提是目标分区不小于2G)。由于支持FAT32的操作系统很少,所以除非你是复制win98分区,否则此参数慎用!
7、-fatlimit
将NT的FAT16分区限制在2G。此参数在复制WINDOWS NT分区,且不想使用64K/簇的FAT16时非常有用。
8、-span
分卷参数。当空间不足时提示复制到另一个分区的另一个IMAGE FILE。
9、-auto
分卷拷贝时不提示就自动赋予一个文件名继续执行。
解开硬盘逻辑死锁的另几种有效方法!(简易)
给“逻辑锁”解锁比较容易的方法是:
1。“热拔插”硬盘电源。
“热拔插”硬盘电源就是在当系统启动时,先不给被锁的硬盘加电,启动完成后再给硬盘“热插”上电源线,这样系统就可以正常控制硬盘了。这是一种非常危险的方法,为了降低危险程度,碰到“逻辑锁”后,大家最好依照下面两种比较简单和安全的方法处理。
2。 ★UltraEdit★
首先准备一张启动盘,然后在其他正常的机器上使用二进制编辑工具(推荐UltraEdit)修改软盘上的文件(修改前记住先将该文件的属性改为正常),具体是在这个文件里面搜索第一个“55AA”字符串,找到以后修改为任何其他数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。不过这时由于该硬盘正常的分区表已经被破坏,你无法用“Fdisk”来删除和修改分区,但是此时可以用本论坛介绍的关于分区表恢复的方法来处理。
3。★DM★
因为DM是不依赖于主板BIOS来识别硬盘的硬盘工具,就算在主板BIOS中将硬盘设为“NONE”,DM也可识别硬盘并进行分区和格式化等操作,所以我们也可以利用DM软件为硬盘解锁。
首先将DM拷到一张系统盘上,接上被锁硬盘后开机,按“Del”键进入BIOS设置,将所有IDE接口设为“NONE”并保存后退出,然后用软盘启动系统,系统即可“带锁”启动,因为此时系统根本就等于没有硬盘。
启动后运行DM,你会发现DM可以识别出硬盘,选中该硬盘进行分区格式化就可以了。这种方法简单方便,但是有一个致命的缺点,就是硬盘上的数据保不住了。
硬盘数据恢复知识
声明:
1、您所看到的是《数据恢复与软故障处理基本指南》一文的文本稿,本文已经在《计算机应用文摘》发表,传统媒体如欲转载请同该杂志社联系,获得许可方可转载。
2、本文作者seak(哈工大紫丁香站ID)许可本文可转载于任何非商业BBS、新闻组和WEB站点。但严禁改动、删节或添加或局部抄袭、改头换面用于任何正式出版物。转载必须完整,包括本声明和原文紫丁香BBS信头 (即:发信人、标题、发信站三行)。
3、由于《计算机应用文摘》编辑同志对本文的修改、和作者对文章的再次扩充,等因素,你看到的电子版本部分章节与刊发文章并不一致。同时,作者本人也保留对文章再次扩充修改和网上重新发布的权利。
4、本文是一篇科普文章,是作者考虑到一般用户的接受能力而写的,对本领域的专家本文并无价值。作者力图能给广大用户做准确的描述,但由于作者时间和水平的限制,作者不能保证本文的涉及的观点、处理方法等绝对正确。
————————————————————————————————
1、 系统工作机理的简单介绍(本节由lowpower缩写)
这一部分在原作中是最重要的一章,考虑到篇幅关系,进行了大量的删节。
①、 DOS(DOS兼容系统)硬盘数据的构成
DOS磁盘系统,可以按照逻辑分区的概念管理物理空间,不同分区可以装载不同的OS系统。
示意如下:
硬盘空间
第一扇区|分区1 |分区2 |分区3 |分区4
主引导扇区|引导扇区|引导扇区|引导扇区|引导扇区|
各分区公用|各个分区相对独立,可安装不同操作系统。
对FAT结构的分区每一分区都有独立的引导记录,FDT表,FAT表等。同时,系统还有一个最为重要的主引导记录。在0柱0面1扇区,今后我们用CYL代表柱、SIDE代表面,SEC代表扇区。以下一个FAT结构分区的简图。
保留区- 磁盘参数表、DOS引导记录
控制区-FAT表1、FAT表2根目录区
数据区-数据区
以下简单介绍一下重要的部分:
主引导记录又称主分区表、MBR等等:MBR占一个扇区,在CYL 0、SIDE 0、SEC 1,由代码区和数据区构成。其中代码区是一端标准的程序,完成BIOS自举到OS BOOT之间的工作,为OS启动做最后的准备。标准代码区可以由FDISK/MBR重建,但对于多系统引导的不标准MBR,将被这一操作破坏。MBR的数据区记录了分区情况。
系统扇区:CYL 0、SIDE 0 、SEC 1-CYL 0、SIDE 0 、SEC 63,共62个扇
区引导区又称BOOT区:CYL 0、SIDE 1 、SEC 1 这是我们过去称的DOS引
导区。也占一个扇区。
文件分配表又称FAT:是记录文件占用簇的情况和连接关系的地方。一般有两个FAT表,起到备份的作用。FAT12、FAT16的第一FAT表一般均在0-1-2,FAT32的第一FAT表在0-1-33。由于FAT表记录文件占用扇区连接的地方,如果两个FAT表都坏了,后果不堪设想。
由于FAT表的长度与当前分区的大小有关所以FAT2的地址是需要计算的。根目录区(ROOT、FDT):这里记录了根目录里的目录文件项等,ROOT区跟在FAT2后面。
数据区:跟在ROOT区后面,这才是数据内容。其实, MBR、隐含扇区、BOOT区,重建都比较容易。数据恢复的关键在于恢复数据文件。由于FAT表记录了文件在硬盘上占用扇区的链表,如果2个FAT表都完全损坏了。那么恢复文件,特别是占用多个不连续扇区文件就相当困难了。
②、 主引导记录简单说明:
主引导记录是硬盘引导的起点,关于代码区不多说了,其数据区,比较重要的是2个标志,80H和55AA,80H一般在偏移1BE处,80是分区激活的标志的标记表示系统可引导,且整个分区表只能有一个80标记。另一个就是结尾的55 AA标记,用来表示主引导记录是一个有效的记录。另外,各个分区自身的引导记录,也是以55AA结束,这是我们查找分区的标志。我们后面在介绍如何主引导记录中,给出了一个完整的分区表的例子,大家可对照查看。数据区中,用10H字节表示一个分区,最多可表示4个分区,分别从1BE、1CE、1DE、1EE开始,我们后面给出了分区表项对应地址的含义。大家可以对应分析一下以下分区的情况。
80 01 01 00 0B FE BF FC 3F 00-00 00 7E 86 BB 00
① ② ③ ④ ⑤ ⑥
①:激活标记,80表示可引导分区
②:分区开始的磁头号为01、开始的扇区号为01、开始的柱面号为00,由于开始的扇区号为2进制6位,而开始的柱面号为2进制10位,因此扇区号所用字节的高两位要加在柱面号高两位。
③:分区的系统类型FAT32(0B),01是FAT12,04为FAT16,06为BIGDOS,07为NTFS,
其他参见分区类型表。
④:分区结束磁头号254、分区结束扇区号63、分区结束柱面号764
⑤:首扇区的相对扇区号63
⑥:总扇区数12289622
2、常见手工处理工具与DOS外部命令介绍
DEBUG:古老和最为常见的调试跟踪软件,始终捆绑在微软的DOS/WIN9X操作系统中。有19个子命令。有编写执行汇编指令,直接读写绝对扇区和内存单元等功能,可以在最艰苦的条件下工作。DOS6.22以下的系统,在DOS目录下,WIN9X系统中它在WINDOWSCOMMAND目录下,它
也出现在WIN9X所生成的应急盘中。DISKEDIT:常见16进制编辑软件,字符界面,可以以文件方式和扇区方式读写逻辑内容,可以读写绝对扇区,可以方便的查找编辑分区表、FAT表、ROOT区等重要扇区。这一点要比DEBUG更方便。但在一些重要扇区损坏的情况下,DISKEDIT可能无法启动。DISKEDIT软件可以在著名的Norton Utilities软件包中找到。最新的DISKEDIT出现在NU4中。
NDD:常见的FAT文件结构磁盘修复工具,就是著名的NORTON磁盘医生,可以自动修复分区丢失等情况,可以抢救软盘坏区中的数据,强制读出后搬移到其他空白扇区。希望大家不要再使用NORTON FOR DOS7或8的NDD,这个版本由于不支持大分区、FAT32、长文件名等技术,会给你带来大量的麻烦。建议大家使用Norton Utilities4或更高版本中的,这是纯DOS下的工具。在硬盘崩溃或异常的情况下,他可能可以带给用户以希望。WIN9X下的磁盘医生调用的并不是这个程序,而
是.
FDISK:FDISK当然是个危险的命令,很多人非常恐惧,事实上,FDISK命令的运行并不影响任何分区内的硬盘数据,他对分区的设置操作,只改变主分区表的数据区。而特别是FDISK异常重要的隐含参数/MBR,可以重建主分区表的代码区,清除主引导型病毒等。这是非常有用的操作。DOS6.22以下的系统,在DOS目录下,WIN9X系统中它在WINDOWSCOMMAND目录下,它也出现在WIN9X所生成的应急盘中。
FORMAT:在一些人眼中,FORMAT是最可怕的命令,但他并不是对硬盘清零,特别值得注意的是,很多文件恢复工具都建议你恢复前先FORMAT该分区起到保护的饿作用。DOS6.22以下的系统,在DOS目录下,WIN9X系统中它在WINDOWSCOMMAND目录下,它也出现在WIN9X所生成的应急盘中。
HD-COPY:传统的软盘COPY工具,2.0版本以后加入了强制读的功能,可以读出一些损坏扇区的内容。
SYS:SYS命令是重建BOOT区的最简洁的手段,也可以杀除BOOT区病毒。DOS6.22以下的系统,在DOS目录下,WIN9X系统中它在WINDOWSCOMMAND目录下,它也出现在WIN9X所生成的应急盘中。
令我非常遗憾的是,至今我没有发现比较出色的扇区级备份镜象工具,我曾写过一个HD-MIRROR,但由于错误较多,我提供下载的第二天就停止了发布,另外fixc的作者noz写过一个,但可惜只适合相同的硬盘。我也曾以为GHOST可以做到这点,事实上,你目前还不能指望他为你备份一块深度破损的硬盘。。如果有一个有效的能以按扇区机制(而不是文件机制)压缩备份一块硬盘将之做成一个镜象文件的话,那么我们的恢复工作就拥有了更多的保证和余地。我们可以更大胆的做恢复的尝试。
3、 一些自动处理工具或软件包
首先介绍国内的一些免费修复工具
FIXMBR:何公道先生写的一个修复MBR的工具,适合处理逻辑分区丢失的情况, 有一些可选参数,支持 FAT32、FAT16,不支持NTFS、LINUX等分区,支持8.4G以上硬盘。可修复CIH发作后的扩展逻辑分区。
VRVFIX:北信源公司的推出的修复硬盘共享工具,适合处理逻辑分区丢失的情况,处理的基本比较准确。支持FAT32、FAT16,不支持NTFS、LINUX等分区。也不支持8。4G以上硬盘。
FIXC:国内最早出现的可以修复部分被CIH破坏的C盘的工具,作者是NOZ,新版本也加入了修复分区信息的功能,支持FAT32、FAT16,有限支持NTFS,不支持8。4G以上硬盘。目前的版本已经比较完善。
FIXHDPT:TBSOFT工作室的分区信息修复工具。支持FAT32、FAT16,不支持NTFS和LINUX,不支持8。4G以上硬盘,是历史比较长的工具之一。
RE(ReapirEasy):本人早期写的分区表修复工具,支持FAT32、FAT16,有限支持NTFS,不支持8.4G
以上硬盘,和某些BIOS不兼容。其整体水准低于前面列举的工具。
国外一些系统维护的工具目前已经达到了非常强大的程度。
Norton Utilities:历史最悠久的系统维护工具。不仅可以数据恢复,还可以系统加速和修补内存错误。目前最新的版本是NU 4.5FOR 9X、NU2 FOR NT等。
Tiramint:最为出色的灾难恢复工具之一,有NTFS、FAT32、FAT16、NOVELL4种版本。生成急救软盘,可以对深度破坏的磁盘进行交*恢复。
4、常用的基本操作
① 读出主引导记录:这是系统级数据恢复可能涉及最多的程序之一。
例:
DEBUG
-a100 ;从此处开始汇编
126C:0100 mov ax,201; 读操作一个扇区
126C:0103 mov bx,300; 送入地址300
126C:0106 mov cx,1 ;0面1扇
126C:0109 mov dx,80 ;80H为硬盘,头为0
126C:010C int 13
126C:010E int 3
126C:010F
-g=100 ;执行
AX=0050 BX=0300 CX=0001 DX=0080 SP=FFEE BP=0000 SI=0000 DI=0000
DS=126C ES=126C SS=126C CS=126C IP=010E NV UP EI PL NZ NA PO NC
这里用了I/O中断13,涉及的寄存器含义为
ah,操作方式,02H为读,03H为写
al,送扇区数
bx,送准备装入扇区的内存偏移地址
cx送从哪一道哪一扇区开始,我们一般依*改换CX来读写不同逻辑盘某个逻辑扇区。dx,送盘符和头数
INT 3是断点中断,使程序运行到此停止。
② 显示引导区内容:我们把扇区读到某个内存地址并不是目的。而是为了看到他的内容,在DEBUG中D命令可以方便的查看内存单元的内容。续前例,如果我们要看到主引导区的内容的话,既然装载到300。
-d300 l200就可以查看了,一个引导区的映象类似如下,可以直观的看到我们前面所提到的代码区和数据区。是否正常请大家自行分析一下
126C:0300 33 C0 8E D0 BC 00 7C FB-50 07 50 1F FC BE 1B 7C 3.....|.
126C:0310 BF 1B 06 50 57 B9 E5 01-F3 A4 CB BE BE 07 B1 04 ...PW...........
126C:0320 38 2C 7C 09 75 15 83 C6-10 E2 F5 CD 18 8B 14 8B 8,|.u...........
126C:0330 EE 83 C6 10 49 74 16 38-2C 74 F6 BE 10 07 4E AC ....It.N.
126C:0340 3C 00 74 FA BB 07 00 B4-0E CD 10 EB F2 89 46 25 <.t...........F%
126C:0350 96 8A 46 04 B4 06 3C 0E-74 11 B4 0B 3C 0C 74 05 ..F...<.t...<.t.
126C:0360 3A C4 75 2B 40 C6 46 25-06 75 24 BB AA 55 50 B4 :.u+@.F%.u$..UP.
126C:0370 41 CD 13 58 72 16 81 FB-55 AA 75 10 F6 C1 01 74 A..Xr...
126C:0380 0B 8A E0 88 56 24 C7 06-A1 06 EB 1E 88 66 04 BF ....V$.......f..
126C:0390 0A 00 B8 01 02 8B DC 33-C9 83 FF 05 7F 03 8B 4E .......3.......N
126C:03A0 25 03 4E 02 CD 13 72 29-BE 46 07 81 3E FE 7D 55 %.N...r).F..>.}U
126C:03B0 AA 74 5A 83 EF 05 7F DA-85 F6 75 83 BE 27 07 EB .tZ.......u..''..
126C:03C0 8A 98 91 52 99 03 46 08-13 56 0A E8 12 00 5A EB ...R..F..V....Z.
126C:03D0 D5 4F 74 E4 33 C0 CD 13-EB B8 00 00 00 00 00 00 .
126C:03E0 56 33 F6 56 56 52 50 06-53 51 BE 10 00 56 8B F4 ...V..
126C:03F0 50 52 B8 00 42 8A 56 24-CD 13 5A 58 8D 64 10 72 PR..B.V$..ZX.d.r
126C:0400 0A 40 75 01 42 80 C7 02-E2 F7 F8 5E C3 EB 74 49 .@^..tI
126C:0410 6E 76 61 6C 69 64 20 70-61 72 74 69 74 69 6F 6E nvalid partition
126C:0420 20 74 61 62 6C 65 00 45-72 72 6F 72 20 6C 6F 61 loa
126C:0430 64 69 6E 67 20 6F 70 65-72 61 74 69 6E 67 20 73 ding operating s
126C:0440 79 73 74 65 6D 00 4D 69-73 73 69 6E 67 20 6F 70 g op
126C:0450 65 72 61 74 69 6E 67 20-73 79 73 74 65 6D 00 00 erating system..
126C:0460 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:0470 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:0480 00 00 00 8B FC 1E 57 8B-F5 CB 00 00 00 00 00 00 ......W.........
126C:0490 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:04A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:04B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01 ................
126C:04C0 01 00 0B FE BF FC 3F 00-00 00 7E 86 BB 00 00 00 ......?...~.....
126C:04D0 81 FD 0F FE FF FF BD 86-BB 00 E0 A9 75 00 00 00 ............u...
126C:04E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
126C:04F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA ..............U.
③ 反汇编主引导区内容:判定MBR的代码区是否正常,对于数据区的基本情况,我们可以通过直观观察得出,但对于存在引导型病毒,或者引导区出现异常代码的情况,我们可能需要分析MBR中代码区的指令。这一般要对已经读入内存的引导区进行反汇编。
反汇编用指令U
续前例:
-u300 l15D ;反汇编主引导扇区代码区内容
126C:0300 33C0 XOR AX,AX
126C:0302 8ED0 MOV SS,AX
…………
126C:045C 65 DB 65
126C:045D 6D DB 6D
④ 写内存单元,在我们的前例中,主分区类型是0B是FAT32的,假定这个类型实际是NTFS的,我们该如何修改呢?由于主分区类型的偏移是4C3H,我们可以用E命令写到内存单元中,从附表中查得NTFS的类型为07。因此 -e4c3 7再比如说,假定我们想把无效的分区表清零,那么,我们应当用另一个命令F,这个命令可以用填充一个内存地址范围。清零分区表的操作就是 -f4be 4ff 00,以下两个操作也比较常见。
重置80标记,-e4be 80
重置55AA标记,-f4ff 4fe 55 aa
不要忘记了,此时仅仅是改动了内存中的数据,并未写到硬盘上。因此需要用int 13中断把改写的结果,写回硬盘。
续前例,
-a100
126C:0100 mov ax,301 ; 写操作一个扇区
-g=100 ;执行
其实,我们相当于修改了刚才输入的读主引导扇区程序,使程序变为。
126C:0100 mov ax,301 ; 写操作一个扇区
126C:0103 mov bx,300 ;从内存地址300
126C:0106 mov cx,1 ;0面1扇
126C:0109 mov dx,80 ;80H为硬盘,头为0
126C:010C int 13
126C:010E int 3 ;断点
⑤ 绝对磁盘内容的读出与写入
类似操作在FAT32结构硬盘被CIH破坏的修复中比较常见,我们后面将讲到恢复的基本思路就是用第二FAT表覆盖第一FAT表。那么无
疑要读出第二FAT表的内容,再回写到第一FAT表的位置上。一般的来说,大量连续扇区的读出写入DISKEDIT进行非常方便,如果用DEBUG做则要写一段子程序,不过程序的主要技巧就是利用int 25绝对磁盘读中断读出的内容,而用int 26绝对磁盘写做内容写入。
4、数据可恢复的前提
有人觉得这个题目说法比较奇特,但数据恢复,作为一个数据再现的过程,一定要解决两个问题,第一是从哪里恢复的问题,第二是怎么恢复的问题。解决了这两个问题,我们事实上就把握了数据恢复的全部思想脉络。而这一部分就是从哪里恢复的问题。
①、 有效而及时的备份中是数据恢复最可*的来源,在许多人倡导备份到秒的今天,恐怕不会有人怀疑这点。而有些备份机制则是系统内建的,比如两份FAT表。
②、 数据的实际有效性的判定是关键,对我们来说,硬盘无法自举、文件找不到、文件打不开等现象,其实并不与数据丢失画等号。因为此时往往数据只是从操作系统的角度是一种逻辑丢失,而从物理扇区意义上,它仍然存在或部分存在。最明显的就是文件删除的例子,事实上,这只是把文件首字节,改为0E而已。而此时文件体依然存在。
③、 数据损坏过程的可逆性分析:对数据的改变无非两种,取代和变换,前者是不可逆的,而后者则是可逆的。我们以杀毒为例,对于大多文件性病毒来说,那些以附加而非代换方式感染的文件型病毒,理想的杀毒过程就是感染的逆过程。这种分析也常见与重要信息被隐藏搬移或者被加密的情况,但分析将比较复杂。
④、 数据本身是否是标准信息:有些信息实际是通用或局部通用的,你无须考虑如何从本机抢救。只要相同或相近的系统版本就可以了,比如BOOT区、隐含扇区、WINDOWS的DLL文件等等。典型的例子如分区表的代码区,这是一段标准代码,事实上,它就放在你的FDISK程序里面,你可以用DEBUG把他提取出来。
⑤、 数据本身是否可以由其他信息统计再生:有些信息尽管丢失了,也没有备份。但它实际可以从其他数据中间接求得。最典型的就是主分区表中的分区信息,即使你把他清零也不必害怕,因为你可以从你几个分区中计算再生。
⑥、 破坏的完成程度:事实上,FDISK、FORMAT都不会彻底破坏数据,一般只有低格和扇区覆盖操作才会彻底破坏数据。但有时,破坏过程或者误操作过程会因人工终止、死机等原因不能完成。最明显的就是CIH病毒的例子,由于CIH是以1024字节为单位覆盖扇区,这当然是不可逆过程,于是我们最初都认为,破坏是很难恢复的,除非人工终止。事实上,当病毒覆盖某些扇区时会与9X系统发生冲突,从而造成死机,使数据得到了保护。
硬盘数据恢复知识1
1、 硬件或介质问题的情况
①、 硬盘坏:硬盘自检不到的情况一般是硬件故障,又可分为主版的 硬盘控制器(包括IDE口)故障和硬盘本身的故障。如果问题在主板上 ,那么数据应当没有影响。如果出在硬盘上,也不是一定不能修复。 硬盘可能的故障又可能在控制电路、电机和磁头以及盘片。如果是控 制电路的问题,一般修好它,就可以读出数据。但如果电机、磁头和盘片故障,即使修理也要返回原厂,数据恢复基本没有可操作性。
②、 软盘坏:当软盘数据损坏时,可以有几种处理,一种是用NDD修 复,他会强制读出你坏区中的东西,MOVE到空白扇区中,这就意味着 如果你的磁盘很满操作是没法进行的。你也可以用HDCOPY2.0以上版本 READ软盘,他也会进行强读,使读入缓冲区的数据是完好的,你再写 入一张好磁盘就可以了。当然这些方式,要看盘坏的程度。如果0磁道坏,数据也并非无法抢救,早先可以通过扇区读的方式,把后面的数 据读出,不过一般来说,你依然可以HDCOPY来实验。
2、系统问题的情况
①、 在硬盘崩溃的情况下,我们经常要和一些提示信息打交道。我们 要了解他典型提示信息的含义,注意这些原因仅仅分析逻辑损坏而不是 硬盘物理坏道的情况。
提示信息
可能原因
参考处理
Invalid Partition Table
分区信息中1BE、1CE、1DE处不符合只有一个80而其他两处为0 用工具设定,操作在前面已经讲了。
Error Loading Operating System
主引导程序读BOOT区5次没成功。
重建BOOT区
Missing Operating System DOS
引导区的55AA标记丢失
用工具设定,把前面读写主引导区程序的DX=80改为180即可
Non-System Disk or Disk Error
BOOT区中的系统文件名与根目录中的前两个文件不同
SYS命令重新传递系统,
Disk Boot Failure
读系统文件错误 SYS命令重新传递系统,
Invalid Driver Specifcationg
如果试图切换到一个确实存在的逻辑分区出现以下信 息,说明主分区表的分区记录被破坏了。
根据各分区情况重建分区表,或者用自动修复工具修 复。注意分区丢失是最常见的故障之一,此时不要紧 张,一般的说此时数据并没有问题,如果你不了解处理 的方法。你可以选择我前面介绍的自动修复分区工具进 行处理,他们大多只改写主分区表的数据区,不会影响 你的其他数据。特别提醒大家,这些工具有的不支持 8.4G硬盘,有的与BIOS对硬盘的识别有关系。如果你 在一台机器上不行,可以换台BIOS不同的机器实验一下。
Bad or missing command interpreter
这是说找不到,或者COMMAND文件坏了。
如果你COPY过去COMMAND文件还是如此,一般来说是 感染了某种病毒。
Invalid media type reading drive X ,Abort,Retry,Fail?
该盘没有高级格式化,或BOOT区中I/O参数表被破坏。
这里情况较多,手工处理比较复杂,特别指出,此时 DISKEDIT可能无法运行,建议用工具修复。
Incorrect DOS Version
可能是文件版本不统一,对9X来说,有95 95osr/2,98,98 oem/2等版本,重新SYS 时,不要弄错 了。
用正确版本的启动盘重新SYS系统
另外说明一下,对于比较老的机器还有1071和not found rom basic、ROM BASIC OK等提示,在目前机器中以消失。另外,当 代码区完全被破坏的情况下,系统关于无系统的提示是来自BIOS 的,这条提示与BIOS的种类有关。另外,FDISK/MBR对代码区的 重建是我们经常采用的。再介绍一种比较极端的情况,就是硬盘 自检正常,而用软盘和硬盘都无法正常启动的情况,这可能是, 病毒或恶意程序利用,DOS3以上版本启动中都要检索分区表这一 特点,把分区表置为死循环。造成启动中死机。网上曾经流传过 DOS6.22k修改方案,其实是修改西文MS-DOS6.22的 ,把 C2 03 06 E8 0A 00 07 72 03替换为:C2 03 90 E8 0A 00
72 80 90就可以启动被类似情况锁住的硬盘。
②、 9X无法正常进入或工作:以下仅仅是对可能的软故障分析 ,没有考虑硬件故障.进入图形界面前死机情况比较复杂,可能与加载的某些驱动有关 可以在START MS WINDOWS时,用F8激活菜单,设置为step by step ,看是哪项使系统死机。而后从CONFIG或者SYSTEM。INI中删除进入图形界面后死机一般这与开机加载的程序有关进入安全模式(此时自动 运行的程序将不能加载),对注册表中的 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun* 中的键值和启动组中加载的程序进行分析。必要的予以删除。显示错误,不能进行任何操作
可能有某个系统的动态连接库损坏覆盖安装WIN9X,或从 其他机器上COPY损坏的连接库。(确定哪个库损坏一般 比较困难)
频繁出现出错各种信息
一般是虚拟内存不足造成的看C盘是否剩余空间过少, 或者打开的应用程序和窗口太多。
2、 全盘崩溃和分区丢失
首先重建MBR代码区,再根据情况修正分区表。修正分区 表的基本思路是查找以55AA为结束的扇区,再根据扇区结构 和后面是否有FAT等情况判定是否为分区表,最后计算填回, 主分区表,由于需要计算,过程比较烦琐,就不仔细介绍了 ,希望大家用前面介绍的工具,比如NDD处理。如果文件仍然 无法读取,要考虑用TIRAMINT等工具进行修复。如果在FAT 表彻底崩溃的情况下,恢复某个指定文件,可以用DISKEDIT 或DEBUG查找已知信息。比如文件为文本,文件中包含“软件 狗”,那么我我们就要把他们转换为内码C8 ED BC FE B9 B7 进行查找。
3、 文件丢失、误格式化的情况
一般的来说,文件删除仅仅是把文件的首字节,改为E5H,而并 不破坏本身,因此可以恢复。但由于对不连续文件要恢复文件 链,由于手工交*恢复对一般计算机用户来说并不容易,在这 篇缩略版中就不讲了,建议用工具处理,如果已经安装了Norton Utilities,可以用他来查找。另外,RECOVERNT 等工具,都是 恢复的利器。特别注意的是,千万不要在发现文件丢失后,在 本机安装什么恢复工具,你可能恰恰把文件覆盖掉了。特别是 你的文件在C盘的情况下,如果你发现主要文件被你失手清掉了 ,(比如你按SHIFT删除),
你应该马上直接关闭电源,用软盘 启动进行恢复或把硬盘串接到其他有恢复工具的机器处理。误格 式化的情况可以用等工具处理。
4、 文件损坏的情况
一般的说,恢复文件损坏需要清楚的了解文件的结构,并不是很 容易的事情,而这方面的工具也不多。不过一般的说,文件如果 字节正常,不能正常打开往往是文件头损坏。
就文件恢复举几个 简单例子。
类型 特征 处理
ZIP、TGZ等压缩包无法解压
ZIP文件损坏的情况下可以用一个名为ZIPFIX的工具 处理。不过如果你的文件是从FTP站点上下载的,那么 有可能是你没有定义下载模式为BIN。
自解压文件无法解压
可能是可执行文件头损坏,可以用对应压缩工具按一般 压缩文件解压。
DBF文件死机后无法打开
典型的文件头中的记录数与实际不匹配了,把文件头中 的记录数向下调整,遗憾的是公式我找不到了。
5、 硬盘被加密或变换:
此时千万不要FDISK/MBR,SYS等处理,否则可 能数据再也无法找回,一定要反解加密算法,或找到被移走的重要扇区。 对于那些加密硬盘数据的病毒,清除时一定要选择能恢复加密数据的可 *杀毒软件。
6、 文件加密后密码遗忘:
对于很多字处理软件的文件加密和ZIP等压 缩包的加密,你是不能*加密逆过程来完成的,因为那从理论上是异常 困难的。目前有一些相关的软件,他们的思想一般都是用一个大字典集 中的数据循环用相同算法加密后与密码的密文匹配,直到一致时则说明 找到了密码。你可以去寻找这些软件,当然,有些软件是有后门的,比 如DOS 下的WPS,Ctrl+qiubojun就是通用密码。Undiskp的作者冯志宏
是解文件密码的个中高手,大家不妨去他的主页看看。
7、 系统用户密码遗忘的处理:
最简单的方法就是用软盘启动(NT的你也 可以把盘挂接在其他NT上),找到支持该文件系统结构的软件(比如针对 NT的NTFSDOS),利用他把密码文件清掉、或者是COPY出密码档案,用破解 软件套字典来处理。前者时间短但所有用户信息丢失,后者时间长,但保 全了所有用户信息。对UNIX系统,我建议你一定先做一张应急盘
硬盘数据恢复教程
前言:
此文章从google搜索经鄙人整理而来,并非本人的造诣至此,请勿联系笔者。
硬盘数据恢复很大程度依*运气,无必胜把握,并且不与投入时间成正比,不要寄予太大的希望。
请勿轻易拿自己硬盘做实验。
建议数据恢复前先用硬盘保护卡对拷到其他硬盘上做一个备份,然后修理备份。(用ghost不行)
●硬盘数据恢复,一概论
初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。一个完整硬盘的数据应该包括五部分:MBR,DBR,FAT,DIR区和DATA区。其中只有主引导扇区是唯一的,其它的随你的分区数的增加而增加。
主引导扇区
主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS 的)产生的,不同的操作系统可能这个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写,所以才出现了很多的引导区病毒)。
操作系统引导扇区
OBR(OS Boot Record)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有所不
同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如MSDOS或者起源于MSDOS的Win9x/Me的和)。如是,就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。OBR由高级格式化程序产生(例如DOS 的)。
文件分配表
FAT(File Allocation Table)即文件分配表,是DOS/Win9x系统的文件寻址系统,为了数据安全起见,FAT一般做两个,第二FAT为第一FAT的备份, FAT区紧接在OBR之后,其大小由本分区的大小及文件分配单元的大小决定。关于FAT的格式历来有很多选择,Microsoft 的DOS及Windows采用我们所熟悉的FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。
目录区
DIR是Directory即根目录区的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。在DIR区之后,才是真正意义上的数据存储区,即DATA区。
数据区
DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,至于分区硬盘,也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的DIY老鸟们忙乎半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如DOS下的DiskEdit),只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那就是你没有覆盖这个文件……)。
硬盘分区方式
我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。
主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。
扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。
所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。
需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。
数据存储原理
既然要进行数据的恢复,当然数据的存储原理我们不能不提,在这之中,我们还要介绍一下数据的删除和硬盘的格式化相关问题……
文件的读取
操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是0023。
操作系统从0023簇读取相应的数据,然后再找到FAT的0023单元,如果内容是文件结束标志(FF),则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直到遇到文件结束标志。
文件的写入
当我们要保存文件时,操作系统首先在DIR区中找到空区写入文件名、大小和创建时间等相应信息,然后在Data区找到闲置空间将文件保存,并将Data区的第一个簇写入DIR区,其余的动作和上边的读取动作差不多。
文件的删除
Win9x的文件删除工作却是很简单的,简单到只在目录区做了一点小改动——将目录区的文件的第一个字符改成了E5就表示将改文件删除了。
附录:
--------------------------------------------------------------------------------
Fdisk和Format的一点小说明
和文件的删除类似,利用Fdisk删除再建立分区和利用Format格式化逻辑磁盘(假设你格式化的时候并没有使用/U这个无条件格式化参数)都没有将数据从DATA区直接删除,前者只是改变了分区表,后者只是修改了FAT表,因此被误删除的分区和误格式化的硬盘完全有可能恢复……
系统启动流程
各种不同的操作系统启动流程不尽相同,我们这里以Win9x/DOS的启动流程为例。
第一阶段:系统加电自检POST过程。POST是Power On Self Test的缩写,也就是加电自检的意思,微机执行内存FFFF0H处的程序(这里是一段固化的ROM程序),对系统的硬件(包括内存)进行检查。
第二阶段:读取分区记录和引导记录。当微机检查到硬件正常并与CMOS设置相符后,按照CMOS设置从相应设备启动(我们这里假设从硬盘启动),读取硬盘的分区记录(DPT)和主引导记录(MBR)。
第三阶段:读取DOS引导记录。微机正确读取分区记录和主引导记录后,如果主引导记录和分区表校验正确,则执行主引导记录并进一步读取DOS引导记录(位于每一个主分区的第一个扇区),然后执行该DOS引导记录。
第四阶段:装载系统隐含文件。将DOS系统的隐含文件入内存,加载基本的文件系统FAT,这时候一般会出现Starting Windows
9x...的标志,将读入内存,并处理和文件,加载磁盘压缩程序。
第五阶段:实DOS模式配置。系统隐含文件装载完成,微机将执行系统隐含文件,并执行系统配置文件(),加载中定义的各种驱动程序。
第六阶段:调入命令解释程序()。系统装载命令管理程序,以便对系统的各种操作命令进行协调管理(我们所使用的Dir、Copy等内部命令就是由提供的)。
第七阶段:执行批处理文件()。微机将一步一步地执行批处理文件中的各条命令。
第八阶段:加载。负责将Windows下的各种驱动程序和启动执行文件加以执行,至此启动完毕。
●硬盘数据恢复,三文件分配表
FAT是DOS、Windows9X系统的文件寻址格式,位于DBR之后。
在解释文件分配表的概念的时候,我们有必要谈谈簇(Cluster)的概念。文件占用磁盘空间,基本单位不是字节而是簇。一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64……同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。
为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以为了安全起见,FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为“未占用”,但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中标为“坏簇”,以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见的是FAT16和FAT32。
当一个磁盘Format后,在其逻辑0扇区(即BOOT扇区)后面的几个扇区中存在着一个重要的数据表—文件分配(FAT),文件分配表一式两份,占据扇区的多小凭磁盘类型大小而定。顾名思义,文件分配表是用来表示磁盘问件的空分配信息的。它不对引导区,文件目录的信息进行表示,也不真正存储文件内容。
我们知道磁盘是由一个一个扇区组成的,若干个扇区合为一个簇,文件存取是以簇为单位的,哪怕这个文件只有1个字节。每个簇在文件分配表中都有对应的表项,簇号即为表项号,每个表项占1.5个字节(磁盘空间在10MB以下)或2个字节(磁盘空间在10MB以上)。为了方便起见,以后所说的表项都是指2个字节的。
文件分配表结构如1(H表示16进制)
表1
第0字节 表头,表磁盘类型。FFH双面软盘,每次道8扇区FEH单面软盘,每磁道8扇区FDH双面软盘,每磁道9扇区FCCH单面软盘,每磁道9扇区FC8H硬盘
第1~2字节 (表项号1)表示第一簇状态,因第一簇被系统占据,故此两字节为FFFFH
第3~4字节 (表项号2)表示第二簇状态,若为FFFH表此簇为坏的,DOS已标记为不能用;0000H表示此簇为空,可以用;FFF8H表不能示该簇为文件的最后一簇;其余数字表示文件的下一个簇号,注意高字节在后,低字节在前。
第5~6字节 (表项号3)表示第三簇状态,同上。
注意:
不要把表项内的数字误认为表示当前簇号,而应是该文件的下一个簇的簇号。.高字节在后,低字节在前是一种存储数字方式,读出时应对其进行调整。是如两字节12H,34H,应调整为3412H。
文件分配表与文件目录(FDT)相配合,可以统一管理整个磁盘的文件。它告诉系统磁盘上哪些簇是坏的或已被使用,哪些簇可以用,并存储每个文件所使用的簇号。它是文件的“总调度师”。
当DOS写文件时,首先在文件目录中检查是否有相同文件名,若无则使用一个文件目录表项,然后依次检测FAT中的每个表项对应的簇中,同时将该簇号写入文件目录表项相的26-27字节,如文件长度不止一簇,则继续向后寻找可用簇,找到后将其簇号写入上一次找到的表项中,如此直到文件结束,在最后一簇的表项里填上FFF8H,形成单向链表。
DOS删除文件时只是把文件目录表中的该文件的表项第0个字节改为E5H,表此项已被删除,并在文件分配表中把该文件占用的各簇的表项清0,并释放空间。其文件的内容仍然在盘上,并没有被真正删除,这就是,等一类恢复删除工具能起作用的原因。
文件分配表在系统中的地位十分重要,用户最好不要去修改它,以免误操作带来严重的后果。
FAT表的定位
硬盘分区的主要结构说明:
(Cylinder柱面/磁道-Side磁头-Sector扇区地址以下简称为?-?-?)
《主分区》
名称 地址 长度(扇区)
主引导记录(Main Boot Record) 0-0-1 1
系统扇区(System Secotrs) 0-0-2,0-0-63 62
引导扇区(Boot) 0-1-1 1
FAT16系统中,此扇区包含BPB(BIOS Parameter Block)表,描述逻辑盘结构组成,包含隐藏扇区数目(从0-1-1开始计算)、FAT扇区数、FAT拷贝数、硬盘磁头总数、根目录表项最大值等。
FAT32系统中,BPB表的偏移与FAT16不同,但表项基本相同。整个隐藏扇区部分都作为逻辑盘的描述区域。
隐藏扇区(Hidden Secotrs):
FAT16 0-1-1 1
FAT32 0-1-1 32
文件分配表(File Allocation Table):
FAT16 0-1-2 根据逻辑盘容量变化
FAT32 0-1-33 根据逻辑盘容量变化
说明:
FAT16的每个表项由2字节(16位)组成,通常每个表项指向的簇包含64个扇区,即32K字节。
逻辑盘容量最大为2047MB。
FAT32的每个表项由4字节(32位)组成,通常每个表项指向的簇包含8个扇区,即4K字节。
逻辑盘容量最小为512MB。
对于C分区,在MBR的偏移01c2H处,FAT16为06H,FAT32为0CH。
有关计算公式为:
每个扇区长度=512字节
总簇数=逻辑盘容量/簇容量
总簇数=FAT表长度(字节)/每个表项长度(字节)-2
FAT表长度=逻辑盘容量/簇容量*每个表项长度
FAT表的开始由介质描述符+一串“已占用”标志组成:
FAT16硬盘----F8 FF FF 7F
FAT32硬盘----F8 FF FF 0F FF FF FF 0F
每个有效的FAT结构区包含两个完全相同的拷贝:FAT1、FAT2
文件目录表(File Directory Table),即根目录区,又称为ROOT区:
紧跟在FAT2的下一个扇区,长度为32个扇区(256个表项)。如果支持长文件名,则每个表项
为64个字节,其中,前32个字节为长文件链接说明;后32个字节为文件属性说明,包括文件长
度、起始地址、日期、时间等。如不支持长文件名,则每个表项为32个字节的属性说明。
数据区(Data Area):
紧跟在FDT的下一个扇区,直到逻辑盘的结束地址。
《扩展分区》
名称 地址 长度(扇区)
扩展分区(Extend Partition) ?-y-1 1
系统扇区(System Secotrs) ?-y-2,?-y-63 62
引导扇区(Boot) ?-(y+1)-1 1
其后各项与主分区相同……
FAT表引起的读写故障
硬盘文件分配表庞大无法手工修复,只能依*工具。
FAT表记录着硬盘数据的存储地址,每一个文件都有一组FAT链指定其存放的簇地址。FAT表的损坏意味着文件内容的丢失。庆幸的是DOS系统本身提供了两个FAT表,如果目前使用的FAT表损坏,可用第二个进行覆盖修复。但由于不同规格的磁盘其FAT表的长度及第二个FAT表的地址也是不固定的,所以修复时必须正确查找其正确位置,一些工具软件如NU等本身具有这样的修复功能,使用也非常的方便。采用DEBUG也可实现这种操作,即采用其m命令把第二个FAT表移到第一个表处即可(不建议这样做)。如果第二个FAT表也损坏了,则也无法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用CHKDSK或SCANDISK命令进行修复,最终得到*.CHK文件,这便是丢失FAT链的扇区数据。如果是文本文件则可从中提取出完整的或部分的文件内容。
软盘文件分配FAT表修复
在运行某个程序时,有时会在屏幕上看到:File allocation table bad,drive A(文件分配表坏)的错误信息,导致程序不能正常运行。
我们知道,在磁盘中有两个文件分配表:FAT1和FAT2。FAT1用于日常工作,FAT2备用。因此,在FAT1损坏时,可用FAT2表修补。
具体方法是:运行DEBUG,将FAT2读入缓冲区,用缓冲区的FAT2数据覆盖磁盘中的FAT1。
例:修复3寸1.44M软盘,在A驱
在DOS环境下进入debug环境
在“-”提示符下进行如下操作:
-L 100 0 0A 9
-W 100 0 1 9
-q
其它类型的软盘的修复方法参照下表进行。
起止逻辑扇区 5.25"低密 5.25"高密 3.5"低密 3.5"高密
BOOT区 0 0 0 0
FAT1 1-2 1-7 1-3 1-9
FAT2 3-4 8-0EH 4-6 0A-12H
例如我们要修复5.25"高密软盘的FAT,则需将上述参数改为:
-L 100 0 8 7
-W 100 0 1 7
-q
●硬盘数据恢复,二分区表的推算
Master Boot Record
The Master Boot Record is located at the physical beginning of a hard disk, editable using the Disk Editor. It consists of a master bootstrap loader
code (446 bytes) and four subsequent, identically structured partition records. Finally, the hexadecimal signature 55AA completes a valid Master
Boot Record.
硬盘的主引导记录在硬盘的0磁头0柱面1扇区。
主引导记录由三部分组成:
(1)主引导程序;
(2)四个分区表;
(3)主引导记录有效标志字。
详见表1。
[表1主引导记录结构]
位 置 内 容
0000H -00D9H 主引导记录代码区
00DAH -01BDH 空闲区
01BEH -01CDH 分区1结构信息
01CEH -01DDH 分区2结构信息
01DEH -01EDH 分区3结构信息
01EEH -01FDH 分区4结构信息
01FEH -01FFH 55 AAH 主 引 导 记 录 有 效 标 志
说明:
A,分区表自偏移1BEH处开始,分区表共64个字节,表中可填入四个分区信息,每十六个字节为一个分区说明项,这16个字节含义详见表2。
B,必须注意:扇区号的高二位占用柱面号所在字节的最高二位,即柱面号为10位,扇区号6位。
The format of a partition record is as follows:
Offset Size Description
0 8 bit A value of 80 designates an active partition.
1 8 bit Partition start head
2 8 bit Partition start sector (bits 0-5)
3 8 bit Partition start track (bits 8,9 in bits 6,7 of sector)
4 8 bit Operating system indicator
5 8 bit Partition end head
6 8 bit Partition end sector (bits 0-5)
7 8 bit Partition end track (bits 8,9 in bits 6,7 of sector)
8 32 bit Sectors preceding partition
C 32 bit Length of partition in sectors
Operating system indicators: (hexadecimal, incomplete list)
00 Empty partition-table entry
01 DOS FAT12
04 DOS FAT16 (up to 32 MB)
05 DOS 3.3+ extended partition
06 DOS 3.31+ FAT16 (over 32 MB)
07 OS/2 HPFS, Windows NT NTFS, Advanced Unix
08 OS/2 v1.0-1.3, AIX bootable partition, SplitDrive
09 AIX data partition
0A OS/2 Boot Manager
0B Windows 95+ FAT32
0C Windows 95+ FAT32 (using LBA-mode INT 13 extensions)
0E DOS FAT16 (over 32 MB, using INT 13 extensions)
0F Extended partition (using INT 13 extensions)
17 Hidden NTFS partition
1B Hidden Windows 95 FAT32 partition
1C Hidden Windows 95 FAT32 partition (using LBA-mode INT 13 extensions)
1E Hidden LBA VFAT partition
42 Dynamic disk volume
50 OnTrack Disk Manager, read-only partition
51 OnTrack Disk Manager, read/write partition
81 Linux
82 Linux Swap partition, Solaris (Unix)
83 Linux native file system (ext2fs/xiafs)
85 Linux EXT
86 FAT16 volume/stripe set (Windows NT)
87 HPFS fault-tolerant mirrored partition, NTFS volume/stripe set
BE Solaris boot partition
C0 DR-DOS/Novell DOS secured partition
C6 Corrupted FAT16 volume/stripe set (Windows NT)
C7 Corrupted NTFS volume/stripe set
F2 DOS 3.3+ secondary partition
[表2分区结构信息]
偏移 长度 含义
00H 1 活动分区指示符,该值为80H表示为可自举分区(仅有一个),该值为00H表示其余分区。
01H 1 分区起始磁头号。
02H 1 低6位是分区开始的扇区,高2位是分区开始的柱面的头两位。
03H 1 分区开始的起始柱面号的低8位。
04H 1 系统标志,该值为01H表示采用12位FAT格式的DOS 分区,该值04H表示采用16位FAT格式的DOS分区,该值为05H表示为扩展DOS分区,为06H表示为DOS系统。
05H 1 分区终止头号
06H 1 低6位为分区结束的扇区号,头2位为结束柱面号的前2位。
07H 1 分区结束柱面号的低8位。
08H 4 本分区前的扇区数,低位字节在 前。
0CH 4 本分区总的扇区数,低位字节在前。
重要公式:
02H为X,03H为Y。柱面=(X>>6)*16^2+Y;
以我的硬盘为例:
有九个可用分区,二个不可用分区;
两个Primary NTFS分区,第二个为active;
七个Extened 分区,第五个为NTFS其他为FAT32.
.
主分区表数据:位置cylinder0, head 0,sector1
偏移 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 33 C0 8E D0 BC 00 7C FB 50 07 50 1F FC BE 1B 7C
1 BF 1B 06 50 57 B9 E5 01 F3 A4 CB BE BE 07 B1 04
2 38 2C 7C 09 75 15 83 C6 10 E2 F5 CD 18 8B 14 8B
3 EE 83 C6 10 49 74 16 38 2C 74 F6 BE 10 07 4E AC
4 3C 00 74 FA BB 07 00 B4 0E CD 10 EB F2 89 46 25
5 96 8A 46 04 B4 06 3C 0E 74 11 B4 0B 3C 0C 74 05
6 3A C4 75 2B 40 C6 46 25 06 75 24 BB AA 55 50 B4
7 41 CD 13 58 72 16 81 FB 55 AA 75 10 F6 C1 01 74
8 0B 8A E0 88 56 24 C7 06 A1 06 EB 1E 88 66 04 BF
8 0A 00 B8 01 02 8B DC 33 C9 83 FF 05 7F 03 8B 4E
9 25 03 4E 02 CD 13 72 29 BE 59 07 81 3E FE 7D 55
A AA 74 5A 83 EF 05 7F DA 85 F6 75 83 BE 2E 07 EB
B 8A 98 91 52 99 03 46 08 13 56 0A E8 12 00 5A EB
C D5 4F 74 E4 33 C0 CD 13 EB B8 00 00 80 24 45 00
D 56 33 F6 56 56 52 50 06 53
1B 00 00
1C 01 46 07 FE 7F 1E C6 28 11 00 99 31 35 00 80 00
1D 41 30 07 FE 7F B2 30 85 4A 00 C3 1C 20 00 00 00
1E 41 B3 0F FE FF FF F3 A1 6A 00 08 FE F7 01 00 00
1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
主分区表分析:
Master bootstrap loader code0000H -00D9H 33 C0 8E D0 BC 00 7C FB 50 。。。主引导记录代码,表示住分区表
01BEH -01CDH 分区1结构信息multi(0)disk(0)rdisk(0)partition(0)知该分区Boot Sector位于:起始磁头为0头,起始柱面为70D,起始扇区为1扇区。
01CEH -01DDH 分区2结构信息 multi(0)disk(0)rdisk(0)partition(1)活动分区指示符为80H,表示该分区为可自举分区。系统标志为07表示OS/2 HPFS, Windows NT NTFS, Advanced Unix系统。知该分区Boot Sector位于:起始磁头为0头,起始柱面为304D,起始扇区为1扇区。
01DEH -01EDH 分区3结构信息Extended partition系统标志字节为0F,说明是扩展分区Extended partition (using INT 13 extensions)。从扩展分区说明项知下一个分区表位于:起始磁头为0头,起始柱面为435D,起始扇区为1扇区。
01EEH -01FDH 分区4结构信息分区说明项数据均为00H没有定义。
01FEH -01FFH 55 AAH 主引导记录有效标志
扩展分区一分区表数据:位置cylinder435D, head 0,sector1
偏移 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1B 00 00
1C 41 B3 0B FE FF 08 3F 00 00 00 97 D5 53 00 00 00
1D C1 09 05 FE FF FF D6 D5 53 00 D6 D5 53 00 00 00
1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
扩展分区表分析:
01BEH -01CDH 分区1结构信息multi(0)disk(0)rdisk(0)partition(3)知该分区位于:起始磁头为1头,起始柱面为435D,起始扇区为1扇区(分区表占用磁头0)。系统标志字0BH表示 Windows 95+ FAT32
01BEH -01CDH 分区1结构信息系统标志字节为05H,说明是扩展DOS分区。于是知下一个分区表位于:起始磁头为0头,起始柱面为777D,起始扇区为1扇区。
Partition Table Entry #3 数据均为00H没有定义。
Partition Table Entry #4 数据均为00H没有定义。
其他扩展分区同理。
---------------------------------------------------------------------------------------------------------------------
附录:
Fdisk的MBR参数
MBR 系 (EXE) 一项未公布的开关,隐含于 MS DOS 3.30,延至 MS DOS 8.0(Windows ME)。实践中,有籍以修复主引导信息,重点在主引导程序。
FDISK /MBR 命令流程的分支有二:
读得主引导扇区检验标志(字) AA55h,操作单一,仅向主引导扇区位移 0-1BDH 写入当前系统固有的主引导程序,安全可*。
难能可贵的是它不触动主引导信息其余模块(分区表、检验标志),以及随后的 DOS 引导信息、文件分配表、根目录,省事许多。检出检验标志非 AA55h,写主引导程序、初始化分区表及登录检验标志,在 MS DOS 7.0 - 8.0 环境中,常规以系统支持的最大容量分配给基本 DOS 分区的方式登录分区表。分区表初始化(可能幸存的分区表被清除)的后果不难想象; 目前硬盘大都设置有其它分区,即使在高版本 DOS 环境中运作,常规建立的分区表每难能符合实际需求,后续工作量也相当可观。
不过,它也不触动位于其后的 DOS 引导信息、文件分配表及根目录,高版本 FDISK /MBR 命令适用于修复仅设基本 DOS 分区的硬盘分区表及检验标志受损,或主引导信息全毁。
可见,在运行 FDISK /MBR 命令之前,需查明检验标志是否 AA55h,酌情处理,切忌盲动。
经由 DOS 软盘引导,认硬盘,检验标志必健在。
另外,在 FDSIK 主菜单中选 4. Display Partition Information,列出分区信息,进一步证实检验标志正常; 若现 No partitition defined,检验标志每变异,而分区表或许尚健在。
●硬盘数据恢复,深入逻辑分区
现在深入每一个逻辑分区。逻辑分区结构如下:
FAT12/16
Logical sector =0 Logical sector=1(Floppy disk=1~9) Logical sector=1+sectors_per_FAT(Floppydisk=10~18) Logical
sector=1+sectors_per_FAT*2(Floppy disk=19~32) Logical sector=1+sectors_per_FAT*2+sectors_of_rootdirectories(Floppy disk=33~)
DOS Boot Sector FAT1 FAT2 ROOT Directory Data area(where files and subdirectories are stored)
FAT32
Usually 32 sectors Logical sector =0032h Logical sector =0032h+ 2*sectors_per_FAT
DOS Boot Recore 3 Sectors Reserved sectors Copy of record Reserve sectors FAT1 FAT2 Data area(where files and all bdirectories are stored)
在逻辑分区当中用逻辑的cluster和sector。换算关系为:
cluster=logical_sector/sectors_per_cluster;
这里sectors_per_cluster是在BIOS Parameter Block里得到的。
Sector=( logical_sector mod sectors_per_track)+1;
Head=( logical_sector / sectors_per_track)mod total_heads;
Cylinder= logical_sector(sectors_per_track* total_heads);
logical_sector=( cluster-2)*sectors_per_cluster+sector_of_file_area_offset;
logical_sector=(sector-1)+head*sector_per_track+sector*sector_per_track*heads;
每个扇区长度=512字节
总簇数=逻辑盘容量/簇容量
总簇数=FAT表长度(字节)/每个表项长度(字节)-2
FAT表长度=逻辑盘容量/簇容量*每个表项长度
Dos引导记录块位于逻辑0 sector中包含三部分:
(1) 磁盘IO参数表BPB;
(2) 磁盘基数表;
(3) 引导区代码。
FAT16的BPB(BIOS Parameter Block)表,描述逻辑盘结构组成,包含隐藏扇区数目(从0-1-1开始计算)、FAT扇区数、FAT拷贝数、硬盘磁头总数、根目录表项最大值等。FAT32系统中,BPB表的偏移与FAT16不同,但表项基本相同。整个隐藏扇区部分都作为逻辑盘的描述区域。
典型的primary partion 的磁盘IO参数表BPB:
典型的 logical partion 磁盘参数表:
硬盘BPB主要结构说明:
(Cylinder柱面/磁道-Side/Head磁头-Sector扇区地址以下简称为?-?-?)
主分区
名称 地址 长度(扇区)
主引导记录(Main Boot Record) 0-0-1 1
系统扇区(System Secotrs) 0-0-2,0-0-63 62
引导扇区(Boot) 0-1-1 1
扩展分区
名称 地址 长度(扇区)
扩展分区(Extend Partition) ?-y-1 1
系统扇区(System Secotrs) ?-y-2,?-y-63 62
引导扇区(Boot) ?-(y+1)-1 1
其后各项与主分区相同……
隐藏扇区(Hidden Secotrs):
FAT16 0-1-1 1
FAT32 0-1-1 32
文件分配表(File Allocation Table):
FAT16 0-1-2 根据逻辑盘容量变化
FAT32 0-1-33 根据逻辑盘容量变化
说明:
FAT16的每个表项由2字节(16位)组成,通常每个表项指向的簇包含64个扇区,即32K字节。 逻辑盘容量最大为2047MB。
FAT32的每个表项由4字节(32位)组成,通常每个表项指向的簇包含8个扇区,即4K字节。逻辑盘容量最小为512MB。
对于C分区,在MBR的偏移01c2H处,FAT16为06H,FAT32为0CH。
FAT是DOS、Windows9X系统的文件寻址格式,位于DBR之后。
在解释文件分配表的概念的时候,我们有必要谈谈簇(Cluster)的概念。文件占用磁盘空间,基本单位不是字节而是簇。一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64……同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。
为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以为了安全起见,FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为“未占用”,但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中标为“坏簇”,以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见的是FAT16和FAT32。
当一个磁盘Format后,在其逻辑0扇区(即BOOT扇区)后面的几个扇区中存在着一个重要的数据表—文件分配(FAT),文件分配表一式两份,占据扇区的多小凭磁盘类型大小而定。顾名思义,文件分配表是用来表示磁盘问件的空分配信息的。它不对引导区,文件目录的信息进行表示,也不真正存储文件内容。
我们知道磁盘是由一个一个扇区组成的,若干个扇区合为一个簇,文件存取是以簇为单位的,哪怕这个文件只有1个字节。每个簇在文件分配表中都有对应的表项,簇号即为表项号,每个表项占1.5个字节(磁盘空间在10MB以下)或2个字节(磁盘空间在10MB以上)。为了方便起见,以后所说的表项都是指2个字节的。
FAT表的开始由介质描述符+一串“已占用”标志组成:
FAT16硬盘----F8 FF FF 7F
FAT32硬盘----F8 FF FF 0F FF FF FF 0F
每个有效的FAT结构区包含两个完全相同的拷贝:FAT1、FAT2
文件分配表结构如1(H表示16进制)
表1
第0字节 表头,表磁盘类型。FFH双面软盘,每次道8扇区FEH单面软盘,每磁道8扇区FDH双面软盘,每磁道9扇区FCCH单面软盘,每磁道9扇区FC8H硬盘
第1~2字节 (表项号1)表示第一簇状态,因第一簇被系统占据,故此两字节为FFFFH
第3~4字节 (表项号2)表示第二簇状态,若为FFFH表此簇为坏的,DOS已标记为不能用;0000H表示此簇为空,可以用;FFF8H表
不能示该簇为文件的最后一簇;其余数字表示文件的下一个簇号,注意高字节在后,低字节在前。
第5~6字节 (表项号3)表示第三簇状态,同上。
注意:
不要把表项内的数字误认为表示当前簇号,而应是该文件的下一个簇的簇号。.高字节在后,低字节在前是一种存储数字方式,读出时应对其进行调整。是如两字节12H,34H,应调整为3412H。
文件分配表与文件目录(FDT)相配合,可以统一管理整个磁盘的文件。它告诉系统磁盘上哪些簇是坏的或已被使用,哪些簇可以用,并存储每个文件所使用的簇号。它是文件的“总调度师”。
当DOS写文件时,首先在文件目录中检查是否有相同文件名,若无则使用一个文件目录表项,然后依次检测FAT中的每个表项对应的簇中,同时将该簇号写入文件目录表项相的26-27字节,如文件长度不止一簇,则继续向后寻找可用簇,找到后将其簇号写入上一次找到的表项中,如此直到文件结束,在最后一簇的表项里填上FFF8H,形成单向链表。
DOS删除文件时只是把文件目录表中的该文件的表项第0个字节改为E5H,表此项已被删除,并在文件分配表中把该文件占用的各簇的表项清0,并释放空间。其文件的内容仍然在盘上,并没有被真正删除,这就是,等一类恢复删除工具能起作用的原因。
文件分配表在系统中的地位十分重要,用户最好不要去修改它,以免误操作带来严重的后果。
典型的FAT32表:
F8 FF FF FF FF FF FF FF 96 C4 00 00 FF FF FF 0F
FF FF FF 0F 06 00 00 00 FF FF FF 0F 08 00 00 00
09 00 00 00 0A 00 00 00 0B 00 00 00 0C 00 00 00
0D 00 00 00 0E 00 00 00 0F 00 00 00 10 00 00 00
FF FF FF 0F 00 00 00 00 FF FF FF 0F 14 00 00 00
15 00 00 00 FF FF FF 0F FF FF FF 0F FF FF FF 0F
19 00 00 00 1A 00 00 00 1B 00 00 00 FF FF FF 0F
00 00 00 00 1E 00 00 00 FF FF FF 0F 20 00 00 00
FF FF FF 0F 22 00 00 00 23 00 00 00 24 00 00 00
25 00 00 00 26 00 00 00 27 00 00 00 28 00 00 00
文件目录表(File Directory Table),即根目录区,又称为ROOT区:
紧跟在FAT2的下一个扇区,长度为32个扇区(256个表项)。如果支持长文件名,则每个表项为64个字节,其中,前32个字节为长文件链接说明;后32个字节为文件属性说明,包括文件长度、起始地址、日期、时间等。如不支持长文件名,则每个表项为32个字节的属性说明。
值得注意的是:
1,FAT32没有储存目录的目录区,而 FAT16储存根目录并把子目录放到数据区。
2,表示目录的目录项指出根目录地址同时长度字节为0,表示文件的目录项指出数据地址。
典型的FAT32根目录:
30 30 30 30 30 30 20 20 20 20 20 10 00 12 3C 7C
39 2B 39 2B 05 00 3D 7C 39 2B 3A 34 00 00 00 00
44 4D 32 4B 44 49 53 4B 49 4D 47 20 00 96 DB 40
39 2B 39 2B 0A 00 DC 40 39 2B 88 02 5B 72 13 00
42 49 4E 42 49 4E 20 20 20 20 20 08 00 00 00 00
00 00 00 00 00 00 47 65 09 2B 00 00 00 00 00 00
000000子目录
注意OS7前的怪字符为E5H,表示被删除,被删除文件仍旧能够找到开始簇,数据恢复就依*这一特点。
数据区(Data Area): 紧跟在FDT的下一个扇区,直到逻辑盘的结束地址。
由上图可以想到,即使目录被破坏仍旧可能从磁盘里把信息读出。
到现在为止,硬盘数据结构的理论部分已经讲完。
数据恢复主要是手动找出FAT、目录、数据的对应关系或直接找到数据,现在已经有完善的磁盘编辑器帮助我们做到这一点,使工作大大简化了。
有只能化的恢复工具能不依*FAT而恢复被删除文件,比如RECOVERNT,估计是依*Win2000的文件使用记录。这种方法在冲启动之前恢复文件的。


发布评论