bdhsxt 发表于 2010-3-30 16:31:39

请大家教教我这个怎么算


这个是第二个分区的ebr ,我想用他算一下,把mbr算出来,可是我怎么算也对不上前面的mbr,大家帮多看看看吧,谢谢了。我是这样算的,总的扇区是

154583239

看看这个图,我算的,应该没错吧,如果这样的话,c 盘大小应该是30738090,和mbr一点也对不上,

哪错了, 请大家教教我吧,不过扩展分区差了一个扇区 算是误差小的了,

lvyanan 发表于 2010-3-30 21:17:28

30732345扇区是第一扩展分区的EBR,C盘的容量一般就等于这个数减去63=30732282。其它数据都没用,算不出来的,扩展分区链表是一个单链表,不可回溯。

bdhsxt 发表于 2010-3-31 09:04:19

回复 2# lvyanan 不可回溯。这句话是什么意思,是不能往回算的意思吗

lvyanan 发表于 2010-3-31 09:28:46

回复 3# bdhsxt
没错,就是不可反过来进行逆向遍历运算,信息量不够,是单向链表性质决定的,你如果找到的是E盘分区的EBR,你就不好计算C盘的容量了,你还需要下一个扩展分区起始扇区号参数,才可以算出C盘容量的大小。

bdhsxt 发表于 2010-3-31 09:41:37

回复 4# lvyanan 在30732345扇区中的ebr是D盘的ebr,我刚才按照你说的方法,现在能找到C盘的大小了,就是30732282,转换成16进制后和mbr中描述的一样,现在的问题是,mbr中描述的扩展分区能不能用总扇区大小-C盘大小,也就是154583239-30732345=123850894,但是按照mbr中描述的应该是123845085,怎么对不上呢,哪里错了?

lvyanan 发表于 2010-3-31 13:13:25

回复 5# bdhsxt
很正常,分区软件不会将全部扇区分完,通常会将硬盘后部,不足一个柱面的扇区保留不分,因此你计算的就会有差别了。

bdhsxt 发表于 2010-3-31 14:10:20

回复 6# lvyanan
那么这种情况是不是不能手工填写mbr了?

bdhsxt 发表于 2010-3-31 14:16:45

回复 6# lvyanan
是我计算的问题还是本来就是这样?那么这种情况是不是不能手工填写mbr了?

lvyanan 发表于 2010-3-31 19:29:54

扩展分区大小应该遍历一遍扩展分区链表,统计出真实使用的总扇区数,再填入MBR。
页: [1]
查看完整版本: 请大家教教我这个怎么算