MBR(MS-DOS)与GPT磁盘分区表

但是磁盘总不能真的拿锯子来切割吧?那硬盘还真的是会坏掉。那怎么办?在前一节的图中,我们有看到"开始与结束磁道"吧?而通常磁盘可能有多个碟片,所以碟片的同一个磁道我们称之为柱面,通常那是文件系统的最小单位,也就是分区的最小单位。为什么说"通常"?因为近来有GPT这个可达到64位记录功能的分区表,现在我们甚至可以使用扇区号码来作为分区单位。所以说,我们就是利用参考对照柱面或扇区号码的方式来处理。

也就是说,分区表其实有两种方式,我们就依据来谈一谈这两种分区表格式。


MBR(MS-DOS)与GPT磁盘分区表

扇区

MBR分区表格式与限制

早期的Linux系统为了兼容Windows的磁盘,因此使用的是支持Windows的MBR的方式来处理启动引导程序与分区表。而启动引导程序记录区与分区表通通放在磁盘的第一个扇区,这个扇区通常是512字节的大小,

主引导记录:可以安装启动引导程序的地方,有446字节;

分区表:记录整块硬盘分区的状态,有64字节;

由于分区表所在区块仅有64字节容量,因此最多仅能有四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。若将硬盘以长条形来看,然后将柱面以柱形图来看,那么那64字节的记录区段有点像下面的图:

假设上面的硬盘设备文件名为/dev/sda时,那么这四个分区在Linux系统中的设备如下图所示,重点在于文件名后面再接一个数字,这个数字与该分区所在的位置有关。

P1:/dev/sda1

P2:/dev/sda2

P3:/dev/sda3

P4:/dev/sda4

MBR(MS-DOS)与GPT磁盘分区表

上图中我们假设硬盘只有400个柱面,共划分成为四个分区,第四个分区所在为第301-400号柱面的范围。当你的操作系统为Windows时,那第一到第四个分区的代号应该就是C、D、E、F。当你有数据要写入F分区时,你的数据会被写入这块硬盘的301-400号柱面之间的意思。

由于分区表就只只有64个字节而已,最多只能容纳四组分区记录,这四个分区的记录被称为主要或扩展分区。根据上面的图与说明,我们 可以得到几个重点信息。

其实所谓的分区只是针对那个64字节的分区表进行设置而已。

硬盘默认的分区表仅能写入四组分区信息。

这四组划分信息我们称为主要或扩展分区。

分区的最小单位通常称为柱面。

当系统要写入磁盘时,一定会参考磁盘分区表,才能针对一个分区进行数据的处理。

你会不会突然想到,为啥要分区?基本上你可以这样思考分区的角度。

1.数据的完全性

因为每个分区的数据是分开的。所以当你需要将一个分区的数据重新整理时,例如你要将计算机中Windows的C盘重新安装一次系统时,可以将其他重要数据移动到其他分区,例如将邮件、桌面数据移动到D盘,那么C盘重新安装系统不会影响到D盘,所以善用分区,可以让你的数据更安全。


2.系统的性能考虑

由于分区将数据集中到一个柱面区段中,例如图中第一个分区位于柱面号码1-100号,如此一来当有数据要读取自该分区时,磁盘只会查找前面1-100的柱面范围,由于数据集中,将有助于数据读取的速度与性能,所以说,分区很重要。

既然分区表只有记录四组数据的空间,那么是否代表一块硬盘最多只能分出四个分区呢?当然不是,有经验的朋友都知道,你可以将一块硬盘划分成十个以上的分区。那又是如何达到的呢?在Windows与Linux系统中,我们是通过刚刚谈到的扩展分区的方式来处理。扩展分区的意思是:既然第一个扇区所在的分区表只能记录四组数据,那我可否利用额外的扇区来记录更多的分区信息?实际上示意图有点像下面这样:


MBR(MS-DOS)与GPT磁盘分区表

在上图中,我们知道硬盘的四个分区记录区仅用到两个,P1为主要分区,而P2为扩展分区。请注意。扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能拿来格式化。然后我们可以通过扩展分区所指向的那个区块来继续做分区的记录。


如图右下方那个区块继续划分出五个分区,这五个由扩展分区继续切出来的分区,就被称为逻辑分区。同时注意一下,由于逻辑分区是由扩展分区继续划分出来的,所以它可以使用的柱面范围就是扩展分区所设置的范围,也就是图中的101-400。


同样,上述的分区在Linux系统中的文件名分别如下:

P1;/dev/sda1

P2:/dev/sda2

L1:/dev/sda5

L2:/dev/sda6

L3:/dev/sda7

L4:/dev/sda8

L5:/dev/sda9


仔细看看,怎么没有设备文件名/dev/sda3与/dev/sda4?因为前面四个号码都是保留给主要分区或扩展分区用的饿,所以逻辑分区的设备名称号码就由5号开始。这种在MBR方式的分区表中是个很重要的特性,不能忘记。


MBR主要分区、扩展分区与逻辑分区的特性我们做个简单的定义。

主要分区与扩展分区最多可以有4个(硬盘的限制);

扩展分区最多只能有一个(操作系统的限制);

逻辑分区是由扩展分区持续分出来的分区;

能够被格式化后作为数据存取的分区与逻辑分区,扩展分区无法格式化;

逻辑分区的数量依据操作系统而不同,在Linux系统中SATA硬盘已经可以突破63个以上的分区限制。

事实上,分区是个很麻烦的东西,因为它是以柱面为单位的连续磁盘空间,且扩展分区又是个类似独立的磁盘空间,所以在分区的时候要特别注意。我们举例来解释一下就好了。


例题:在Windows操作系统中,如果你想要将D与E整合成为一个新的分区,而如果有两种分区的情况如图所示:图中的特殊颜色区块为D与E的示意,请问这两种方式是否可将D与E整合成一个新的分区?

MBR(MS-DOS)与GPT磁盘分区表

答:上图可以看出,因为上图的D与E同属于扩展分区内的逻辑分区,因此只要将两个分区删除,然后再建立一个新的分区,就能够 在不影响其他分区的情况下,将两个分区的容量整合成为一个。

下图不可整合:因为D与E分属主要分区与逻辑分区,两者不能够整合在一起,除非将扩展分区破坏掉后再重新划分。但如此一来会影响到所有的逻辑分区,要注意的是:如果扩展分区被破坏,所有逻辑分区将会被删除,因为逻辑分区的信息都记录在扩展分区里面。


由于这一节比较难讲,所以我要分两次讲,下一节继续。


分享到:


相關文章: