当前位置: > 手游资讯 > 新手问答 

重建分区表(手工重建分区表_IT/计算机_专业资料)

作者:哪吒游戏网

总有些这样的时候,你的系统不能够引导了,你连忙用软区引导,键入 C:\\,电脑却无情的 告诉你“Invalid drive specification”,打开 FDISK 你发现你的分区表项已经全部消失,你几 乎要哭了,你在想这一切是病毒、无聊的骇客还是自己的误操作造成的,但是不管此时你在 想什么,都没什么意义了,你正打算重新分区重装系统,这时你要是刚好遇到我,或是象我 一样热心的朋友,就会问你:“你难道就这样甘心和你多年来玩法攻略介绍的资料说 88 么?”你此时 肯定是象落水者抓住了一根救命稻草,说:“不啊,我希望能拯救硬盘数据,求求你帮我恢 复好么?”此时,我会笑笑说: “不好,我不想帮你恢复数据,但是我会教你如何来恢复你 的硬盘数据的,呵呵!”首先, 得找到一块被病毒或是恶意程序破坏的硬盘, 可是这样一块硬盘并非马上就能找 到的啊!怎么办?为了能够写完这篇文章,为了那位朋友能够恢复自己的数据,我只能用我 自己的硬盘来做这个实验了(不禁想起了当年释加摩尼以身喂虎的故事),所谓我不入地狱 谁入地狱。首先,把我的一块 40G 的硬盘主引导扇区备份一下,以防不测(关于如何备份 主引导扇区,看我在 11 月份的《黑客 X 档案》中的文章),然后,将我的硬盘主引导区包 括分区表给完全清零,(旁白:这样做非常危险,希望广大小朋友不要效仿!)然后干什么 呢?大厨师回答:“备用。

”好了,先来介绍两个磁盘编辑工具,一个是 Norton utility 8.0 工具包中的 Diskedit.ex e,一个不错的老牌磁盘编辑工具,在 DOS 下执行,可惜用的是磁头(Heads),柱面(Cylin ders),扇区(Sectors)方式对硬盘进行访问的,所以只能访问最多 8G 的磁盘空间,如果你的 磁盘小于 8G 或是你只需要对 8G 内的磁盘进行访问,可以用它,但如果你需要访问 8G 以 上的空间就推荐你用另一个工具:WinHex V10.47 SR1 汉化版,这个工具可能大家较为熟 悉(在第 5 期《黑客 X 档案》光盘中可以找到),是一个不错的 16 进制文件编辑与磁盘编 辑软件,磁盘编辑支持 FAT16、 FAT32 和 NTFS,可以在 WIN9X 和 WIN2K、WINXP 下运 行,并且它的使用非常简单。不再多说了,赶快拯救我的硬盘吧,上面还有 MM 发给我的照片呢!对了还有我写个 M M 的信还赶着发呢!幸好我还有一块小点的硬盘,用它作成主盘,把那块可怜的 40G 的硬 盘挂上,启动成功!看看“我的电脑”里有没有我那块 40G 硬盘的分区?(画外音:做梦!), 找到第 5 期《黑客 X 档案》光盘,安装 WinHex V10.47 SR1 汉化版,打开 WINHEW,刚 启动会有一个“启动中心”的东西,选择“物理驱动器“中的”硬盘 2“(标号为 81H),(如果 你在这都找不到你需要修复的硬盘的话, 十有八九会是硬件问题, 这时你要检查一下硬盘的 数据线和电源线是否没接好,如果不是这些原因,我想你的硬盘不是需要修复数据了,而是 需要真正物理意义上的修理了。

)此时你已经看到了被我完全清零的主引导区了, 不用再复习主引导区的结构吧 (什么老 师没教过?这位同学你可以下课了) 让我先回忆一下我的分区的大致情况吧, , 分了 4 个区, 第一个区装的是 WIN98,FAT32 系统,大约 5G;第二个区装的是 WINXP,NTFS 系统,大 约 5G;第三个区是 FAT32 系统,大约 15G;第四个区是 FAT32 系统,大约 15G。注意:因为我的分区用 PQMAGIC 进行操作过,我将原来的第二个分区变为了主分区(即在 主引导区中的非扩展分区的分区,可以用来引导系统),并且激活该分区(将引导标识字节 的值改为 80H,并将原来的引导标识改为 00H),然后用光盘来安装 WINXP,把它安装到 第二分区,本来想装一个 BOOTMAGIC 实现多系统引导的,还没来得及就被拿来做实验了。 第三和第四分区其实只是在同一个扩展分区表中的,也就是说,在主引导分区中,我们只要 建一个扩展分区项指向后面的扩展分区表就可以把第三和第四分区全部找到了。 如果你的硬 盘只是用分区工具直接分区的话那么你可能只要恢复两个分区项就可以了, 一个用于引导的 分区项,和一个扩展的分区项。

而我这块盘做了两个主分区,所以要重建三个分区项,两个 主分区项和一个扩展分区项。我们需要知道的信息有,1、该分区开始的磁头,柱面,和扇区号 2、该分区的所用的 系统(这个好办) 3、该分区结束的磁头,柱面重建分区表,和扇区号 4、该分区开始的扇区地址 5、该分区所占用的总扇区数。好了,回到 WINHEX,单击下拉菜单中的“搜索”找到“寻找十六 进值数值”,在对话框中添上“55AA”,在代码偏移量余数前打钩,并添入 510(结束标志的 偏移量)单击“OK”(知道为什么要找它么),你可能会找到许多“55AA”但是我们已经学习 了引导分区的结构,上面有一些明显的特征,比如有厂商名和系统版本的 ASCII 码(FAT32 的分区为 MSWIN4.1,NTFS 的分区为 MSNTFS),分区开始字节为 EBH 开始的跳转码,第三 字节为 90H(NOP 指令的机器码),在扇区后面有些出错信息等等。很快,我就在 0 柱 1 头 1 扇找到了符合我的要求的扇区其逻辑扇区号是 63,也就是说我们已经找到了第一个分区 开始的地址了,好象有些兴奋哦!但是凭我的经验每块硬盘第一个分区开始的位置都是 0 柱 1 头 1 扇(除非你的硬盘因为坏道把一部分空间屏蔽了),那么该分区结束的地址又要 怎么来找呢?其实很简单, 只要再找到下一个分区的开始向前推一个扇区, 不就是这个扇区 的结束位置了呀!哦原来啊,那就继续按 F3 键找“55AA”,靠~GG,我都等了 N 分钟还没找 到要找的下一个 NTFS 的分区啊,说实话,你还是真的有些笨啊,既然告诉你了我的第一个 分区大小,居然不知道利用,5G,对了,忘了告诉你了,有些厂家的 40G 的硬盘是以 1K=1 000 字节算出来的,也就是说 1G= 1000000000 字节,而实际上 1000000000 字节只有 0. 93G,,40G 的硬盘实际上只有 37G 了(是不是有种被欺骗的感觉,3G 啊,都可以装下五张 VCD 了),而 5G 只有大约 4.6G 了,我们就从 4.2G 开始找吧 4.2G 开始的扇区号=[4.2G/51 2 字节]取整+1=8808039。

废话少说,又回到 WINHEX 在,下拉菜单中选“定位”中的“转到 扇区”,在“逻辑扇区”中填入“88080.39”,单击“OK”,然后继续搜索十六进制值“55AA”,搜 到了大约十来个“55AA”, 但在我的火眼晶睛下大部分都 PASS 掉, 只有一个符合我的要求的, 这就是下第二个扇区的开始处,记下了其地址 609 柱 1 头 1 扇,其逻辑扇区号是 9783648。 同样的方法我找到了第三个分区项指向的扩展分区表的位置,在 1225 柱 0 头 1 扇,其逻辑 扇区号是 19679625,因为柱数大于 1023,这里就牵涉到一些问题,我们等会再说。最后 记住一下最后一个扇区的位置,只需要按一次 END 键,我们就找到了最后一个扇区,记住 4865 柱 254 头 63 扇,其逻辑扇区号是 78172289。万事具备, 只欠东风, 就让我们来看看如何利用我们找到的和我之前说过的理论知识来 重建分区表吧。先来重建第一个分区项:1、00H 我不想用 WIN98 引导系统,所以我在此把值设为十六进制码“00”2、01H 分区起始磁头号为 1 磁头,因此把值设为十六进制码“01”3、02H 其高 2 位为分区起始柱面号的高位为(00)2,底 6 位为分区起始扇区号(000001) 2,把值设为十六进制码“01”4、03H 分区起始柱面号的低位,因为是 0 柱面,所以把值设为十六进制码“00”5、04H 该分区系统为 FAT32, 把值设为十六进制码“0B”6、05H 分区结束磁头号为 0,把值设为十六进制码“00”7、06H 其高 2 位为分区结束柱面号的高位,因为柱面号为 609=(1001100001)2,高两 位为(10)2,底 6 位为分区结束扇区号,扇区号为 63=(111111)2 所以该值为(10111 111)2,十六进制码为“BF”8、07H 分区结束柱面号的低 8 位为(01100001)2,十六进制码为“61”9、08H~0BH 分区开始的扇区为 63,其 4 字节十六进制码为“3F 00 00 00”(从高位向低 位排列)10、0CH~0FH 总扇区数=[9783647(第一分区的结束扇)-63(第一分区的开始扇)]+1 = 9783585,十六进制码为:“21 49 95 00”最后得到我的第一个分区项为十六进制值:“00 01 01 00 0B 00 BF 61 3F 00 00 0 0 21 49 95 00”,用同样的方法得到我的第二分区项的 0H~05H 为十六进制值“80 01 8161 07 FE”但是到了 06H~07H 字节处有些困难了,柱面号为 1224,已经超出了十位二进制 数所能表示的范围,怎么办?其实方法很简单,就是只要是大于 1023 的柱面号,一律把它 认为是 1023,这样就好办了,1023 柱 63 扇,十六进制值当然是“FF FF”(就好象我们在玩星际争霸时你有个英雄口水兵杀死了 1000 个敌人,可是在记录上永远只 记录了 255)。

其他的问题就好办多了,分区开始的扇区是 9783648,那么 08H~0BH 处就 是十六进制值“06 49 95 00”。分区总扇区为 19679624-9783648+1=9895977,那么 0CH ~0FH 处就是十六进制值“29 00 97 00”。同样的方法我很快算出了第三分区项的十六进制 的分区信息“00 00 C1 FF 0F FE FF FF 89 49 2C 01 F9 86 7C 03”。到此重建分区表的 工作就基本结束, 还不赶快把这些千辛万苦得到的十六进制码写进你的主引导区, 不要忘了 把结束标志写上,存盘退出。然后关机,把我们恢复的盘设为主盘,引导一下看看!激动人 心的时候就要到了,等啊等,为什么黑屏?呵呵~,这正是我要问你的问题,为什么呢?因 为主引导程序还没有呢!连忙用软盘重启动,打个“F:\\”看看,哈!熟悉的提示符“F:\\>” 找到我的 WIN98 目录,进入 COMMAND 子目录,飞快的键入“FDISK/MBR”, 学习过 DOS 的朋 友一定还记得这个命令 (这个参数居然还被微软保密了很久) 用于重新写入主引导程序 , (M BR)。再用这个硬盘重新启动试试。

熟悉的 XP 桌面上又出现了 MM 的照片!打开我的电脑看 看有没少什么,哈,一件不少,我的硬盘终于从噩梦中醒了过来。本来可以就这样把这段结束的, 可是不说出来我总是不安, 虽然我的硬盘数据完全恢复 了,可是当我用 PQMAGIC 的时候却报错,说我的硬盘分区表有个错误,我苦思冥想,最后 和我备份的分区表比对才发现, 原来的第一项分区表中结束地址是 608 柱面 254 磁头 63 扇 区,逻辑扇区号是 9783584,不是我所认为的 609 柱面 0 磁头 63 扇区,逻辑扇区号 9783 647,这样,从逻辑扇 9783584 到 9783647 的 63 个扇,没有被任何一个扇区用到。而且我 们企图用它的时候 PQMAGIC 都报错(但是我用 FDISK 查看扇区正常)重建分区表,分析原因可能是因为我曾经用 PQMAGIC 把第二个分区从扩展分区中的第一个分区变为一个主分区时, 删除了 原来的扩展分区表,这样扩展分区表到后来的保留扇(即逻辑扇 9783584 到 9783647)都 没用到!当我认为 9783647 这个扇区号就是第一分区的结束扇区号时,和第一分区引导扇 区上的“分区总扇区数”对不到,所以 PQMAGIC 才会报错,得出个结论,分区的结束定位我 们应该根据引导扇上的“分区总扇区数”来计算, 而不要象我一样凭经验武断的认为就是下一 个分区开始的前一个分区。

在恢复中我们记得一些规律,第一扇区的开始一般是 0 柱 1 头 1 扇,一般某分区结束总是在 N 柱 254 头 63 扇(也就是 N 柱的最后一扇)这些只是个人多 年来重建分区的经验,并非理论!一点补充:如果这是块被 CIH 病毒破坏的硬盘,往往到了这一步还没完,因为虽然我 重建了分区表, 但是我的首分区的 FAT 表被破坏了, 但是不要紧, 记得系统有两个 FAT 么? 只要把第二个 FAT 覆盖到第一个 FAT 就可以了。可是我们要怎么才找得到第二个 FAT 呢? 一般的办法是寻找偏移 0 的十六进制值“F8 FF FF 0F”, 判断是不是 FAT 可能需要你有一定 的经验,(没事用 WINHEW 观察你的硬盘会是一个好办法),如果找到第二个 FAT,如何 判断 FAT 的长度呢?这个有些困难,本来是通过引导扇的 FAT 长度字节来看的,但此时引 导扇也被病毒覆盖了!我的方法是一般第一个 FAT 是从该分区的 32 扇开始的(FAT32 系 统),找到了第二 FAT 的开始,又知道第一 FAT 的开始,要算每个 FAT 的长度,还不好办 么?恢复了 FAT 后,要恢复引导扇区就更好办了,除了分区占用的扇区数和每个 FAT 占用 的扇区数要自己计算,其他都可以到别人的机器上拷贝一个过来。你可能要问我,要是它的 第二个 FAT 也被覆盖了怎么办?唯一的办法是重建盘簇链,当然你要将大到以 G 为单位的 分区用手工来建分区链,我想是没有可行性的!