|
|
|
|
移动端

3.2.4 开机流程与主引导分区(MBR)

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

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

技术沙龙 | 6月30日与多位专家探讨技术高速发展下如何应对运维新挑战!


3.2.4 开机流程与主引导分区(MBR)

我们在计算机概论里面谈到了,没有执行软件的硬件是没有用的,除了会电人之外,而为了计算机硬件系统的资源合理分配,因此有了操作系统这个系统软件的产生。由于操作系统会控制所有的硬件并且提供内核功能,因此我们的计算机就能够认识硬盘内的文件系统,并且进一步读取硬盘内的软件文件与执行该软件来完成各项软件的执行目的。

问题是,你有没有发现,既然操作系统也是软件,那么我的计算机又是如何认识这个操作系统软件并且执行它的?开机时我的计算机还没有任何软件系统,那它要如何读取硬盘内的操作系统文件啊?这就得要牵涉到计算机的开机程序了!下面就让我们来谈一谈这个开机程序吧!

在计算机概论里面我们谈到那个可爱的BIOS与CMOS两个东西,CMOS是记录各项硬件参数且嵌入在主板上面的存储器,BIOS则是一个写入到主板上的一个韧体(再次说明,韧体就是写入到硬件上的一个软件程序)。这个BIOS就是在开机的时候计算机系统会主动执行的第一个程序了。

接下来BIOS会去分析计算机里面有哪些存储设备,我们以硬盘为例,BIOS会依据用户的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区的MBR位置。MBR这个仅有446bytes的硬盘容量里面会放置最基本的引导加载程序,此时BIOS就功成圆满,而接下来就是MBR内的引导加载程序的工作了。

这个引导加载程序的目的是在加载(load)内核文件,由于引导加载程序是操作系统在安装的时候所提供的,所以它会识别硬盘内的文件系统格式,因此就能够读取内核文件,然后接下来就是内核文件的工作,引导加载程序也功成圆满,之后就是大家所知道的操作系统的任务啦!

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

1.BIOS:开机主动执行的韧体,会认识第一个可开机的设备。

2.MBR:第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序。

3.引导加载程序(Boot loader):一支可读取内核文件来执行的软件。

4.内核文件:开始操作系统的功能。

由上面的说明我们会知道,BIOS与MBR都是硬件本身会支持的功能,至于Boot loader则是操作系统安装在MBR上面的一套软件了。由于MBR仅有446bytes而已,因此这个引导加载程序是非常小而完美的。这个boot loader的主要任务有下面这些项目。

提供菜单:用户可以选择不同的开机选项,这也是多重引导的重要功能。

载入内核文件:直接指向可开机的程序区段来开始操作系统。

转交其他loader:将引导加载功能转交给其他loader负责。

上面前两点还容易理解,但是第三点很有趣喔!那表示你的计算机系统里面可能具有两个以上的引导加载程序呢!有可能吗?我们的硬盘不是只有一个MBR而已?但是引导加载程序除了可以安装在MBR之外,还可以安装在每个分区的引导扇区(boot sector)。分区还有个别的启动扇区?这个特色才能造就"多重引导"的功能。

我们举一个例子来说,假设你的个人计算机只有一块硬盘,里面分成四个分区,其中第一、二分区分别安装了Windows及Linux,你要如何在开机的时候选择用Windows还是Linux开机呢?假设MBR内安装的是可同时识别Windows/Linux操作系统的引导加载程序,那么整个流程如图3-8所示。

 
图3-8 引导加载程序的工作执行示意图

在图3-8中我们可以发现,MBR的引导加载程序提供两个菜单,菜单一(M1)可以直接加载Windows的内核文件来开机;菜单二(M2)则是将引导加载工作交给第二个分区的启动扇区(boot sector)。当用户在开机的时候选择菜单二时,那么整个引导加载工作就会交给第二分区的引导加载程序了。当第二个引导加载程序启动后,该引导加载程序内(上图中)仅有一个开机菜单,因此就能够使用Linux的内核文件来开机。这就是多重引导的工作情况。我们将上图作个总结。

每个分区都拥有自己的启动扇区(boot sector)。

图中的系统分区为第一及第二分区。

实际可开机的内核文件是放置到各分区内的。

loader只会认识自己的系统分区内的可开机内核文件,以及其他loader而已。

loader可直接指向或者是间接将管理权转交给另一个管理程序。

那现在请你想一想,为什么人家经常说:"如果要安装多重引导,最好先安装Windows再安装Linux"呢?这是因为。

Linux在安装的时候,你可以选择将引导加载程序安装在MBR或个别分区的启动扇区,而且Linux的loader可以手动设置菜单(就是上图的M1, M2),所以你可以在Linux的boot loader里面加入Windows开机的选项。

Windows在安装的时候,它的安装程序会主动覆盖掉MBR以及自己所在分区的启动扇区,你没有选择的机会,而且它没有让我们自己选择菜单的功能。

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

引导加载程序与启动扇区的观念是非常重要的,我们会在第20章分别介绍,你在这里只要先对开机需要引导加载程序和引导加载程序可以安装在MBR及启动扇区两处这两个观念有基本的认识即可,一开始就背太多东西会很混乱。

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

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

读 书 +更多

程序员面试宝典

本书取材于各大IT公司历年面试真题(笔试、口试、电话面试、英语面试,以及逻辑测试和智商测试)。详细分析了应聘程序员(含网络、测试等...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊