19.1.1
开机流程一览
既然开机是很严肃的一件事,那我们就来了½一下整个开机的过程吧!好让大家比½容易发现开机过
程里面可能会发生问题的地方,以及出现问题后的½决之道!
不过,由于开机的过程中,那个开机
管理程序
(Boot Loader)
使用的软件可能不一样,例如目前各大
Linux distributions
的主流为
grub2
但早期
Linux
预设是使用
grub1
LILO
,台湾地区则很多朋友喜欢使用
spfdisk
但无论如何,
我们总是得要了½整个
boot loader
的工作情况,才能了½为何½行多重引导的设定时,
老是听人家
½要先安装
Windows
再安装
Linux
的原因~
假设以个人计算机架设的
Linux
主机为例
(
先回到
第零章计算器概论
看看相关的硬件常识喔
)
当你
按下电源按键后计算机硬件会主动的读取
BIOS
UEFI BIOS
来加载硬件信息及½行硬件系统的
自我测试,
之后系统会主动的去读取第一个可开机的装置
(
BIOS
设定的
)
,此时就可以读入开
机管理程序了。
开机管理程序可以指定使用哪个核心文件来开机,并实际加载核心到内存当中½压缩与执行,
此时
核心就能够开始在内存内活动,并侦测所有硬件信息与加载适当的驱动程序来使整部主机开始运作,
等到
核心侦测硬件与加载驱动程序完毕后,一个最阳春的操作系统就开始在你的
PC
上面跑了
主机系统开始运作后,此时
Linux
才会呼½外部程序开始准备软件执行的环境,并且实际的加载所
有系统运作所需要的软件程序哩!
最后系统就会开始等待你的登入与操作啦!简单来说,系统开机
的经过可以汇整成底下的流程的:
1.
加载
BIOS
的硬件信息与½行自我测试,并依据设定取得第一个可开机的装置;
2.
读取并执行第一个开机装置内
MBR
boot Loader (
亦即是
grub2, spfdisk
等程序
)
3.
依据
boot loader
的设定加载
Kernel
Kernel
会开始侦测硬件与加载驱动程序;
4.
在硬件驱动成功后,
Kernel
会主动呼½
systemd
程序,并以
default.target
流程开机;
o
systemd
执行
sysinit.target
初始化系统及
basic.target
准备操作系统;
o
systemd
启动
multi-user.target
下的本机与服务器服务;
o
systemd
执行
multi-user.target
下的
/etc/rc.d/rc.local
文件;
o
systemd
执行
multi-user.target
下的
getty.target
及登入服务;
o
systemd
执行
graphical
需要的服务
大概的流程就是上面写的那个样子啦,你会发现
systemd
这个家伙占的比重非常重!
所以我们才会
第十六章的
pstree
指令中谈到这家伙。
那每一个程序的内容主要是在干嘛呢?底下就分别来谈一
谈吧!
19.1.2 BIOS, boot loader
kernel
载入
我们在
第二章
曾经谈过简单的开机流程与
MBR
的功能,以及大容量磁盘需要使用的
GPT
分区表
格式等。
详细的资料请再次回到第二章好好的阅读一下,我们这里为了½½方便起见,½后续会用
到的专有名词先做个综合½释:
.
BIOS
:不论传统
BIOS
还是
UEFI BIOS
都会被简称为
BIOS