|
|
51CTO旗下网站
|
|
移动端

3.2.3 磁盘分区表(partition table)

《鸟哥的Linux私房菜 基础学习篇(第三版)》第3章主机规划与磁盘分区,在这一章里面,鸟哥会介绍一下,在开始安装Linux之前你应该要先思考哪些工作,好让你后续的主机维护轻松愉快。本节为大家介绍磁盘分区表(partition table)。

作者:鸟哥来源:人民邮电出版社|2010-07-15 16:27

【51CTO技术沙龙】10月27日,让我们共同探索AI场景化应用实现之道

3.2.3 磁盘分区表(partition table)

但是硬盘总不能真的拿锯子来切割吧?那硬盘还真的是会坏掉去。那怎么办?在前一小节的图示中,我们有看到"开始与结束柱面"吧?那是文件系统的最小单位,也就是分区的最小单位。我们就是利用参考柱面号码的方式来处理。在分区表所在的64bytes容量中,总共分为四组记录区,每组记录区记录了该区段的启始与结束的柱面号码。若将硬盘以长条形来看,然后将柱面以柱形图来看,那么那64bytes的记录区段如图3-3所示。

 
图3-3 磁盘分区表的作用示意图

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

P1:/dev/hda1

P2:/dev/hda2

P3:/dev/hda3

P4:/dev/hda4

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

由于分区表就只有64bytes而已,最多只能容纳四个分区,这四个分区被称为主(Primary)或扩展(Extended)分区。根据上面的图示与说明,我们可以得到几个重点信息:

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

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

这四组分区信息我们称为主(Primary)或扩展(Extended)分区。

分区的最小单位为柱面(cylinder)。

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

你会不会突然想到,为什么要分区啊?基本上你可以以这样的角度去思考分区:

1.数据的安全性

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

2.系统的性能考虑

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

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

 
图3-4 磁盘分区表的作用示意图

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

图3-4右下方那个区块有继续分区出五个分区,这五个由扩展分区继续切出来的分区,就被称为逻辑分区(logical partition)。同时注意一下,由于逻辑分区是由扩展分区继续分区出来的,所以它可以使用的柱面范围就是扩展分区所设定的范围喔!也就是图中的101~400啦!

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

P1:/dev/hda1

P2:/dev/hda2

L1:/dev/hda5

L2:/dev/hda6

L3:/dev/hda7

L4:/dev/hda8

L5:/dev/hda9

仔细看看,怎么设备文件名没有/dev/hda3与/dev/hda4呢?因为前面四个号码都是保留给Primary或Extended用的。所以逻辑分区的设备名称号码就由5号开始了,这是个很重要的特性,不能忘记。

关于主分区、扩展分区与逻辑分区的特性我们作个简单的定义。

主分区与扩展分区最多可以有四个(硬盘的限制)。

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

逻辑分区是由扩展分区持续切割出来的分区。

能够被格式化后作为数据访问的分区为主分区与逻辑分区。扩展分区无法格式化。

逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号),SATA硬盘则有11个逻辑分区(5号到15号)。

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

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

 
图3-5 磁盘空间整合示意图

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

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

由于第一个扇区所记录的分区表与MBR是这么重要,几乎只要读取硬盘都会先由这个扇区先读起。因此,如果整块硬盘的第一个扇区(就是MBR与partition table所在的扇区)物理坏掉了,那这个硬盘大概就没有用了。因为系统如果找不到分区表,怎么知道如何读取柱面区间呢?下面还有一些例题你可以思考。

如果我想将一块大硬盘"暂时"分成为4个分区,同时还有其他的剩余容量可以让我在未来的时候进行规划,我能不能分区出4个主分区?若不行,那么你建议该如何分区?

答:?  由于主分区和扩展分区最多只能有4个,其中扩展分区最多只能有一个,这个例题想要分区出4个分区且还要预留剩余容量,因此P+P+P+P的分区方式是不适合的。因为如果使用到4个主分区,则即使硬盘还有剩余容量,因为无法再继续分区,所以剩余容量就被浪费掉了。

假设你想要将所有的四条记录都花光,那么P+P+P+E是比较适合的。所以可以用的4个分区有3个主分区及一个逻辑分区,剩余的容量在扩展分区中。

如果你要分区超过4个以上时,一定要有扩展分区,而且必须将所有剩下的空间都分配给扩展分区,然后再以扩展分区来规划扩展分区的空间。另外,考虑到磁盘的连续性,一般建议将扩展分区的柱面号码分配在最后面的柱面内。

我能不能仅分区出一个主分区与一个扩展即可?

答:当然可以,这也是早期Windows操作系统惯用的手法。此外,逻辑分区的号码在IDE可达63号,SATA则可达15号,因此仅一个主分区与一个扩展分区即可,因为扩展分区可继续被分出逻辑分区。

假如我的PC有两块SATA硬盘,我想在第二块硬盘分出6个可用的分区(可以被格式化来访问数据之用),那每个分区在Linux系统下的设备文件名为何?且分区类型各为何?至少写出两种不同的分区方式。

答:由于P(primary)+E(extended)最多只能有四个,其中E最多只能有一个。现在题目要求6个可用的分区,因此不可能分出四个P。下面我们假设两种环境,一种是将前四号全部用完,一种是仅花费一个P及一个E的情况:

P+P+P+E的环境(如图3-6所示)

 
图3-6 分区示意图

实际可用的是/dev/sdb1,/dev/sdb2,/dev/sdb3,/dev/sdb5,/dev/sdb6,/dev/sdb7这六个,至于/dev/sdb4这个扩展分区本身仅是提供来给逻辑分区创建使用。

P+E的环境(如图3-7所示)

注意到了吗?因为1~4号是保留给主/扩展分区的,因此第一个逻辑分区一定是由5号开始,所以/dev/sdb3,/dev/sdb4就会被保留下来没有用到了!

 
图3-7 分区示意图

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

2006软考上半年试题分析与解答

本书是针对全国计算机技术与软件专业技术资格(水平)考试而编写的,书中详尽分析与解答了2006年上半年的程序员级、软件设计师级、软件评测...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊