硬盘数据恢复教程 此文章从 google搜索经鄙人整理而来,并非本人的造诣至此,请勿联系笔者。 硬盘数据恢复很大程度依靠运气,无必胜把握,并且不与投入时间成正比,不要寄予太大的希望。 请勿轻易拿自己硬盘做实验 建议数据恢复前先用硬盘保护卡对拷到其他硬盘上做一个备份,然后修理备份。(用 ghost不行) ●硬盘数据恢复,一概论 初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统 才可以使用。一个完整硬盘的数据应该包括五部分:MBR,DBR,FAT,DIR区和DATA区。其中只有主 引导扇区是唯一的,其它的随你的分区数的增加而增加 主引导扇区 主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR( Main boot record) 和分区表DPT( Disk partition table)。其中主引导记录的作用就是检查分区表是否正确以及确定 哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存 加以执行。至于分区表,很多人都知道,以8OH或00H为开始标志,以55AAH为结束标志,共64字节, 位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如D0S的 Fdisk.exe)产生的,不同的 操作系统可能这个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述 的任务即可,这也是为什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写 所以才出现了很多的引导区病毒) 操作系统引导扇区 oBR(0 S Boot record)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DoS 来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操 作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BI0 S Parame ter block) 的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有 所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如 MSDS或者起源于MSD0S的Win9x/Me的I0.SYS和MSDS.SYS)。如是,就把第一个文件读入内存,并把 控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述 符、根目录大小、FAT个数、分配单元( Allocation unit,以前也称之为簇)的大小等重要参数 OBR由高级格式化程序产生(例如D0S的Format.com)。 文件分配表 FAT( File allocation table)即文件分配表,是DoS/win9x系统的文件寻址系统,为了数据安全 起见,FAT一般做两个,第二FAT为第一FAT的备份,FAT区紧接在OBR之后,其大小由本分区的大小及 文件分配单元的大小决定。关于FAT的格式历来有很多选择, Microsof t的D0S及 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虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是 些枯燥的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(指 高级格式化,例如D0S下的 Format:程序),并没有把DATA区的数据清除,只是重写了FAT表而已,至 于分区硬盘,也只是修改了MBR和OBR,绝大部分的DATA区的数据并没有被改变,这也是许多硬盘数 据能够得以修复的原因。但即便如此,如MBR/BR/FAT/DIR之一被破坏的话,也足够咱们那些所谓的 DIY老鸟们忙乎半天了……需要提醒大家的是,如果你经常整理磁盘,那么你的数据区的数据可能是 连续的,这样即使MBR/FAT/DIR全部坏了,我们也可以使用磁盘编辑软件(比如D0S下的 iskedit)
硬盘数据恢复教程 前言: 此文章从google搜索经鄙人整理而来,并非本人的造诣至此,请勿联系笔者。 硬盘数据恢复很大程度依靠运气,无必胜把握,并且不与投入时间成正比,不要寄予太大的希望。 请勿轻易拿自己硬盘做实验。 建议数据恢复前先用硬盘保护卡对拷到其他硬盘上做一个备份,然后修理备份。(用ghost不行) ●硬盘数据恢复,一概论 初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统 才可以使用。一个完整硬盘的数据应该包括五部分:MBR,DBR,FAT,DIR区和DATA区。其中只有主 引导扇区是唯一的,其它的随你的分区数的增加而增加。 主引导扇区 主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record) 和分区表DPT(Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定 哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存 加以执行。至于分区表,很多人都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节, 位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS 的Fdisk.exe)产生的,不同的 操作系统可能这个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述 的任务即可,这也是为什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写, 所以才出现了很多的引导区病毒)。 操作系统引导扇区 OBR(OS Boot Record)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于DOS 来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操 作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOS Parameter Block) 的本分区参数记录表。其实每个逻辑分区都有一个OBR,其参数视分区的大小、操作系统的类别而有 所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如 MSDOS或者起源于MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一个文件读入内存,并把 控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述 符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。 OBR由高级格式化程序产生(例如DOS 的Format.com)。 文件分配表 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/DS的启动流程为例。 第一阶段:系统加电自检POST过程。POST是 Power on self Test的缩写,也就是加电自检的意思 微机执行内存 FFFFOH处的程序(这里是一段固化的ROM程序),对系统的硬件(包括内存)进行检查 第二阶段:读取分区记录和引导记录。当微机检查到硬件正常并与CMS设置相符后,按照CMOS 设置从相应设备启动(我们这里假设从硬盘启动),读取硬盘的分区记录(DPT)和主引导记录(MBR)。 第三阶段:读取D0S引导记录。微机正确读取分区记录和主引导记录后,如果主引导记录和分区 表校验正确,则执行主引导记录并进一步读取D0S引导记录(位于每一个主分区的第一个扇区),然 后执行该DOS引导记录
只要找到一个文件的起始保存位置,那么这个文件就有可能被恢复(当然了,这需要一个前提,那 就是你没有覆盖这个文件……)。 硬盘分区方式 我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。 主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑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引导记录
第四阶段:装载系统隐含文件。将D0S系统的隐含文件I0.SYS入内存,加载基本的文件系统FAT 这时候一般会出现 Starting Windows9x..,的标志,I0.SYS将MS.SYS读入内存,并处理 System. dat 和User.dat文件,加载磁盘压缩程序 第五阶段:实D0sS模式配置。系统隐含文件装载完成,微机将执行系统隐含文件,并执行系统配 置文件( Config.sys),加载 Config.sys中定义的各种驱动程序 第六阶段:调入命令解释程序(Command.com)。系统装载命令管理程序,以便对系统的各种操作命令 进行协调管理(我们所使用的Dir、Copy等内部命令就是由Command.com提供的) 第七阶段:执行批处理文件( Autoexec.bat)。微机将一步一步地执行批处理文件中的各条命令, 第八阶段:加载Win.com。Win,com负责将Windows下的各种驱动程序和启动执行文件加以执行, 至此启动完毕。 ●硬盘数据恢复,三文件分配表 FAT是D0S、 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进制) 第0字节表头,表磁盘类型。FFH双面软盘,每次道8扇区FEH单面软盘,每磁道8扇区FDH双面软盘, 每磁道9扇区FCCH单面软盘,每磁道9扇区FC8H硬盘 第12字节(表项号1)表示第一簇状态,因第一簇被系统占据,故此两字节为FFH 第3~4字节(表项号2)表示第二簇状态,若为FH表此簇为坏的,DOS已标记为不能用:0000H表示 此簇为空,可以用:FF8H表不能示该簇为文件的最后一簇;其余数字表示文件的下一个簇号,注意 高字节在后,低字节在前。 第56字节(表项号3)表示第三簇状态,同上 注意:
第四阶段:装载系统隐含文件。将DOS系统的隐含文件IO.SYS入内存,加载基本的文件系统FAT, 这时候一般会出现Starting Windows 9x...的标志,IO.SYS将MS.SYS读入内存,并处理System.dat 和User.dat文件,加载磁盘压缩程序。 第五阶段:实DOS模式配置。系统隐含文件装载完成,微机将执行系统隐含文件,并执行系统配 置文件(Config.sys),加载Config.sys中定义的各种驱动程序。 第六阶段:调入命令解释程序(Command.com)。系统装载命令管理程序,以便对系统的各种操作命令 进行协调管理(我们所使用的Dir、Copy等内部命令就是由Command.com提供的)。 第七阶段:执行批处理文件(Autoexec.bat)。微机将一步一步地执行批处理文件中的各条命令。 第八阶段:加载Win.com。Win.com负责将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)相配合,可以统一管理整个磁盘的文件。它告诉系统磁盘上哪些簇是 坏的或已被使用,哪些簇可以用,并存储每个文件所使用的簇号。它是文件的“总调度师” 当D0S写文件时,首先在文件目录中检查是否有相同文件名,若无则使用一个文件目录表项,然后依 次检测FAT中的每个表项对应的簇中,同时将该簇号写入文件目录表项相的26-27字节,如文件长度 不止一簇,则继续向后寻找可用簇,找到后将其簇号写入上一次找到的表项中,如此直到文件结束, 在最后一簇的表项里填上FFF8H,形成单向链表 D0S删除文件时只是把文件目录表中的该文件的表项第0个字节改为E5H,表此项已被删除,并在文件 分配表中把该文件占用的各簇的表项清0,并释放空间。其文件的内容仍然在盘上,并没有被真正删 除,这就是 undelete.exe, unerase.exe等一类恢复删除工具能起作用的原因 文件分配表在系统中的地位十分重要,用户最好不要去修改它,以免误操作带来严重的后果 FAT表的定位 硬盘分区的主要结构说明: ( Cylinder柱面/磁道-Side磁头- Sector扇区地址以下简称为?-?-?) 《主分区》 名称地址长度(扇区) 主引导记录( Main boot record)0-0-11 系统扇区( System Secotrs)0-0-2,0-0-6362 引导扇区(Boot)0-1-11 FAT16系统中,此扇区包含BPB( BIOS Parame ter block)表,描述逻辑盘结构组成,包含隐藏扇 区数目(从0-1-1开始计算)、FAT扇区数、FAT拷贝数、硬盘磁头总数、根目录表项最大值等。 FAT32系统中,BPB表的偏移与FAT16不同,但表项基本相同。整个隐藏扇区部分都作为逻辑盘的 描述区域 隐藏扇区( Hidden secotrs) FAT16 0-1-1 FAT32 0-1-1 文件分配表( File allocation table) FAT16 0-1-2 根据逻辑盘容量变化 FAT32 0-1-33 根据逻辑盘容量变化 说明 FAT16的每个表项由2字节(16位)组成,通常每个表项指向的簇包含64个扇区,即32K字节 逻辑盘容量最大为2047M FAT32的每个表项由4字节(32位)组成,通常每个表项指向的簇包含8个扇区,即4K字节。 逻辑盘容量最小为512MB。 对于C分区,在MBR的偏移01c2H处,FAT16为06H,FAT32为0CH 有关计算公式为: 每个扇区长度=512字节 总簇数=逻辑盘容量/簇容量 总簇数=FAT表长度(字节)/每个表项长度(字节)-2 FAT表长度=逻辑盘容量/簇容量*每个表项长度 FAT表的开始由介质描述符+一串“已占用”标志组成 FAT16硬盘-F8FFFF7F FAT32硬盘--F8 FF FF OF FFFFFF OF 每个有效的FAT结构区包含两个完全相同的拷贝:FAT1、FAT2 文件目录表( File directory Table),即根目录区,又称为ROOT区 紧跟在FAT2的下一个扇区,长度为32个扇区(256个表项)。如果支持长文件名,则每个表 为64个字节,其中,前32个字节为长文件链接说明:后32个字节为文件属性说明,包括文件长 度、起始地址、日期、时间等。如不支持长文件名,则每个表项为32个字节的属性说明
不要把表项内的数字误认为表示当前簇号,而应是该文件的下一个簇的簇号。.高字节在后,低字节 在前是一种存储数字方式,读出时应对其进行调整。是如两字节12H,34H,应调整为3412H。 文件分配表与文件目录(FDT)相配合,可以统一管理整个磁盘的文件。它告诉系统磁盘上哪些簇是 坏的或已被使用,哪些簇可以用,并存储每个文件所使用的簇号。它是文件的“总调度师”。 当DOS写文件时,首先在文件目录中检查是否有相同文件名,若无则使用一个文件目录表项,然后依 次检测FAT中的每个表项对应的簇中,同时将该簇号写入文件目录表项相的26-27字节,如文件长度 不止一簇,则继续向后寻找可用簇,找到后将其簇号写入上一次找到的表项中,如此直到文件结束, 在最后一簇的表项里填上FFF8H,形成单向链表。 DOS删除文件时只是把文件目录表中的该文件的表项第0个字节改为E5H,表此项已被删除,并在文件 分配表中把该文件占用的各簇的表项清0,并释放空间。其文件的内容仍然在盘上,并没有被真正删 除,这就是undelete.exe,unerase.exe等一类恢复删除工具能起作用的原因。 文件分配表在系统中的地位十分重要,用户最好不要去修改它,以免误操作带来严重的后果。 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-11 系统扇区( System Secotrs)?-y-2,?y-6362 引导扇区(Boot)?-(y+1)-11 其后各项与主分区相同 FAT表引起的读写故障 硬盘文件分配表庞大无法手工修复,只能依靠工具 FAT表记录着硬盘数据的存储地址,每一个文件都有一组FAT链指定其存放的簇地址。FAT表的损坏意 味着文件内容的丢失。庆幸的是DOS系统本身提供了两个FAT表,如果目前使用的FAT表损坏,可用第 个进行覆盖修复。但由于不同规格的磁盘其FAT表的长度及第二个FAT表的地址也是不固定的,所 以修复时必须正确査找其正确位置,一些工具软件如№等本身具有这样的修复功能,使用也非常的 方便。采用 DEBUG也可实现这种操作,即采用其m命令把第二个FAT表移到第一个表处即可(不建议这 样做)。如果第二个FAT表也损坏了,则也无法把硬盘恢复到原来的状态,但文件的数据仍然存放在 硬盘的数据区中,可采用 CHKDSKI或 SCANDISK命令进行修复,最终得到*.CHK文件,这便是丢失FAT链 的扇区数据。如果是文本文件则可从中提取出完整的或部分的文件内容 软盘文件分配FAT表修复 在运行某个程序时,有时会在屏幕上看到: File allocation table bad, drive a(文件分配表坏) 的错误信息,导致程序不能正常运行 我们知道,在磁盘中有两个文件分配表:FAT1和FAT2。FAT用于日常工作,FAT2备用。因此 FAT1损坏时,可用FAT2表修补。 具体方法是:运行 DEBUG,将FAT2读入缓冲区,用缓冲区的FAT2数据覆盖磁盘中的FAT1 例:修复3寸1.44M软盘,在A驱 在D0S环境下进入 debug环境 在“-·提示符下进行如下操作 L10000A9 W100019 其它类型的软盘的修复方法参照下表进行。 起止逻辑扇区5.25″低密5.25″高密3.5″低密3.5″高密 B0OT区0000 FAT11-21-71-31-9 FAT23-48-0EH4-60A-12H 例如我们要修复5.25″高密软盘的FAT,则需将上述参数改为 L100087 W100017 ●硬盘数据恢复,二分区表的推算 Master boot record The Master Boot Record is located at the physical beginning of a hard disk, editable usi the Disk Editor. It consists of a master bootstrap loader code(446 bytes)and four
数据区(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结构信息 0EEH一0FDH分区4结构信息 01FEH_01FFH55AH主引导记录有效标志 说明: 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 4 DOS FAT16(up to 32 MB) 05 DOS 3. 3+ extended partit 06 DOS 3. 31+ FAT16(over 32 MB) 07 0S/2 HPFS, Windows NT NTFS, Advanced Unix
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 o f 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 0S/2 v1.0-1.3, AiX bootable partition, SplitDrive 09 AlX data partition 0A OS/2 Boot Manager oB Windows 95+ Fat32 OE DOS FAT16 (over 32 MB, using INT 13 extensions/S) oC Windows 95+ FAT32 (using LBA-mode INT 13 extension OF Extended partition (using INT 13 extensions 17 Hidden ntfs partition 1B Hidden Windows 95 FaT32 partition IC Hidden Windows 95 FAT32 partition (using LBA-mode INT 13 extensions) E 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 CO DR-DOS/Novell DOS secured partition 6 Corrupted FAT16 volume/stripe set (Windows NT) C7 Corrupted NTFS volume/st F2 DOS 3. 3+ secondary partition [表2分区结构信息] 偏移长度含义 0OH1活动分区指示符,该值为80H表示为可自举分区(仅有一个),该值为00H表示其余分区 01H1分区起始磁头号。 02H1低6位是分区开始的扇区,高2位是分区开始的柱面的头两位。 03H1分区开始的起始柱面号的低8位。 04H1系统标志,该值为01H表示采用12位FAT格式的D0S分区,该值04H表示采用16位FAT格式 的D0S分区,该值为05H表示为扩展D0S分区,为06H表示为D0S系统 05H1分区终止头号 06H1低6位为分区结束的扇区号,头2位为结束柱面号的前2位。 07H1分区结束柱面号的低8位 3H4本分区前的扇区数,低位字节在前 0CH4本分区总的扇区数,低位字节在前。 重要公式: 02H为X,O3H为Y。柱面=(X>6)*16^2+Y; 以我的硬盘为例: 有九个可用分区,二个不可用分区 两个 Primary NtFS分区,第二个为 active 七个 Extened分区,第五个为NTFS其他为FAT32
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
主分区表数据:位置 cylinder,head0, sector 偏移0123456789 A BCDEF 0 33 C0 8E DO 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 2382C7C09751583C610E2F5CD188B148B 3EE83C610497416382C74F6BE10074EAC 43C0074FABB0700B40ECD10EBF289462 5968A4604B4063C0E7411B40B3C0C7405 63AC4752B40C64625067524BBAA5550B4 741CD1358721681FB55AA7510F6C10174 80B8AE0885624C706A106EB1E886604BF 80A00B801028BDC33C983FF057F038B4E 925034E02CD137229BE5907813EFE7D55 A AA 74 5A 83 EF 05 7F DA 85 F6 75 83 BE ZE O7 EB B8A9891529903460813560AE812005AEB CD54F74E433C0CD13EBB8000080244500 D5633F6565652500653 IB 0000 lC014607FETF1EC6281100993135008000 1D413007FE7FB230854A00C31C20000000 IE 41 B3 OF FE FFFF F3 Al 6A 00 08 FE F7 01 0000 lF000000000000000000000000000055A 主分区表分析 Master bootstrap loader code0000H-00D9H33C08ED0BC007CFB50。。。主引导记录 代码,表示住分区表 01BEH-01CDH分区1结构信息 mult i(0)disk(0) rdisk(0) partition(0)知该分区 Boot sector位 于:起始磁头为0头,起始柱面为70D,起始扇区为1扇区 0CEH-01DDH分区2结构信息 multi(0)disk(0) rdisk(0) partition(1)活动分区指示符为80H, 表示该分区为可自举分区。系统标志为07表示0S/2HFS, Windows Nt ntfs, Advanced unix系统 知该分区 Boot sector位于:起始磁头为0头,起始柱面为304D,起始扇区为1扇区 0DEH-01EDH分区3结构信息 Extended partition系统标志字节为OF,说明是扩展分区 Extended partition( using INt13 extensions)。从扩展分区说明项知下一个分区表位于:起始磁头为0头 起始柱面为435D,起始扇区为1扇区。 01EEH-01FDH分区4结构信息分区说明项数据均为00H没有定义 01FEH_01FFH55AH主引导记录有效标志 扩展分区一分区表数据:位置 cylinder435D,head0, sector1 偏移0123456789 A BCDEF 1B 0000 1C41B30 B FE FF083F00000097D553000000 1DC10905 FE FFFF D6D55300D6D553000000 lE0000000000000000000000000000 lF0000000000000000000000000000 扩展分区表分析 01BEH-01CDH分区1结构信息 multi(0)disk(O) rdisk(0) partition(3知该分区位于:起始磁头
. 主分区表数据:位置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)。系统标志字OBH表示 Windows95+ FAT32 0IBEH一01ODH分区1结构信息系统标志字节为05H,说明是扩展D0S分区。于是知下一个分区表位 于:起始磁头为0头,起始柱面为77D,起始扇区为1扇区。 Partition Table entry#3数据均为0OH没有定义。 Partition Table entry#4数据均为00H没有定义 其他扩展分区同理 附录 Fdisk的MBR参数 MR系 FDISK. COM(EXE)一项未公布的开关,隐含于MSD0S3.30,延至MSDS8.0( Windows me) 实践中,有籍以修复主引导信息,重点在主引导程序。 FDISK/MBR命令流程的分支有 读得主引导扇区检验标志(字)AA55h,操作单一,仅向主引导扇区位移0-1BDH写入当前系统固 有的主引导程序,安全可靠。 难能可贵的是它不触动主引导信息其余模块(分区表、检验标志),以及随后的D0S引导信息、文 件分配表、根目录,省事许多。检出检验标志非AA55h,写主引导程序、初始化分区表及登录检验 标志,在MSD0S7.0一8.0环境中,常规以系统支持的最大容量分配给基本D0S分区的方式登 录分区表。分区表初始化(可能幸存的分区表被清除)的后果不难想象:目前硬盘大都设置有其它分 区,即使在高版本DS环境中运作,常规建立的分区表每难能符合实际需求,后续工作量也相当可 观 不过,它也不触动位于其后的D0S引导信息、文件分配表及根目录,高版本 FDISK/MBR命令适 用于修复仅设基本DOS分区的硬盘分区表及检验标志受损,或主引导信息全毁 可见,在运行 FDISK/MBR命令之前,需查明检验标志是否AA55h,酌情处理,切忌盲动。 经由DOS软盘引导,认硬盘,检验标志必健在 另外,在 FDSIK主菜单中选4. Display partition Information,列出分区信息,进一步证实 检验标志正常:若现 No partitition defined,检验标志每变异,而分区表●硬盘数据恢复,深 入逻辑分区 现在深入每一个逻辑分区。逻辑分区结构如下: FAT12/16 ogical sector =0 Logical sectorl(Floppy disk=1 9)Logical ector=1+sectors_per_FAT(Floppydisk=10 18) Logical sector=l+sectors_per__ FAT*2(Floppy disk=19 32) Logical sector=1+sectors_ per FAT*2+sectors of_ rootdirectories(floppy 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 directories are stored)
为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 系 FDISK.COM(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 ogical- sectors(sec tor-1)+head*sec tor _per_ track+sec tor*sector_per-track*heads 每个扇区长度=512字节 总簇数=逻辑盘容量/簇容量 总簇数=FAT表长度(字节)/每个表项长度(字节)-2 FAT表长度=逻辑盘容量/簇容量*每个表项长度 Dos引导记录块位于逻辑0 sector中包含三部分: (1)磁盘I0参数表BPB (2)磁盘基数表 (3)引导区代码。 FATl6的BPB( BIOS Parameter block)表,描述逻辑盘结构组成,包含隐藏扇区数目(从0-1-1开始 计算)、FAT扇区数、FAT拷贝数、硬盘磁头总数、根目录表项最大值等。FAT32系统中,BPB表的偏 移与FAT16不同,但表项基本相同。整个隐藏扇区部分都作为逻辑盘的描述区域 典型的 primary partion的磁盘I0参数表BP 典型的 logical partion磁盘参数表 硬盘BPB主要结构说明 ( Cy linder柱面/磁道-Side/Head磁头- Sec tor扇区地址以下简称为?-?-?) 主分区 名称地址长度(扇区) 主引导记录( Main boot record)0-0-11 系统扇区( System Secotrs)0-0-2,0-0-6362 引导扇区(Boot)0-1-11 扩展分区 名称地址长度(扇区) 扩展分区( Extend partition)?-y-11 系统扇区( System Secotrs)?-y-2,?-y-6362 引导扇区(Boot)?-(y+1)-11 其后各项与主分区相同… 隐藏扇区( Hidden secotrs) FAT16 0-1-1 FAT32 0-1-1 文件分配表( File allocation table)
在逻辑分区当中用逻辑的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):