.
MBR
:虽然分区表有传统
MBR
以及新式
GPT
,不过
GPT
也有保留一块兼容
MBR
的区块,因此,底
下的说明在安装
boot loader
的部份,
鸟哥还是简称为
MBR
喔!总之,
MBR
就代表该磁盘的最前面可
安装
boot loader
的那个区块就对了!
.
BIOS,
开机自我测试与
MBR/GPT
我们在
第零章的计算器概论
就曾谈过计算机主机架构,
在个人计算机架构下,你想要启动整部系统
首先就得要让系统去加载
BIOS (Basic Input Output System)
,并透过
BIOS
程序去加载
CMOS
的信
息,并且½由
CMOS
内的设定值取得主机的各项硬件配置,
例如
CPU
与½口设备的沟通频率啊、
开机装置的搜寻顺序啊、硬盘的大小与类型啊、
系统时间啊、各周边总线的是否启动
Plug and Play
(PnP,
即插即用装置
)
啊、
各½口设备的
I/O
地址啊、以及与
CPU
沟通的
IRQ
岔断等等的信息。
在取得这些信息后,
BIOS
还会½行开机自我测试
(Power-on Self Test, POST) (
注
1
)
。
然后开始执行
硬件侦测的初始化,并设定
PnP
装置,之后再定义出可开机的装置顺序,½下来就会开始½行开机
装置的数据读取了。
由于我们的系统软件大多放置到硬盘中嘛!所以
BIOS
会指定开机的装置好让我们可以读取磁盘中
的操作系统核心文件。
但由于不同的操作系统他的文件系统格式不相同,因此我们必须要以一个开
机管理程序来处理核心文件加载
(load)
的问题,
因此这个
开机管理程序就被称为
Boot Loader
了。
那这个
Boot Loader
程序安装在哪里呢?就在开机装置的第一个扇区
(sector)
内,也就是我们一直谈
到的
MBR (Master Boot Record,
主要启动记录区
)
。
那你会不会觉得很奇怪啊?既然核心文件需要
loader
来读取,那每个操作系统的
loader
都不相同,
这样的话
BIOS
又是如何读取
MBR
内的
loader
呢?很有趣的问题吧!其实
BIOS
是透过硬件的
INT 13
中断功能来读取
MBR
的,也就是说,只要
BIOS
能够侦测的到你的磁盘
(
不论该磁盘是
SATA
还是
SAS
½口
)
,那他就有办法透过
INT 13
这条信道来读取该磁盘的第一个扇区内的
MBR
软件啦!
(
注
2
)
这样
boot loader
也就能够被执行啰!
Tips
我们知道每颗硬盘的最前面区块含有
MBR
或
GPT
分区表的提供
loader
的区块,那
么如果我的主机上面有两颗硬盘的话,
系统会去哪颗硬盘的最前面区块读取
boot loader
呢?这个就得要看
BIOS
的设定了。
基本上,我们常常½的『系统的
MBR
』其实指的是
第一个开机装置的
MBR
才对!
所以,改天如果
你要½开机管理程序安装到某颗硬盘的
MBR
时,
要特别注意当时系统的『第一个开机装置』是哪个,否则会安
装到错误的硬盘上面的
MBR
喔!重要重要!
.
Boot Loader
的功能
刚刚说到
Loader
的最主要功能是要认识操作系统的文件格式并据以加载核心到主存储器中去执行。
由于不同操作系统的文件格式不一致,因此每种操作系统都有自己的
boot loader
啦!用自己的
loader
才有办法载入核心文件嘛!那问题就来啦,你应该有听说过多重操作系统吧?也就是在一部主机上面
安装多种不同的操作系统。
既然你
(1)
必须要使用自己的
loader
才能够加载属于自己的操作系统核