
一、理论篇
要深入学习数据恢复,并非是一件容易的事,要想成为一个数据恢复专家,没有深厚的理论知识是不可能的,你必须了十分了解磁盘的逻辑结构,就让我们来看看需要学习的理论知识吧。
当我们对文件进行访问时,你有没有想过,操作系统是如何对文件进行操作的呢?这些文件又是如何存放在磁盘当中的呢?先来看看硬盘的总体结构,在介绍硬盘总体结构之前有必要介绍一下硬盘的参数,硬盘是以磁头(heads),柱面(cylinders),扇区(sectors)进行访问的。其中: 磁头数(heads)表示硬盘总共有几个磁头,也就是有几面盘片, 大为 255 (用 8 个二进制位存储); 柱面数(cylinders) 表示硬盘每一面盘片上有几条磁道, 大为 1023 (用 10 个二进制位存储); 扇区数(sectors) 表示每一条磁道上有几个扇区, 大为 63(用 6 个二进制位存储). 每个扇区一般是 512个字节,学习过汇编语言的朋友可能想到了,bios中断13h的入口参数中,ch是磁道号其值为0h~feh( 多255个磁道),cl中低6位为扇区号,其值为1h~3fh( 多63个扇区),dh为磁头号的低位,cl中的高2位为磁头号的高位,也就是说,磁头号 多由10位二进制数表示,(1111111111)2=(1023)10,也就是说 多可以表示的磁头数为1024个。请大家记住这些在我们以后的学习中还会用到的,由此可以看出基于这种访问方式我们 大能访问的磁盘容量为:
255 * 1023 * 63 * 512字节=8414461440/1048576=8024.66m
只有大约8g的空间,这是因为早期磁盘还很小,想想当年你拥有一块200m硬盘时的喜悦心情吧!就好象当年的科学家们以为1k内存已经很大了一样,让电脑用户很长一段时间都为配置dos下的内存而烦恼。而今,你肯定拥有一块大于8g的硬盘了,你能够用她,应该多亏了一种较新的硬盘访问技术——扩展 int13h 技术。采用线性寻址方式存取硬盘, 所以突破了 8 g的限制, 而且还加入了对可拆卸介质(如活动硬盘)的支持,因为是谈数据恢复不是谈编程,关于扩展int13h技术我在此就不详述了。
硬盘数据(基于fat结构)总体结构如下:
1、主引导扇区(master boot sector) (占用一个扇区)
2、第一个分区的引导扇区(boot sector)(占用一个扇区)
3、第一个分区的fat1 (占用空间由磁盘大小和fat类型来定)
4、第一个分区的fat2 (占用空间由磁盘大小和fat类型来定)
5、第一个分区的根目录区
6、第一个分区数据区 (用来存放各种文件的数据)
7、扩展分区表 (占用一个扇区 )
8、第二个分区的引导扇区(boot sector)(占用一个扇区)
9、第二个分区的fat1 (占用空间由磁盘大小和fat类型来定)
10、第二个分区的fat2 (占用空间由磁盘大小和fat类型来定)
11、第二个分区的根目录区
12、第二个分区数据区 (用来存放各种文件的数据)
