找回硬盘丢失数据全攻略
随着硬盘容量的日趋倍增,长时间使用硬盘,硬盘难免有时会出错,轻则数据丢失,重则整个硬盘报废,造成不可预料的严重后果,本文就带领大家深入浅出的了解硬盘相关知识,并对常见的几种数据丢失情况采用特殊恢复软件来进行数据恢复,通过文本的带领,相信对丢失数据的恢复再也不是件难事。
硬盘分区方式
硬盘分区后一般形成3种形式的分区,即主分区、扩展分区和非DOS分区。其中主分区又称为主DOS分区(Primary DOS Partition),扩展分区又称为扩展DOS分区(Extended DOS Partition)。非DOS分区(Non-DOS Partition)是一种特殊的分区形式,它是将硬盘中的一块区域单独划分出来供另一个操作系统使用,如Windows NT、Linux和Unix等。对主分区的操作系统来讲,非DOS分区是一块被划分出去的存储空间。只有非DOS分区内的操作系统才能管理和使用这块存储区域,非DOS分区之外的系统一般不能对该分区内的数据进行访问。
主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其他逻辑磁盘。
扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于微机操作系统仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。由于操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。
所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。
---- 需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。
硬盘分区结构
为了方便操作系统在启动过程中访问硬盘的分区参数,分区的相关数据存储在一个被称为主引导扇区(MBR)的特殊存储空间中,也就是存储在硬盘的0磁头0柱面 1扇区。主引导扇区为分区数据保留了64个字节的存储空间,每个分区的数据占用16个字节的存储空间。硬盘分区数据由于受主引导扇区中只能存储4个分区数据的影响,因此采用的是一种混合的分区数据保存结构,这种混合的分区数据结构由以下3个部分组成:
1.主分区的分区数据存储在主引导扇区中,并且通常是分区表数据中的第一项。考虑到应用的广泛性,主分区通常也是活动分区。
2.根据用户需要,可以建立一个扩展分区。扩展分区的相关数据也存储在主引导扇区中。扩展分区实际上是一个指针,它指向系统下一个分区,也就是下一个逻辑磁盘的位置。
3.根据是否已经建立了扩展分区,系统允许建立2~3个非DOS分区,用于建立其他操作系统的存储和管理区域。
根据分区的结构,我们知道在主引导扇区的分区表中存储上述3种类型分区形式的参数,这些参数包括分区的起始磁头、柱面、扇区和分区结束的磁头、柱面、扇区参数,以及分区的类型和是否为活动分区等对分区至关重要的数据。对于主分区和非DOS分区来讲,这些参数就是分区实际的参数。而对于扩展分区来讲,其扩展分区的起始物理地址实际上是另一个分区表数据的存储物理地址。根据扩展分区中所建立的逻辑磁盘的数量,将相应产生相同数量的分区数据。例如,假设一个物理磁盘的扩展分区中建立了3个逻辑磁盘,则在主引导扇区中存储的分区表中可以找到第一个逻辑磁盘的起始分区地址;而在第一个逻辑磁盘的起始物理地址中将存储两项分区数据,一项是当前逻辑磁盘的分区数据,另一项是指向下一个逻辑磁盘的起始分区地址。也就是说,每一个逻辑磁盘
实际上均有一个分区引导扇区,该分区引导扇区存储当前分区和下一个分区的引导扇区的物理地址。若分区引导扇区中仅存有当前分区的物理地址,没有下一个分区的物理地址,则表示当前分区是最后一个逻辑磁盘。所以,我们称这种逐项给出下一个分区地址的指针链表为一个分区结构的链表。
包括有4个逻辑磁盘的分区数据存储结构如图所示。
根据上图所阐述的分区与逻辑磁盘结构关系,不难得出这样的结论:逻辑磁盘实际上就是一个独立的分区,只不过分区的参数不是存储在主引导扇区中,而是存储在各个分区的第一个扇区中。通过存储在主引导扇区中的扩展分区参数,按单向链表的方式可以逐个访问到逻辑磁盘的分区参数。
用实际的分区数据来理解磁盘参数的存储结构
下面我们用一组实际的数据对上述分区结构理论进行论证,有关的数据如图所示。
根据图提供的数据,主引导扇区(0磁头0柱面1扇区)中存储的分区表数据表示物理硬盘分成两个区,其中第1个分区为主分区(分区类型标志为06H),且为活动分区。而第2个分区为扩展分区(分区类型标志为05H),下一个分区表数据的存储地址为0磁头F4H柱面(即244柱面)1扇区。用汇编语言程序读入0 磁头F4H柱面1扇区的数据,发现其分区表的数据结构与主引导扇区完全相同,但没有分区引导程序部分,除了分区表数据外,其余数据均为0。第2个分区引导扇区中存储的分区表数据表示该分区从1磁头F4H柱面1扇区开始,这是该分区的逻辑0扇区的位置,而分区标志(06H)表示对应的分区为主分区,下一个分区从0磁头1ABH(即427)柱面(柱面参数共10位二进制,其中第9和10位由前一个字节的最高两位提供)1扇区开始,为扩展分区。依次类推,可以通过第1个扩展分区的数据依
序找到每一个分区或逻辑磁盘的数据。在0磁头262H(即610)柱面1扇区中存储的分区表数据表示该分区是最后一个分区。
根据上图所提供的硬盘实际存储的分区数据,不难得出这样的结论:该硬盘共有两个分区,其中主分区构成逻辑C磁盘,扩展分区构成D、E和F 3个逻辑磁盘。
至此,我们了解了硬盘分区及逻辑磁盘的构成原理,同时掌握了分区的数据存储结构。通过掌握分区的数据存储结构有助于我们了解数据恢复的意义。