提示117错,分区表的驱动器符无法读取。我猜是我之前对分区修改了太多次了,估计分区表
里有一堆额外信息,PQ处理不了就报错了。上网,打算证实一下,google,有人说是系统装
在非活动分区上引起的。当时真是大脑缺氧,想都没想,就直接用windows磁盘管理直接把D
盘设为 活动分区。这下好,我的G盘直接就消失了...真不知道windows是怎么设计的,这种副
作用怎么都不提示一下..
想想怎么救回G盘吧。这里先说一下我的分区结构,所有盘都是NTFS,CDE为主分区,FG
为扩展分区,你如果问我为什么要这么分,我只能回答分区时还是新手...分区大小,C盘25
,D盘20, E,F40, G27. 如果你还要问我为什么要这样分,我回答我喜欢...
玩笑开完,说正题。
首先是分析情况,从分区消失的速度来看,应该是分区表被删除了,而且其他分区都在
,所以应该就只有G盘的分区表被破坏了。所以应该恢复分区表。立马Google,看了看其他人
的遭遇,似乎解决办法应该是“重建分区表”。看到有人推荐diskgen,立马用dos引导系统
,运行diskgen,备份目前的分区表(不开玩笑,极为重要)。重建分区表。好,开始查找了
...真紧张,第一个分区查到了..正确,第二个,嗯?FAT32?40G?这不是我最早的分区方案
吗...汗,继续找找,还找出其他莫名其妙的分区...看来diskgen太灵敏了,失败...失败是
失败,可是diskgen是即时生效的,分区表直接被重写,还好我开头备份了,恢复,OK,回
windows重查方法。
第二次查找,找到一个不错的东东,WinPM,运行一看,发现G盘了,右键,反删除,搜
索删除的分区...没找到,直接恢复试试,这下好,G盘是回来了,显示未格式化。分析原因
,应该是恢复的不对,还是不行...
陷入沉思,觉得要手动改了,再看看有没有取巧的地方,看了看存在的各个盘的信息,
突然发现它们的柱面等信息是连续的,心里一激动,如果能正确找到G盘的起点应该就行,用
diskgen试了试,竟然提示参数不正确,晕...
第三次google,查了好久,发现大家推荐一个windows下的分区重建工具PTDD,运行试试
,自动分区表重建还不如diskgen,只找到三个分区。而且这三个分区还不连续。哎,怎么办
呢,毛主席曾教导过我们:“自力更生,丰衣足食”~。自己来吧,由前面的分析猜测是分区
表错了,要重建分区表,就要知道分区表的格式(查到一篇别人的心得
http://jike.it168.com/7326616/viewspace-1974,这里感谢他,我就是参考这文章才弄明
白的。)
下面我就开始了漫长的修复过程...:(以下心得)
很久很久以前,硬盘是很小的,大家总在幻想自己有一个2G的硬盘。咳,所以计算机设计

者就设计了一种为磁盘的寻址方式,叫CHS格式(这里请自行复习硬盘的物理结构,至少明白
磁道,扇区,盘面的关系)。这种CHS格式最大支持单分区8.4G,后来,硬盘长大了,CHS格
式装不下他了,于是一种新的寻址方式出现了,它就是LBA(再次BS一些教程,什么年代了,
还只讲CHS),(但由于封建残余势力很强大,新生力量只好在一定程度上向旧顽固派妥
协...)咳,其实是CHS也是很些优点的,所以现在的硬盘分区表中还是有CHS的一席之地。好
,回顾完历史,我们来看看分区表的格式!
硬盘的第0柱,0面,1区,CHS格式(0,0,1),LBA地址为0处,存放主引导记录(Master
Boot Record,即MBR),MBR的倒数66字节即是分区表,除去最后两字节55 AA是结束标记,
剩下的64字节就是硬盘分区表。约定只能有四个分区,故每个分区表项16字节。
各字节定义:引导类型(1),起始CHS(3),分区格式(1),终止CHS(3),起始LBA或解释为
之前有多少扇区,真正意思应该是相对于此MBR的偏移(4),分区大小(4)。
这里,CHS,第一字节是盘面(磁头号),第二字节前6位是扇区号,后10位是柱面号,
这下你知道为什么单分区是最大8.4G了吧,1024*64*255。
知道了这些还是不够的。接着分析,MBR中只有四项分区表项,所以只能有四个主分区,
要想扩展,就必须采用链表的形式,最后一个主分区变为扩展分区,其中记录的LBA起始指向
某一扇区,这一扇区的功能相当于另一个虚拟MBR,那里面又有分区表。
另外,在分区第一扇,记录了分区的大小,这就是我们能手工恢复的关键所在。
立马进入实例,用PTDD查看扇区,001处显示四个分区都在,我算了一算,四个区大小都
正确,这也就是为什么WinPM能看到所有分区的原因。因为我的G盘在扩展分区里,即第四分
区里,看第四分区: 第四分区vmbr扇区174082048,定位过去一看,果然,VMBR中只有一项了
,算了算,大小正确,正是F盘。再按VMBR中指出的F盘的偏移00 08 00 00(小端格式,十进
制2048扇区),跳过去看F盘的大小,符合之前的理论。
这下我要做的就是确定G盘的起始扇区,由于硬盘中各分区连续存放,按F盘大小加上其
LBA,加上vmbr地址,得到F盘尾,再下跳一扇,到达G盘的vmbr,哈哈,G盘的分区信息还在
呢,快抄下来00 A4 E6 FF 07 15 D4 FF 00 08 E2 04 00 38 5F03。跳回F盘的vmbr,填进
去。重启,哈哈,打开我的电脑一看,嗯?怎么还是未格式化...重开PTDD,跳到G盘的第一
扇,记下CHS,再用PTDD看目前G盘的CHS,开始和结束都不对...汗。也许F的vmbr中要指到G
的首扇而不是G的vmbr,再次修改G的LBA,得到00 A4 E6 FF 07 15 D4 FF 00 08 E2 0400
38 5F 03(就改了一个字节),写入重启,呵呵,我20G宝贵的绝版安装文件又回来了~~~
没有成功装上ubuntu觉得不爽,继续装,装着装着,提示分区信息不能写入,晕,估计
是逻辑分区不能激活,重启,得,硬盘没被引导,差点晕倒。用U盘引导,开diskgen,发现C
盘的引导位是00,改成80...重启,哦,那熟悉的界面~~