- 数据恢复技术与典型实例
- 扈新波编著
- 608字
- 2020-08-26 12:15:19
2.1 硬盘数据组织方法
如果我们刚刚购买了一块硬盘,最先考虑的问题恐怕就是如何进行分区,如何进行格式化了,那么究竟什么是分区,什么是格式化,这两项工作究竟对硬盘做了什么操作?相信很多读者并不知道其中的奥秘。
正如“格式化”本身的字面意义,就是把硬盘整理成为操作系统所能识别的“格式”所进行的一系列化操作,那么对于Windows来讲,我们所进行的这些操作就是执行“Format”命令。
而“分区”这个概念是伴随着 Windows 的发展而发展起来的,确切的说应该是伴随着硬盘容量越来越大,为了方便使用者进行区域划分而设计的。简单来说“分区”的概念就是将一块大容量的硬盘分成多个“区”,便于用户在每一个“区”存放不同的数据资料。这就好像将一个大房间从中间分成两部分,左边供人休息,而右边供人工作。
进行完分区和格式化操作之后,我们还需要安装操作系统才可以使用使用硬盘进行数据的存储和读取,因为我们现在普遍以Windows系列为主要使用的操作系统,那么在分区过程中,实际上我们是将硬盘分成主引导扇区、操作系统引导扇区、FAT、DIR和Data 5部分,其中主引导扇区是唯一的,其他的则随分区数的增加而增加。下面我们就对这几大组成部分一一进行说明。
2.1.1 主引导扇区
首先我们要说明的是,主引导扇区与主引导记录不是同一个概念,主引导扇区包含主引导记录,主引导记录是主引导扇区的一部分,二者不可混淆。
主引导扇区位于整个硬盘的逻辑最前列,其具体位置位于硬盘的0磁道0柱面1扇区,它又由两部分组成,分别是硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)。
主引导记录的作用是检查分区表是否正确及确定哪个分区安装有操作系统以便正确引导计算机,在该程序结束时把操作系统的引导扇区调入内存加以执行从而顺利实现从主引导记录到操作系统引导扇区的过渡。
当我们遇到硬盘启动过程中无法自举的情况时,有很大一部分故障都是因为主引导记录损坏引起的,主引导记录的损坏会直接导致计算机无法找到硬盘,因而引起硬盘无法引导操作系统。这种类型的硬盘拯救,我们将在本书第3章加以介绍。
注意
我们要特别说一下主引导记录MBR(Main Boot Record), MBR是由分区程序产生的,例如Windows的Fdisk.exe,而因为操作系统和分区程序的不同,这个扇区也不尽相同。
2.1.2 操作系统引导扇区
OBR(OS Boot Record)即操作系统引导扇区,是操作系统可直接访问的第一个扇区,既然是操作系统的引导扇区,那么其位置也就位于每一个操作系统的第一个扇区。一般对于我们家用单操作系统计算机来说,它位于硬盘的0磁道1柱面1扇区。
与主引导扇区类似,它也包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。对于 Windows 系列来说,引导程序就是我们平常所说的 Command.exe程序。
BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit)的大小等重要参数。
由此我们可以看到操作系统启动其整个过程实际上是多个程序依次接力才得以能正常启动的。正因为如此,每一个环节都要正常才能够保证计算机的正常启动。
注意
如果在启动过程中出现了问题,我们一定要从开始的第一个环节逐步排除,最终找到问题的解决方法。
2.1.3 文件分配表
文件分配表即FAT(File Allocation Table),看到这个我们一定会首先想到FAT16和FAT32这两种分区格式。当将文件分配表和分区格式这两个概念放在一起时,可能很多读者会产生一些不理解,那么我们就来做一个比喻。
我们把一块刚刚出厂的没有进行过任何操作的硬盘比喻成一个大仓库,而把具体的文件比喻成仓库中的货物,那么FAT就可以认为是记录货物在仓库中的摆放位置的登记表。
如果把FAT16认为是所有货物都横向摆放的话,那么FAT32就可能是纵向摆放,如图2-1和图2-2所示就分别列出了同一个仓库中不同的摆放方式。也就是说,同样的货物在同样的仓库中,因为记录货物的登记表不同,那么存取方式也肯定不同。
图2-1 横向存储方式
图2-2 纵向存储方式
那么当我们需要取仓库中的某一个货物时,首先我们要根据登记表来找到仓库的位置,然后才能进行搬运。同样的道理,文件存储在硬盘中也是如此,因此 FAT16和 FAT32是DOS/Windows 系统的文件寻址系统,而进入到 Windows 2000或 XP,出现了新的文件系统NTFS,据说下一代的Windows Vista将使用WinFS文件系统。
经过上面的讲解,相信读者已经了解了FAT文件分配表的重要性,那么理解了上述道理也就明白了为什么Linux操作系统不能够识别Windows操作系统的分区格式。至于如何进行恢复, FAT文件分配表是如何进行存取的,我们将在后面的章节加以介绍。
注意
正因为文件分配表的重要性,因此,文件分配表一般在创建时程序会自动备份。本书会在后面章节中对该备份进行恢复。
2.1.4 目录区
DIR是Directory根目录区的简写,DIR紧接在第二个备份FAT表之后,其实,只有FAT还不能定位文件在磁盘中的位置,FAT还需要DIR的一些信息才能准确定位文件的位置。
DIR主要记录每个文件(目录)的起始单元、相关文件属性等。其中起始单元是定位文件最为重要的一个信息,而文件属性也就是我们所熟悉的是否为只读、隐藏等。
在计算机寻找一个文件的位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。在确定了文件的位置和大小后,只要将存放该文件内容的数据区中的数据读出来就完成了一个文件(文件夹)的读取。
2.1.5 数据区
我们知道,一本字典虽然索引部分占据了不少的页码,但是具体的文字解释才是占据绝对性优势的,对于硬盘来说更是如此。数据区Data同样占据了硬盘的绝大部分空间。
数据区和前面的部分是相互依托的作用,缺少任何一部分都无法完成数据的读取和存放。那么讲到了数据区我们来说一说 Windows 下的格式化程序 Format.exe,我们一般的认识是Format命令将硬盘中的所有数据都进行了清除,从而无法得到我们想要的数据。其实在前面就已经说过,让我们无法找到一件东西的方法除了将这件东西彻底损坏外,还有一种方法就是把存放这个东西的信息消除掉。
因此,在硬盘的Format命令上,采用了第二种方法,即Format命令没有把Data区的数据清除,只是重写了FAT表,这样也就造成了数据的消失。硬盘分区同样是修改了MBR和OBR,绝大部分的 Data 区的数据并没有被改变,这也是许多硬盘数据能够得以修复的原因,也正是这种原理给我们的数据恢复带来了更多的希望。
注意
数据区才是我们数据恢复的重中之重,通过一定的方法即使没有索引,我们也能恢复出想要的数据。
2.1.6 硬盘分区组成
前面已经讲到了,所谓硬盘分区就是将硬盘划分成一个个区域以便于我们的使用。在Windows下平时说到的分区概念,不外乎3种,即主分区、扩展分区和逻辑分区。
主分区是一个比较单纯的分区,通常位于硬盘的最前面,在 Windows 操作系统中就是我们最经常说的C磁盘。通常来说主分区只有一个,有且仅有一个是活动分区,这句话的意思实际上就是说一个硬盘中可能存有多个主分区,但是只能有一个主分区是活动的。而且在主分区中,不允许再建立其他逻辑分区。
与主分区同处于一个层面的就是我们所说的扩展分区,而逻辑分区实际上是位于扩展分区之内的,图2-3是硬盘分区结构,可以看到D、E、F 3个分区是位于同一个分区下的,这个分区也就是我们所说的扩展分区。
图2-3 硬盘分区信息
由于扩展分区的概念非常复杂,因此也就造成了扩展分区和逻辑磁盘的混淆。扩展分区严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针。由于硬盘仅仅为分区表保留了64字节的存储空间,而每个分区的参数就需要占据16字节,那么我们不难算出如果按照这种计算方式,我们只能拥有64/16=4个逻辑分区,而现在我们可以看出4个逻辑分区是远远不能满足我们的需要的。
为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。扩展分区实际上是存储了逻辑分区的地址牌,当我们需要访问逻辑分区的时候,首先到扩展分区里面去寻找逻辑分区的具体起始位置。根据起始位置类推就可以找到所有的分区,因此无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。
注意
扩展分区实际上是存储了逻辑分区的地址牌,读者一定要理解这句话。
2.1.7 计算机文件格式
计算机中的文件从根本上来说就是一些列的0与1的组合,我们可以称为数据流,读取和删除文件的操作,实际上就是对这些数据流进行操作的过程。
虽然一个文件表现为一个单一的流,但它经常在磁盘不同的位置存储为多个数据碎片(甚至是多个磁盘)。操作系统会将它们组织成文件系统,每个文件放在特定的文件夹或目录中。
文件是由软件创建的,而且符合特定的文件格式。一种重要的文件是文本文件,是由一些字符的序列组成的,二进制文件一般是指除了文本文件以外的文件。
文件格式或文件类型是指计算机为了存储资讯而使用的对资讯的特殊编码方式,用于识别内部存储的资料。比如,有的存储图片,有的存储程序,有的存储文字信息。每一类信息都可以以一种或多种文件格式保存在计算机存储中。每一种文件格式通常会有一种或多种扩展名可以用来识别,但也可能没有扩展名。扩展名可以帮助应用程序识别的文件格式。
文件扩展名是操作系统用来标志文件格式的一种机制。通常来说,一个扩展名是跟在文件名后面的,由一个分隔符分隔。在一个像“readme.txt”的文件名中,readme是文件名,txt为扩展名,表示这个文件是一个纯文本文件。
注意
我们经常接触的扩展名有doc(Word文档)、wps(WPS文档)、xls(Excel电子表格)、ppt(PowerPoint演示文稿)、jpg(图片)、txt(纯文本)、rar(WinRAR压缩文件)、htm(网页文件)、html(网页文件)等。
2.1.8 数据存储原理
上面我们详细说明了硬盘的存储方式、存储原理,从硬盘的结构逐渐讲到了文件的存储方式。虽然上面已经概括性地说明了文件的存取,特定操作的详细步骤仍然没有涉及到,下面将一一进行说明。
1.文件的写入
当我们要保存文件时,操作系统首先在DIR区存储文件的相关信息,然后再到Data区写入文件的具体内容,具体说来,首先在DIR的空白区写入文件名、大小和创建时间等信息,然后在Data的空白区将文件的具体内容进行保存,最后将Data区的起始位置写入DIR区,这样就完成了一个文件的写入过程。
2.文件的删除
Windows 的文件删除我们已经说过了,并没有对 Data 区做任何的操作,只是将文件头也就是DIR目录区做了删除标记而已。具体来说就是将目录区文件的第一个字符改成了E5,表示将该文件删除了。
掌握了上面所讲述的所有内容,那么我们对计算机的硬盘数据存储方式有了更多的认识,对与计算机用户来说,硬盘故障简直就是一场灾难。大多数时候硬盘里的数据比硬盘本身更为重要,因此,我们在平时的日常使用中一定要多多对硬盘数据进行备份。虽然说我们可以通过特定的方法和步骤来恢复一些数据,但这只是亡羊之后的补救,肯定会有很多的损失。所以为了避免更大的损失,我们一定要及时做好备份工作。本书的后续章节也将专门介绍各种备份方法。
注意
在懂得了上述基本原理之后,我们不难明白一旦数据丢失,首先应该尽最大可能不再对硬盘进行任何写操作。这一点是相当重要的,可以说是涉及我们能否成功进行数据恢复的关键中的关键。