视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
用WinHex直接修改磁盘分区表找回丢失的分区(另附分区表知识)Microsoft Word 文档
2025-09-24 00:08:35 责编:小OO
文档
用WinHex直接修改磁盘分区表找回丢失的分区(另附分区表知识)

用WinHex直接修改磁盘分区表找回丢失的分区(另附分区表知识)

1. MBR(主引导记录)and Partition Table(分区表)

MBR是磁盘第一个扇区,CHS地址是0柱面,0磁头,1扇区;LBA地址是0。布局如下:

MBR
扇区内偏移描述
0x0000引导代码
0x018A4个9字节供IBM扩展的分区表项

0x01B84字节磁盘签名

0x01BE4个16字节主分区表项

0x01FE2字节MBR签名(0xAA55)[1]

[1]0x01FE是55,0x01FF是AA。

分区表项
表项内偏移描述
0x00可引导标志
0x01起始CHS地址

0x04分区类型
0x05结束CHS地址

0x084字节起始LBA地址

0x0C4字节分区大小,以扇区计算

3. 修复过程

  理解了MBR和Partition Table,修复思路就很清晰了。我的数据分区大概是占用250G硬盘的后180G,所以从硬盘头六分之一的位置开始,搜索分区表的明显标志0x55AA。WinHex的方便的搜索功能还可以设置只搜索存在于整数倍于512字节块的末尾的0x55AA,速度快很多。每找到一个最后两字节为0x55AA的扇区,就分析4个分区表项是不是合理的,以及它所描述的分区大小,终于找到一个扇区,含有一个分区表项,大小180G,哈哈,肯定就是它了。这个扇区肯定就是扩展分区的起始扇区,它含有的那个分区表项肯定就是它唯一包含的一个逻辑分区了。

在MBR中创建一条属性为扩展分区(05)的分区表项,填入其他相关位置信息,以描述刚才找到的这个扩展分区:

CHS起始位置:一般是逻辑分区表项中的CHS起始位置,把磁头数改为0。

CHS结束位置:照抄逻辑分区表项中的CHS结束位置。

LBA偏移量,写入那个扩展分区相对磁盘起始位置的扇区偏移量。

分区大小:应该是逻辑分区表项中逻辑分区大小加上63个扇区。

存盘,运行Windows管理工具,查看磁盘信息,数据分区赫然在目。:)

4. 备份MBR

  终于找回我的电影和mp3了,激动啊。赶紧做个备份。MBR本来没有第二份拷贝,不像FAT,所以用winhex把MBR复制一份到磁盘最后一个扇区,这个扇区一般不可能被用到。好了,再也不怕你硬盘掉电了。

相信听说过硬盘MBR、硬盘分区表、DBR的朋友一定都不少。可是,你清楚它们分别起什么作用吗?它们的具体位置又在哪里呢?硬盘上的MBR只有一份吗?什么是硬盘逻辑锁?如何制造和破解它呢??别急,让我们一步步来搞清楚吧!

==必备基础知识:==

    以下先介绍一下有关扇区编号的基本知识:介绍一下有关硬盘扇区编号规则的3个易混淆的术语“物理扇区编号”、“绝对扇区编号”和“逻辑扇区编号”。

我们都知道硬盘扇区的定位有两种办法:

     1、直接按柱面、磁头、扇区3者的组合来定位(按这种编号方式得到的扇区编号称为物理扇区编号);

     2、按扇区编号来定位(又分“绝对扇区编号“和“逻辑扇区编号“两种)。

这两种定位办法的换算关系如下图:(设图中所示硬盘每道扇区数均为63)

     如图所示,由于目前大多数硬盘采用的是一种“垂直分区结构“,故左图一磁头数为2、盘片数为1的硬盘,图中0磁头所对扇区的表示方法就有2种,即:0柱面0磁头1扇区=绝对0扇区,而1磁头所对扇区的表示方法也有2种,即:1柱面0磁头1扇区=绝对63扇区。如果是如右图所示磁头数为4、盘片数为2的硬盘,那么则顺着垂直于盘片的箭头线方向进行如图的绝对扇区的编号。

     以上,我们说了物理扇区、绝对扇区的编号方式,而逻辑扇区编号由于是操作系统采用的扇区编号方式,而操作系统只能读取分区内部的数据内容,故逻辑扇区是从各分区内的第一个扇区开始编号,如我们下文对mbr的说明可以知道:mbr这个扇区所在硬盘磁道是不属于分区范围内的,紧接着它后面的才是分区的内容,因此一般来说绝对63扇区= c:分区逻辑1扇区。以下让我们总结一下3种编号方式的不同:

编号方式            表示方法          采用该种方式编号的对象        起始编号

物理扇区编号   0柱面0磁头1扇区   BIOS内置中断服务程序           0柱面0磁头1扇区

绝对扇区编号   绝对X扇区         人们为方便所采用的办法         绝对0扇区

逻辑扇区编号   逻辑X扇区         操作系统                       逻辑1扇区

     需要说明的是:本文假设所使用的硬盘每道扇区数都为63。各位手头上所使用的硬盘具体的每道扇区数则可以在BIOS设置内有关硬盘参数的设置内查到。

==有关MBR、分区表、DBR的基本知识:==

硬盘MBR(硬盘主引导记录)及硬盘分区表介绍

     硬盘MBR就是我们经常说的“硬盘主引导记录”,简单地说,它是由FDISK等磁盘分区命令写在硬盘绝对0扇区的一段数据,它由主引导程序、硬盘分区表及扇区结束标志字(55AA)这3个部分组成,如下:

组成部分        所占字节数                     内容、功能详述

主引导程序区      446          负责检查硬盘分区表、寻找可引导分区并负责将可引导分

                              区的引导扇区(DBR)装入内存;

硬盘分区表区     16X4=       每份16字节的4份硬盘分区表,里面记载了每个分区的类

                              型、大小和分区开始、结束的位置等重要内容;

结束标志字区       2            内容总为”55AA”。

结束标志字区       2           内容总为”55AA”

     这3部分的大小加起来正好是512字节=1个扇区(硬盘每扇区固定为512个字节),因此,人们又形象地把MBR称为“硬盘主引导扇区”。这个扇区所在硬盘磁道上的其它扇区一般均空出,且这个扇区所在硬盘磁道是不属于分区范围内的,紧接着它后面的才是分区的内容(也就是说假如该盘每磁道扇区数为63,那么从绝对63扇区开始才是分区的内容)。

硬盘DBR(硬盘分区引导记录)介绍

     DBR是各个分区自己的引导记录,又称“分区引导记录”,它是由FORMAT高级格式化命令写在各个分区开始处第一个扇区(比如说:主分区C:从1磁头0柱面1扇区=逻辑1扇区=绝对63扇区)开始,那么C:区逻辑1扇区就是DBR所存放的位置)的一段数据.这段数据主要由以下几个部分组成:

1、占3个字节的跳转指令;

2、占8个字节的操作系统厂商标识及版本号;

3、占19个字节的分区参数表(又称BPB),里面存放着对该分区进行读写操作时所必备的参数 (如该分区内每扇区所包含的字节数、每簇扇区数、每个磁道的扇区数、该分区FAT份数等);

4、占480个字节的DOS引导代码,它负责把DOS引导文件IO.SYS、MSDOS.SYS装入内存;

5、占2个字节的结束标志字”55AA”.

     以上5个部分也正好占1个扇区;和MBR有所不同的是:DBR扇区后面一般就紧接着存放该分区的FAT(文件分配表,共2份)。

     综上所述,我们知道硬盘MBR负责总管硬盘分区,只有分区工具才能对它进行读写(如FDISK);而DBR则负责管理某个具体的分区,它是用操作系统的高级格式化命令(如FORMAT)来写入硬盘的。在系统启动时,最先读取的硬盘信息是MBR,然后由MBR内的主引导程序读出DBR,最后才由DBR内的DOS引导代码读取操作系统的引导程序,其中任何一个环节出了问题,操作系统都无法正常启动成功,如果是MBR部分出了问题,即使只是”55AA”标志字丢失或被改为其他值,通常都会出现“无效分区表“、逻辑盘丢失、启动死机等现象;而如果是DBR部分出了问题,通常会出现“未格式化的分区”的错误提示。

     实际上,在每一个分区的前面,都有一份MBR,在每一个分区的开始处,都有一份DBR。通常我们把存放在绝对0扇区的那份MBR称为主MBR或C分区MBR。这样我们就能画出如下的MBR、DBR的存放位置表:市面上很多分区表保存软件(如KV3000的分区表保存功能)实际上保存的就是表中各个分区前MBR区的数据。

     在中篇里,我们将来看看怎样实际操作,观察我们硬盘上的MBR、DBR。

动手观察MBR、DBR:

近距离观察MBR、DBR:

     口说无凭,眼见为实。还是让我们用工具来具体观察一下吧:)我们要观察的盘全部分作DOS区,在DOS区内共分C:、D:、E:三个盘。

1、观察主MBR:

     首先得准备工具,这里我们推荐DISKEDIT兼容FAT32的版本,可以到www.download.com.cn搜索DISKEDIT并下载。该程序启动后界面如下:

     选“PHYSICAL DEVICE”按OK进入。这时候,DISKEDIT首先显示的就是硬盘绝对0扇区的MBR信息,如下图:

     从图中我们可以看到MBR的0~01BD字节为主引导程序;01BE~01FD这字节为硬盘分区表信息,每项分区表占16字节;最后是结束标志字55AA。下面我们详细分析一下分区表各个字节所表示的意思:

     注1:此处第一个字节存放磁头号(01、0B),第二字节低六位存放扇区号01=00(00 0001)=00(01)、FE=11(11 1110)=11(3F),第二字节高2位+第三字节为柱面号00(00)=000、11(7F)=37F。还需要说明的是01BF—01C1这3个字节在分区表里面,视后面01C2字节所示分区类型的不同而代表不同的含义。如果01C2是代表主分区的01、04、06或0B,那么01BF—01C1所表示的就是该分区DBR所在的位置,如果01C2是代表扩展分区的05或0F,那么01BF—01C1所表示的就是该分区MBR所在的位置。

     看完上面我们给出的第一份MBR,不知道大家注意到没有,在硬盘分区表数据区里面只有两个分区表项,而我们的盘明明是分成C:、D:、E:三个盘的,怎么回事呢?再仔细观察一下分区表,我们还会发现在这份MBR里,第一个分区表项(01BE—01CD)描述的是C:盘的信息,第二个分区表项(01CE—01DD)描述的是整个扩展分区的信息,它把剩下的D:、E:全部包含在里面了!未免太笼统了点吧。那么,如果我们要查看D:、E:各自详细的分区情况怎么办呢?参考上一段我们给出的01BF—01C1这3个字节所代表的不同含义,我们发现,第二个分区表项的分区类型符为0F,也就是说是扩展分区,那么分区类型符前面3个字节所代表的应该是扩展分区MBR所在的位置。可见不光是全盘最前面的0磁头0柱面1扇区有一份主MBR,扩展分区的最前面也有一份MBR!

     还是让我们顺着系统启动的顺序先到1磁头 0柱面1扇区去看看主分区DBR,然后再看扩展分区的MBR是什么样的吧!

2、观察C分区DBR:

     在DISKEDIT界面输入“ALT+S”,在出现的菜单内选“GOTO。。”,如下图:

     接下来,按表1内01BF—01C1字节所示的主分区DBR位置,在出现的菜单内依次输入DBR所在的柱面数(CYLINDER)=0,磁头数(HEAD)=1,扇区数(SECTOR)=1,如下图:

     哈哈,第一份DBR的数据就调出来啦:)

3、观察D分区MBR:

     按照表1扩展分区01CF—01D1字节所示分区MBR位置,进入图4的菜单内输入281(119h)柱面、0磁头 、1扇区;D分区MBR就出来了:)

     哈哈,正如大家所看到的,这第二份MBR其实只是一个分区表而已。同第一份MBR一样,也只是描述了当前主盘(D:盘)和剩余空间的分区状况。按照和第3步中同样的办法,我们同样能够定位出D:盘的DBR和E分区MBR(最后一份MBR)所在的位置并用DISKEDIT进行观察。

     在下篇内将对以上知识进行总结,并对逻辑锁进行一个详细的分析。

前两篇文章中我们了解了硬盘逻辑分区的概念也实际看到了分区的情况,下面是对前问的总结,附带逻辑锁的详解。==

     通过观察,我们证实了每一个硬盘分区,都有各自的MBR和DBR;操作系统启动时,不论是从硬盘还是从软盘启动,都需要先由BIOS读绝对0扇区的主MBR,找到标志为80的可引导分区,然后由MBR负责读出该分区内的DBR,再由DBR负责读出存在该分区的系统启动程序(IO.SYS等),最后在DOS系统程序IO.SYS的指挥下遍历所有的MBR和DBR,从而获知完整的硬盘分区结构。使用FDISK分区时也需要进行同样的过程。而IO.SYS遍历所有的MBR和DBR的时候,是按照如下表的顺序进行:

==分区表知识实际应用==

,制作一个硬盘逻辑锁

     观察上面我们给出的遍历流程表,参考一中关于01C2字节的说明,如果我们在描述D分区MBR位置的01CF—01D1字节处作点手脚,把这里本来存放D:盘MBR位置的字节改成00 01 00(就是C分区MBR所在的位置)那么遍历流程不就变成下表所示了吗:

    ,表面上看,应该这样就可以做成一个逻辑锁了吧。可是实际情况一定会让你失望,98根本一点反应也没有,居然给我一切正常!!

,再试试动动其它歪脑筋好了。咦。。总觉得01D2字节表示D:盘分区类型的0F怪怪的,把它改成05,这下硬盘总算在出现98欢迎画面的时候陷入上表所示的死循环了:)好,现在我们换软盘启动看看。。,咦。。怎么出现一大堆E文后居然还能引导成功!

    。如果把表示C:盘分区类型的01C2字节的0B改成其它数会怎样???把它改成0A终于大功告成了,无论是软盘或者是硬盘启动,面就给出一种完美的硬盘逻辑锁主MBR样本:(图中黄色字体的为改动的部分,只需要改区区4个字节哦!)

     好了,我们来总结一下制作逻辑锁的必要步骤吧!

1、先把C:盘MBR的01CF—01D1字节处表示的D:盘MBR位置改成00 01 00;

2、然后把紧接着的表示D:盘分区类型的01D2字节改成05;

3、最后改C:盘MBR中表示C:盘分区类型的01C2字节,把它改成0A、04、03、02或者00这5种字节都可以。

     这样一来,不论是从软盘或者硬盘用DOS7.0版本启动,甚至加挂正常的可引导硬盘,都难逃死机的恶运了,至于为什么还要改两个盘的分区类型,这个本鸟也还没有完全想通L不过有一点可以肯定的是:即使不改分区类型,在使用FDISK时也是必死无疑的.

     哎呀,差点忘了说了,中了锁怎么解呢

     别急,前面我们不是说到:”不论是从硬盘还是从软盘启动,都需要在DOS系统程序IO.SYS的指挥下遍历所有的MBR和DBR”吗,既然如此不如在IO.SYS上动动脑筋好了.

破解硬盘逻辑锁的三种办法:

1、原来,IO.SYS在指挥系统遍历所有的MBR和DBR的时候,首先要检查MBR或者DBR扇区结尾的

结束标志字是否是“55AA”.如果不是,那么将退出遍历并报分区表错.幸运的是报错之前我们运行DISKEDIT改回原来的MBR所需要的系统核心部分已经载入了内存,否则….

     知道了上面的原理,我们不妨反其道而行之,编辑IO.SYS,让它在指挥系统遍历所有的MBR和DBR时检查MBR或者DBR扇区结尾的结束标志字是否是除了“55AA”外的其它值.这样一来,就能跳出死循环而执行DISKEDIT了.具体步骤如下:

     先制作一张启动软盘,并用ATTRIB –R –H –S A:\IO.SYS命令去掉IO.SYS的系统、只读及隐藏属性;

     用ULTRAEDIT之类的编辑工具搜索刚做好的启动软盘上的IO.SYS,找到数个”55AA”,把它们改成其它数值;

     保存IO.SYS,并用ATTRIB +R +H +S A:\\IO.SYS命令改回文件的属性.

     不怕逻辑锁的启动盘就做好啦!启动后不要理会出现的错误信息,赶快运行DISKEDIT改回原来的MBR吧!

下载本文
显示全文
专题