数据恢复技术案例教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
பைடு நூலகம்
2.分区类型参数与常见分区类型 分区类型标志表明其所描述的分区的类型,如FAT、 NTFS、LINUX或者FreeBSD等,不同的操作系统可 能会使用不同的分区类型。利用分区类型值,可以 达到隐藏某些分区的目的。例如,将NTFS的类型 值由0x07改为0x17,重新进入Windows后, Windows将不再为其分配盘符,也就无法在“我的 电脑”中看到这个分区。下表列出了一些常见的磁盘 分区类型:
图3-4EBR结构
所谓扩展分区,严格地讲它不是一个实际意义的分 区,它仅仅是一个指向下一个分区的指针,这种指 针结构将形成一个单向链表。这样在主引导扇区中 除了主分区外,仅需要存储一个被称为扩展分区的 分区数据,通过这个数据可以找到下一个分区(实 际上也就是下一个逻辑磁盘)的起始位置,以此起 始位置类推可以找到所有的分区。无论系统中建立 多少个逻辑磁盘,在主引导扇区中通过一个扩展分 区的参数就可以逐个找到每一个逻辑磁盘。
硬盘的主引导记录(MBR)是不属于任何一个操作系统 的,它先于所有的操作系统而被调入内存,并发挥作用。 启动计算机时,系统首先对硬件设备进行测试,测试成 功后进入POST自举程序INT 19H,然后读系统磁盘0柱 面、0磁头、1扇区的主引导记录(MBR)内容到内存 指定单元0:7C00地址开始的区域,并执行MBR程序 段: 检查硬盘分区表是否完好。 在分区表中寻找可引导的“活动”分区。 将活动分区的第一逻辑扇区内容装入内存。(在DOS分 区中,此扇区内容称为DOS引导记录(DBR))。 至此,计算机才将控制权交给主分区(活动分区)内的 操作系统,并用主分区信息表来管理硬盘。
扩展分区中的每个逻辑驱动器都存在一个类似于 MBR的扩展引导记录( Extended Boot Record, EBR),也有人称之为虚拟MBR或扩展MBR,意思是 一样的。 EBR的数据结构与MBR很相像,由于EBR不再承担 像MBR那样的磁盘加载功能,所以偏移1BE之前的 446个字节的引导代码已经被00所代替,但后边的 DPT和扇区认证标签55AA还是存在的。其结构如 图3-4所示。
下面通过一个实际的例子来分析一下EBR的结构。 首先看图3-6中磁盘2的分区情况,可以看出这块 硬盘分了四个分区:一个主分区、三个逻辑分区。 用WinHex查看该盘的MBR扇区,如图3-7所示。
从第一个分区表项可以看到,主分区为FAT32格式, 分区开始于63号扇区,大小是417627个扇区,也 就是204MB。第二个分区表项描述的是一个扩展分 区,该扩展分区开始于417690号扇区,大小为 1638630个扇区。该扩展分区并不是一个可用的 驱动器,而是对一段空间的描述,在其内部进一步 划分为3个逻辑分区。为了便于描述,我们称该扩 展分区为“主扩展分区”。 下一步我们跳转到主扩展分区的开始扇区417690, 用winhex查看该扇区,结果如图3-9所示。
主引导扇区主要由三部分组成:主引导记录 MBR (Master Boot Record或者Main Boot Record)、 硬盘分区表 DPT(Disk Partition Table)和结束 标志字三大部分组成。
在总共512字节的MBR扇区中,MBR的引导程序 占了其中 的前446个字节(偏移0H~偏移1BDH),随后的64个字节(偏 移1BEH~偏移1FDH)为DPT(Disk PartitionTable,硬盘分 区表),最后的两个字节“55 AA”(偏移1FEH~偏移1FFH)是分 区有效结束标志。 用WinHex查看某个硬盘的MBR,如图3-1所示。读者可以 对照偏移量自行分析一下。
书名:数据恢复技术案例教程 ISBN: 978-7-111-44252-3 作者:赵振洲 出版社:机械工业出版社 本书配有电子课件
3.1.1 DOS分区 DOS分区是我们遇到的最多的分区类型。多年以来, DOS分区体系一直是Intel IA32硬件平台(i386 / x86等)的分区体系。虽然很多参考文档对DOS分区 进行介绍,但一直没有一个统一的标准,也没有统 一的命名规则。Microsoft将使用DOS分区体系的 磁盘称为"主引导记录(Master Boot Recorder, MBR)磁盘",这是相对于使用"全局ID分区表(GUID Partition Table,GPT)磁盘"而言的。
解 80 为 可 磁 释 引 导 ; 头 00 为 不 可引导。
(1)0x00~0x00:1个字节,可引导标志。 (2)0x01~0x03:3个字节,分区的起始CHS地 址。 (3)0x04~0x04:1个字节,分区类型标志。 (4) 0x05~0x07:分区结束CHS地址。与分区 起始CHS地址结构相同。 (5)0x08~0x0B:4个字节,分区起始LBA地址, 使用little-endian顺序。 (6)0x0C~0x0F:4个字节,分区大小扇区数, 使用little-endian顺序。
我们都知道,对于一个磁盘来说,要想存储数据,就必 须将其进行划分并格式化成某种文件系统后才能够使用。 经过划分后的区域,我们称其为"分区"。严格地说,分 区是一个物理硬盘上一些连续的扇区的集合。如果扇区 不连续,那是不能划分于同一个分区里的。 “卷”在某种意义上是对分区的扩充。随着计算机应用 的进一步扩大,数据存储已经不能满足于在单一磁盘上 的进行,有的时候,需要进行跨盘的数据存储。卷的出 现很好地弥补了原分区所受的诸多限制,不仅允许同一 磁盘不连续空间的统一管理,而且允许跨盘的数据存储 管理。实际上,分区可视为卷的一种特殊情形——简单 卷。亦即:由单一物理磁盘的连续空间构成的卷。
DOS分区磁盘有一个共同的特点,那就是硬盘的第 一个扇区(也就是0号扇区)被称为主引导记录扇 区,也称为主引导记录MBR(Master Boot Recorder,MBR)。当计算机启动并完成自检后, 首先会寻找磁盘的MBR扇区并读取其中的引导记录, 然后将系统控制权交给它。而对磁盘上数据的总体 管理,是经由MBR得以实现的。由此可见,如果 MBR损坏,则后续的所有工作都无法继续进行。
很多人一提到"DOS分区",就认为只是指Windows下使用的 分区体系,这是对"DOS分区"的一个理解误区。"DOS分区" 并不是以操作系统的不同而划定的分区体系,而是指使用" 主引导记录(MBR)"的分区体系。Microsoft DOS、Linux以 及基于IA32平台的FreeBSD和OpenBSD等操作系统都使用 DOS分区体系。DOS分区是最常见也是最复杂的分区体系。 我们都知道,要想使用硬盘存储数据,首先要将其进行分区, 划分成一定的逻辑区域,然后通过对分区进行格式化建立相 应的文件系统后,才能够在分区内进行数据的存储。系统通 过记录在分区表(或磁盘标签)中的分区信息对各个分区进行 识别与管理,如果这些信息损坏,就会表现为分区不可见, 数据丢失。 因使用环境不同,分区的管理方式会有所不同,也因此而出 现了各种不同的分区体系,如DOS分区体系、Apple分区体 系、BSD分区体系等。
扇区是数据信息记录的最基本单位。磁盘中的每个扇区,在不同的场合会有不同的地址编号。 1.物理地址 在整个磁盘上对扇区采用LBA寻址方式,即将磁盘上的所有扇区由0开始编号,直到最大扇 区数减1。对于某个扇区,我们称它的这个LBA地址为"物理地址(Physical Address)"。 2.物理卷地址 每个物理磁盘又可以看做是一个物理卷,因此,每个扇区又相应地有一个物理卷地址。在将 物理磁盘做单一磁盘使用时,物理地址与物理卷地址是相同的。但有时候,我们需要将同一 物理磁盘上不连续的扇区合并使用,或者将不同物理磁盘上的部分空间合并成一个虚拟的物 理磁盘使用。这时,物理地址与物理卷地址则会不同。因此,我们需要注意区分物理地址与 物理卷地址间的区别。 3.逻辑卷地址 在逻辑卷内部,为了便于管理,我们需要为卷内的每个扇区赋予一个相对于该卷开始扇区的 地址号,我们称这个地址号为扇区的"逻辑卷地址(Logical Volume Address)"。 注意,一个扇区的逻辑卷地址是相对于它所属的逻辑卷的起始位置而言的,而不是相对于整 个磁盘的0扇区。如果磁盘上的一个扇区属于某个卷,那么它至少有三个地址号:物理地址 号、物理卷地址号和逻辑地址号。如果某个扇区不属于任何一个卷,那么它只有物理地址号 和物理卷地址号而没有逻辑卷地址号。
以图3-1所示分区表为例,我们用WINHEX的模板 管理器中的MBR模板来查看其磁盘分区信息,结果 如图3-3所示。对WINHEX不熟悉的读者请先学习 “WINHEX使用手册”。
图3-3MBR模板
3.3.1扩展分区概念 我们平时说到的分区概念,不外乎三种分区方式 :主分区、 扩展分区和逻辑分区。 主分区是一个比较单纯的分区。从操作层面看,它是在磁盘 分区过程中,直接指定的。从内部结构看,磁盘的主分区在 MBR的DPT里,都会有一个独立的分区表项指定。在主分区 中,不允许再建立其它逻辑磁盘。 扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆 的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储 空间,而每个分区表项的参数占据16个字节,故主引导扇区 中总计可以存储4个分区的数据。操作系统只允许存储4个分 区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4 个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足 实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统 引入了扩展分区的概念。
根据EBR扇区的特征我们判断该扇区就是EBR扇区,也就是说,主扩展分 区的开始扇区其实就是EBR,而且是该硬盘的第一个EBR,我们称它为 EBR1,用winhex的模板查看分区表的数值,如图3-10所示。第一个分 区表项是用来管理第一个逻辑驱动器的,第二个分区表项分区类型为 05H,说明它是一个扩展分区,为什么在扩展分区中还有扩展分区呢? 因为扩展分区是一种链式结构来管理的,EBR扇区中第一个分区表项总是 描述当前的逻辑驱动器,第二个分区表项则连接到下一个EBR扇区,以引 出下一个逻辑驱动器。我们称这样的扩展分区为“子扩展分区”,并把 这个子扩展分区命名为“子扩展分区1”。从图3-10我们看到,子扩展 分区1开始位置在401625扇区,这是个相对位置,是以EBR1所在扇区为 起始点来定位的。而前面我们已经得到EBR1所在扇区位置为417690, 因此子扩展分区1的实际开始扇区为417690+401625=819315。
图3-1 MBR结构
操作系统为了便于用户对磁盘的管理,引入了磁盘 分区的概念,即将一块磁盘逻辑划分为几个区域。 在MBR的共64个字节的分区表中,以16个字节为 一个分区表项来描述一个分区的结构。 1.分区表项的构成
偏 00 移 意 可 引 导 义 标志 01 02 03 04 分 区 类型 分 区 开 始 的 起 始 柱 面 号 的低8 位 05 06 07 0 8 0 9 1 0 1 1 1 1 2 3 1 4 1 5 分区起始参数 低 6 位是分 区开始的 扇区,高 2 位是分区 开始的柱 面的前两 位。 分区结束参数 磁 头 低6位是分 区开始的扇 区,高2位 是分区开始 的柱面的前 两位。 分 区 开 始 的 起 始 柱 面 号 的低8 位 分区起始 LBA 地 址 little-endian 分区大小 (扇区总数) little-endian
图3-5扩展分区结构
在EBR的DPT中,第一个逻辑驱动器的扩展分区表 中的第一项指向它自身的引导扇区。第二项指向下 一个逻辑驱动器的EBR。如果不存在进一步的逻辑 驱动器,第二项就不会使用,而且被记录成一系列 零。如果有附加的逻辑驱动器,那么第二个逻辑驱 动器的扩展分区表的第一项会指向它本身的引导扇 区。第二个逻辑驱动器的扩展分区表的第二项指向 下一个逻辑驱动器的EBR。扩展分区表的第三项和 第四项永远都不会被使用。如此循环下去,直到没 有新的逻辑驱动器出现。其结构如图3-5所示。