|
|
发表于 2007-3-28 11:09:13
|
显示全部楼层
修复过程:
先大致的粗略的说一下修复分区表错误的思路:
1. 在做所有修改之前先备份!!由于现在需要对分区表进行修复,所以先需要备份的是现有的分区表还有MBR。把所有的备份文件放到一个安全的地方,例如发邮件到邮箱。
2. 检查一下当前的分区表,分析一下,什么地方出错了。如果仅仅是分区类型与实际的,硬盘上的分区不符。只需要使用linux中的fdisk工具的t命令进行修改。
3. 最坏的情况:没有任何分区表信息,需要完全重建分区表。众所周知,DOS环境下的diskgen有个重建分区表的功能,它能够从硬盘上的数据分析出分区结构。对于出错的分区表,它在分析的过程中可能会有一些问题。但是,当它分析出分区信息之后,至少给操作者了一个参考。操作者自己再看一下分区表,分析一下,哪里有问题,通常就可以根据这些信息给出正确的重建分区表的方案。我见过一种分区出错的情况是扩展分区中的最后一个逻辑分区脱离了扩展分区的范围。
分区原理
一块没有分过区的硬盘就像一张白纸一样,是没有数据的。分好区的硬盘就会具有一定的结构性。分区就是将硬盘分为一定的区域,便于使用。
一块硬盘最多可以分四个区(主分区)。无论硬盘分多少个区,它的最前面都有一个引导扇区(主引导记录)。
主引导记录由三部分组成:一部分是446byte的操作系统引导代码,还有一部分是64byte的主分区表。主分区表最多记录四个主分区的分区信息.每个分区占用16byte.分区就是修改分区表,它不影响硬盘上的存储的数据。最后的2字节是结束标志。
扩展技术:需要将一块硬盘分成更多的分区,超过5个以上的分区,可以将最多四个主分区中的一个分区类型改为扩展分区,然后在扩展分区中再建逻辑分区。逻辑分区的分区信息保存在扩展分区之中,叫做扩展分区表。理论上逻辑分区没有个数的限制。扩展分区不能被直接使用,必须将其划分为若干个逻辑分区。逻辑分区的起始位置的信息都写在扩展分区表里面。逻辑分区的分区编号从5开始,如:/dev/hda5是第一块硬盘的第一个逻辑分区。
格式化原理
分好区的硬盘分区上面什么数据也没有,操作系统也不能读写,为了让操作系统能够识别必须向分区中预写入一定格式的数据。这个过程就称之为格式化。在Linux中称为创建文件系统。
没有分区的硬盘是不能格式化的,没有格式化的分区是不能直接被使用的。所以分区和格式化往往都是同时进行的。
从上面可以知道,一块已经有数据的硬盘就算没有分区表,它也是具有结构性的。先前的每个分区之间是有明确的分界点的。为什么这么说?因为,在格式化或者说创建文件系统的时候将会按照先前的分区表信息中的分区的起始柱面进行“规化”。当真正的进行过创建文件系统的操作之后,硬盘就具有了结构性。让硬盘具有结构性是为了让操作系统能够识别。操作系统在识别硬盘的时候不仅仅会检查每个分区的分区表信息(起始位置,分区类型等),还会检查当前的分区(物理位置为硬盘上的一个柱面到另一个柱面)的文件系统是否为当前操作系统所能够识别,如果能识别还需要检查其中是否有错误,如果有错误将采取什么措施?
综上所述,无论分区表出现何种故障,在修复分区表或者是重建分区表的时候都是有机可寻的。而不会是毫无根据的。
至于楼主的问题,在还暂时还没有确定病因之前,自然是还不能给出治疗的方法。
如果,楼主的分区表还存在一些信息,只是部份地方有些小差错,要修复不难!! |
|