您的位置:首页 > 运维架构 > Linux

Linux开机过程

2016-05-03 19:19 597 查看
参考:

Linux开机过程

Linux启动流程

计算机是如何启动的

引言

每个硬盘最多有一个MBR,这个MBR有512Bytes,以0x55开始,0xAA结束。MBR分为446Bytes与64Bytes,前446Bytes是一些开机的信息,后64Bytes是分区表信息,每个分区有16Bytes,所以最多有4个主分区。但是有一种扩展分区,Linux中最多有一个扩展分区,扩展分区中还可以有逻辑分区,逻辑分区理论上没有上限。

每个分区中可以装一个操作系统,每个操作系统启动时需要一个boot loader来启动它,这个boot loader会放在一个叫boot sector的地方。即每个分区开始处就会有一个boot sector,里面存放的是这个操作系统的引导程序,也就是分区引导程序。所以开机过程中MBR会找到这个boot secotr,然后启动boot loader。Linux中最常见的boot loader就是Grub。

但是如果我有多个操作系统怎么办呢?这时MBR中就会跳过寻找分区表中的激活分区,而是启动boot loader,比如Grub。然后让我们自己来选取启动哪个操作系统。

之后计算机的控制权就交给Grub来处理。

Boot loader

主要功能:

提供选单。如果你有多个操作系统,那么就是让你选择启用那个操作系统的Boot sector。

载入kernel。直接指向可以开机的程序段来开始操作系统。

转交给其他loader。



这个图中的MBR就是启动了Boot loader来让我们自己选择加载哪个操作系统的kernel档案。图中红色就是kernel档案。

开机过程

首先是充电,启动BIOS进行硬件自检,然后BIOS把控制权转交给下一个阶段的启动程序。

这个下一个阶段的启动程序存放在哪个设备中呢?即BIOS需要一个外部设备的排序,根据排序以及外部设备的内容来转交控制权。

BIOS找到一个优先级最高且可作为启动设备的设备之后,就把控制权交给这个设备的MBR,即下一个阶段的启动程序

在MBR中后64字节记录了整个设备的大致分区情况。根据MBR的信息找到boot loader,然后根据boot loader启动操作系统的kernel。

上述过程完成之后,控制权就转交给操作系统了。

grub

Grub是Linux的一个常用boot loader,可以根据grub来加载Linux内核。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: