Windows基本磁盘结构简析(三)——逻辑分区

来源:互联网 发布:兰州知豆电动车多少钱 编辑:程序博客网 时间:2024/05/18 18:52

上一篇文章中提到,MBR磁盘通过扇区零即主引导记录中的分区表管理磁盘分区,但是这仅限于主分区和扩展分区,但是很多时候,我们需要创建的分区不止4个,所以就需要在扩展分区中创建逻辑分区。

MBR磁盘上,每个逻辑分区都对应有一个数据结构,它类似于主引导记录MBR,占用一个扇区的空间,通常称为EBR。在EBR中,只有分区表中的前两项以及结束标志0xAA55有效。EBR分区表的第一项表明当前逻辑分区的偏移地址,第二项表明下一个逻辑分析EBR的开始位置。逻辑分区的管理类似于数据结构中的链表,第一个节点由链表头指定,即MBR分区表中的扩展分区指定了第一个逻辑分区EBR的开始位置,之后每个节点中都有一个属性表明下一个节点的地址。EBR的原理如下图所示。

152102104.jpg

如上图所示的3个逻辑分区中,如果需要读取分区3中的数据,系统会采取如下流程:

1:读入磁盘MBR扇区,查找分区表中是否存在类型为5的扩展分区,并记录扩展分区的偏移地址;

2::跳转到扩展分区的第一个EBR扇区,该EBR的第二项记录了第二个逻辑分区EBR的地址;

3:读取第二个EBR扇区,该EBR的第二项记录了第三个逻辑分区的EBR地址;

4:跳转到第三个EBR扇区处,读取第一个分区表项,该项中分区开始偏移记录了该逻辑分区到本EBR之间的偏移距离。

5:读取第三个逻辑分区的内容。

在这个过程中,必须要注意的是,EBR中分区表项开始地址是相对地址,而MBR中的分区开始地址则是相对于磁盘扇区0的绝对偏移地址。例如,对于上图中的第一个逻辑分区EBR,其中的第一项表示当前逻辑分区,其开始偏移指的是相对于该EBR的偏移,如EBR的地址是0x10000,且EBR指定逻辑分区开始偏移为0x800,那么该逻辑分区相对于磁盘扇区0的绝对开始位置为0x10800。另外,EBR中的第二个分区表项指向下一个逻辑分区EBR的地址,它和第一项有所不同,它是相对于主扩展分区的开始偏移的相对位置。如MBR中记录了扩展分区的开始位置为0X100000,且EBR中第二项开始偏移为0x10000,那么下一个逻辑分区EBR相对于磁盘扇区0的绝对偏移为0X110000。只要注意EBR中两个分区表项的开始位置的计算方式不同,就能够很容易的获取每个逻辑分区的地址和大小。


本文出自 “Jsl_mes” 博客,请务必保留此出处http://jslmes.blog.51cto.com/5008224/1319600

0 0