[表2 分区结构信息]
偏移 长度 含义
00H 1 活动分区指示符,该值为80H表示为可自举分区(仅有一个),该值为00H 表示
其余分区。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
01H 1 分区起始磁头号。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
02H 1 低6 位是分区开始的扇区,高2位是分区开始的柱面的头两位。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
03H 1 分区开始的起始柱面号的低8 位。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
04H 1 系统标志,该值为01H 表示采用12位FAT格式的DOS 分区,该值04H 表示
采用16 位FAT格式的DOS分区,该值为05H 表示为扩展DOS分区,为06H
表示为DOS系统。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
05H 1 分区终止头号
06H 1 低6 位为分区结束的扇区号,头2 位为结束柱面号的前2 位。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
07H 1 分区结束柱面号的低8位。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
08H 4 本分区前的扇区数,低位字节在 前。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
0CH 4 本分区总的扇区数,低位字节在前。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
重要公式:
02H 为X,03H为Y。柱面=(X>>6)*16^2+Y;
第一个例子是一个只有Win2000 的硬盘
有九个可用分区,二个不可用分区;
两个Primary NTFS分区,第二个为active;
七个Extened 分区,第五个为NTFS其他为FAT32.

其他扩展分区同理。
另一个是有Win2000 和Redhat Linux7.2的计算机。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
磁盘0 为什么有两个主分区,这是因为装过linux,装linux 如果需要不从MBR引导而从
linux 分区引导就需要把此分区设为活动主分区,因为扩展分区是没有OBR的。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
注意,主分区有两个所以主分区表有两项。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
Disk1 的主分区表如下:
这个是GRUB引导的所以从00—1bd都用上了,1b这行还有一个CDA3 就是int a3,不
知道是干什么的。.
磁盘1 看似只有一个主分区,其实不然,因为至少还有一个8M区域是为扩展分区准备
的。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
磁盘2 一看就知道是装redhat时自动分配的,分别对应/、root、user、swp等
主分区表的四个条目都用上了,三个主分区一个扩展分区。扩展分区指向的位置的扩
展分区表如下:
同理后继的扩展分区表分别为:
最后的分区表为linux 交换文件
分区表结束。
电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
从上面的分析大家都基本清楚了分区表的结构了吧。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
现在谈核心的问题怎样修复分区表。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
1.3 分区表的修复
修复分区表建议在win2000 下进行,用windows 的磁盘工具毕竟方便,而且有个很大
的心理作用就是能进入windows 心中就不慌了。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
如果你没有多台计算机可以使用,在DOS 下也能做。 在装不兼容的多操作时主分区
表很容易就被破坏了。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
但是主分区表的位置是固定的,可以找到,主分区表中只有4 项,根据你对磁盘分区
的记忆很容易大概估计出主分区表的样子。虽然第一个主分区不一定紧接在MBR后但是,
从MBR 开始搜索55aa 标志,就很容易找到。找到55aa 套入主分区OBR 的模板看一下是
不是和记忆中的相似,不是就继续找。如果是把主分区表的第一项指向它再按照上面的格式
添加其他信息就可以了,。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
用以上方法可以逐个找到主分区表。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
扩展分区表是一个接一个连成一串的,方法差不多,大不了扔到其中一个先把容易找
到的分区恢复。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
用手找分区表是一件很枯燥的事,有工具DiskMan就使这个工作简单多了。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
在DOS下启动DiskMan选择重建分区表,提问是自动还是交互方式,显然选择交互方
式。这样的话,它每找到一个55aa 就会提示是否认为发现一个分区,然后显示该假设分区
的信息(说白了就是把找到的扇区套入OBR 或扩展分区表模板)。你应该用笔记下所有的
提示画出一个硬盘结构的草图,仔细分析这个草图后就可以判断哪些是正确的分区表,然后
再进行一次,在真确的时候选择”是”就可以了。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
最后选择菜单里的写盘写入数据。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
DiskMan有回溯功能,所以即使有一次失败的操作还是可以纠正的。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
注意:
有些喜欢在硬盘上给硬盘的分区表做备份,如果是这样的话,将会把你的备份文
件当成一个合逻辑的分区表,这是显然的。如果发生这种情况,将会很难区分真伪。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
在恢复成功后要尽快把数据拷贝出来,千万不要用分区表扫描之类的东西。因为他们
会抹掉继续恢复所需要的踪迹。比如PQMagic 启动时会扫描分区表的错误,如果提问是否
修复,应该选NO。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
即使在恢复很成功的情况下,也应该给数据做备份之后重分区,因为此时分区表是不规则的,只是由于操作系统的容错才得以工作。很容易引发新的故障。但是如果你是顶尖
高手又另当别论了。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)
分区表恢复后,可能与MFT(第一文件分配表)不符,此时列不出目录,可以用winnt/2000
的chkdsk修复,win98 的scandisk肯定不行。电+脑*维+修-知.识_网(w_ww*dnw_xzs*co_m)