Linux学习笔记(五)

磁盘分割表(partition table

提到磁盘分割就不得不说一下磁盘的组成了,因为多少都有点基础,在这里我就直接上图了,磁盘组成的示意图如下:

整个磁盘的第一个扇区特别重要,它记录了整个磁盘的重要信息,分别为:

1) 主要开机记录区(Master Boot Record,MBR):可以安装开机管理程序的地方有446 bytes

2) 分割表(partition table):记录整个磁盘分割的状态,有64 bytes

从图中我们可以看到开始和结束磁柱,那是文件系统的最小单位,也就是分割槽的最小单位了。没有错, 我们就是利用参考对照磁柱号码的方式来处理啦! 在分割表所在的64 bytes容量中,总共分为四组记录区,每组记录区记录了该区段的启始归纳法结束的磁柱号码。(因为一个记录区需要16 bytes来记录)若將硬盘以长条形来看,然后将磁柱以直条圆来看,那么那64 bytes的记录区段有点像底下的图示:

磁盘分割表的作用示意图

假设上面的硬盘装置档名为/dev/hda时,那么这四个分割槽在Linux系统中的装置档名如下所示, 重点在于档名后面会再接一个数字,这个数字与该分割槽所在的位置有关喔!
P1:/dev/hda1
P2:/dev/hda2
P3:/dev/hda3
P4:/dev/hda4

上图中我们假设硬盘只有400个磁柱,共分割成为四个分割槽,第四个分割槽所在为第301400号磁柱的范围。 当你的操作系统为Windows时,那么第一到第四个分割槽的代号应该就是C, D, E, F。当你有资料要写入F盘时, 你的资料会被写入这个磁盘的301~400号磁柱之间。由于分割表就只有64 bytes而已,最多只能容纳四笔分割的记录, 这四个分割的记录被称为主要(Primary)或延伸(Extended)分割槽。 根据上面图示的说明,我们可以得到几个重点信息:

其实所谓的分割只是针对那个64 bytes 的分割表进行的设定而已

磁盘预设的分割表仅能写入四组分割信息

这四组分割信息我们称为主要(Primary)或延伸(Extended)分割槽

分割槽的最小单位为磁柱(cylinder)

当系统要写入磁盘时,一定会参考磁盘分割表,才能针对某个分割槽进行资料的处理

 

你会不会突然想到,为什么要分割,基本上你可以这样思考分割的角度:
资料的安全性:
因为每个分割槽的资料是分开的!所以,当你需要将某个分割槽的资料重整时,例如你要将电脑中WindowsC槽重新安装一次系统时, 可以将其他重要资料移动到其他分割槽,例如将邮件、桌面资料移动到D槽去,那么C槽重装系统并不会影响到D槽! 所以善用分割槽,可以让你的资料更安全。
系统的效能考量:
由于分割槽将资料集中在某个磁柱的区段,例如上图中第一个分割槽位于磁柱号码1~100号,如此一来当有资料要读取自该分割槽时, 磁盘只会搜寻前面1~100的磁柱范围,由于资料集中了,将有助于资料读取的速度与效率!所以说,分割是很重要的!

 

既然分割表只有记录四组资料的空间,那么是否代表我一个磁盘最多只能分割出四个分割槽?当然不是啦!有经验的朋友都知道, 你可以将一个磁盘分割成十个以上的分割槽的!那又是如何达到的呢?在Windows/Linux统中, 我们是透过刚刚谈到的延伸分割(Extended)的方式来处理的!延伸分割的想法是: 既然第一个磁盘所在的分割表只能记录四个资料, 那我可否利用额外的磁区来记录更多的分割信息,实际上图示有点像底下这样: 

磁盘分割表的作用示意图

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

如上图右下方那个区块又继续分割出五个分割槽, 这五个由延伸分割继续切出来的分割槽,就被称为逻辑分割槽(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呢?因为前面四个号码都是保留给PrimaryExtended用的嘛! 所以逻辑分割槽的装置名称号码就由5号开始了!这是个很重要的特性,不能忘记!

主要分割、延伸分割与逻辑分割的特性我们作个简单的定义:
主要分割与延伸分割最多可以有四个(盘的限制)
延伸分割最多只能有一个(业系统的限制)
逻辑分割是由延伸分割持续切割出來的分割槽;
能够被格式化后,作为资料存取的分割槽为主要分割与逻辑分割。延伸分割无法格式化;
逻辑分割的数量依作业系统而不同,在Linux系統中,IDE盘最多有59个逻辑分割(5号到63号), SATA盘则有11个逻辑分割(5号到15号)

事实上,分割是个很麻烦的东西,因为他是以磁柱为单位的『连续』磁盘空间, 且延伸分割又是个类似独立的磁盘空间,所以在分割的时候得要特別注意。

由于第一个磁区所记录的分割表与MBR这么的重要,几乎只要读取硬盘都会先由这个磁区先读起。 因此,如果整个硬盘的第一个磁区(就是MBR与partition table所在的磁区)物理实体坏掉了,那这个硬盘大概就没有用了! 因为系统如果找不到分割表,怎么知道如何读取磁柱区间呢?

开机流程和主要开机记录区(MBR)

在计算机理论里面我们有谈到那个可爱的BIOS与CMOS两个东西, CMOS记录各项硬件参数且嵌入在主板上面的存储器,BIOS则是一个写入到主板上的一个程序。这个BIOS就是在开机的时候,电脑系统会主动执行的第一个程序!接下来BIOS会去分析电脑里面有哪些存储设备,我们以硬盘为例,BIOS会依据使用者的设定去取得能够开机的硬盘, 并且到该硬盘里面去读取第一个磁区的MBR位置。 MBR这个仅有446 bytes的硬盘容量里面会放置最基本的开机程序, 此时BIOS就功成圆满,而接下来就是MBR內的开机程序的工作了。

这个开机程序的目的是在载入(load)心档案, 由于开机程序是作业系统在安装的时候所提供的,所以他会认识硬盘內的档案系统格式,因此就能够读取核心档案, 然后接下来就是核心档案的工作,开机程序也功成圆满,之后就是大家所知道的作业系統的任务啦!

简单的说,整个开机流程到作业系统之前的动作应该是这样的:


BIOS开机主动执行的程序,会认识第一个可开机的装置;
MBR:第一个可开机装置的第一个磁区內的主要开机记录区块,內含开机程序;
开机管理程序(boot loader):一支可读取核心档案来执行的程序;
核心档案:开始作业系统的功能...

由上面的说明我们会知道,BIOS与MBR都是程序本身会支援的功能,至于Boot loader则是作业系统安装在MBR上面的一套程序了。由于MBR仅有446 bytes而已,因此这个开机程序是非常小而美的。 这个boot loader的主要任务有底下这些项目:


提供选择:使用者可以选择不同的开机项目,这也是多重开机的重要功能!
载入核心档案:直接指向可开机的程序区段来开始作业系统;
转交其他loader将开机管理功能转交给其他loader负责。

上面前两点还容易理解,但是第三点很有趣喔!那表示你的电脑系统里面可能具有两个以上的开机程序呢! 有可能么?我们的硬盘不是只有一个MBR而已?没错!但是开机管理程序除了可以安装在MBR之外, 还可以安装在每个分割槽的开机磁区(boot sector)这个特色才能造就『多重开机』的功能啊!

我们举一个例子来说,假设你的个人电脑只有一个硬盘,里面切成四个分割槽,其中第一、二分割槽分別安装了WindowsLinux, 你要如何在开机的时候选择用Windows还是Linux开机呢?假设MBR內安装的是可同时认识Windows/Linux作业系统的开机管理程序, 那么整个流程可以图示如下:

在上图中我们可以发现,MBR开机管理程序提供两个选择,选择一(M1)可以直接载入Windows的核心档案来开机; 选择二(M2)则是将开机管理工作交给第二个分割槽的开机磁区(boot sector)当使用者在开机的时候选择二时, 那么整个开机管理工作就会交给第二分割槽的开机管理程式了。 当第二个开机管理程序启动后,该开机管理程序內(图中)仅有一个开机选择,因此就能夠使用Linux的核心档案来开机。 这就是多重开机的工作情况啦!我们将上图作个总结:
每个分割槽都拥有自己的开机磁区(boot sector)
图中的系统槽为第一及第二分割槽,
实际可开机的核心档案是放置到各分割槽內的!
loader会认识自己的系统槽內的可开机核心档案,以及其他loader而已;
loader可直接指向或者是间接将管理权转交给另一个管理程式。

那现在请你想一想,为什么人家常常说:『如果要安装多重开机, 最好先安装Windows再安装Linux』呢?这是因为:
Linux在安装的时候,你可以选择将开机管理程式安装在MBR或各別分割槽的开机磁区, 而且Linuxloader可以手动设定选项(就是上图的M1, M2...),所以你可以在Linuxboot loader里面加入Windows开机选项;Windows在安装的时候,他的安装程序会主动的覆盖掉MBR以及自己所在分割槽的开机磁区,你没有选择的机会, 而且他没有让我们自己选择的功能。

因此,如果先安装Linux再安装Windows话,那MBR开机管理程序就只会有Windows项目,而不会有Linux项目 (为原本在MBR內的Linux开机管理程序就会被覆盖掉)。 那需要重新安装Linux一次么?当然不需要,你只要用尽各种方法来处理MBR的內容即可。 例如利用全中文的spfdisk(http://spfdisk.sourceforge.net/)软件來安装认识Windows/Linux的管理程序, 也能夠利用Linux的救援模式来挽救MBR即可。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值