MBR的Linux分区机制启动过程,linux系统启动流程(MBR)

总:POST---> Boot Squence ---> Bootloader ---> kernel ---> init

---> 完成启动

系统:CentOS6

1、按下电源,cpu找到CMOS中的BIOS并运行起来,这个小程序会完成硬件自检。

BIOS:Basic Input and Output System

2、bios会根据设置的boot squence来找设备上的MBR,找到以后控制权移交给MBR中的bootloader(1 stage).

MBR存在磁盘上的0号扇区。

有3部分组成:

446:bootloader

64: 分区表 16个字节表示一个分区

2: 55AA

3、bootloader加载MBR之后的一部分扇区中的基本文件系统驱动(1.5 stage),如之后的27个扇区。然后再加载引导分区中的第2阶段。linux上面的bootloader程序是GRUB.

GRUB有3个阶段组成。

bootloader:1st stage

Partition:filesystem driver, 1.5 stage

Partition:/boot/grub, 2nd

stage

因为1.5阶段的文件系统驱动只能驱动基本文件系统,所以第2阶段所在的分区不能使用lvm或软raid之类的上层文件系统。

4、加载第2阶段以后,会提供一个选择启动系统的窗口。内容就是/boot/grub/grub.conf文件中的各条目。

如果所选条目就是本机的linux系统的话:

在点击进入系统之后。GRUB会加载grub.conf文件中指定的内核和要传递给内核的参数。参数中有真实根的地址。有时候还要加载与内核同版本的initrd。 initrd是一个模拟根的文件,由GRUB把它与内核一起加载到内存。此文件展开以后就是一个虚拟的根。内核工作于此根中并开始以只读方挂载真实的根。所需驱动和程序在此根中加载。挂载完成以后开始把一些必要文件,如设备文件复制到真实的根。然后执行根切换。如果没有initrd文件,内核会直接挂载真实的根,如果内核里面没有根分区的驱动,则系统启动失败。

12d63fef3ed9792cfb376231a495fe9a.png

而如果所选条目是指向其它分区的另一个系统,则GRUB的控制权移交给那个分区首部的引导程序来管理(各个分区首部保留有引导空间(linux上面好像是1024Byte),也正是这样才有了双系统或多系统)。

kernel:自身初始化:

探测可识别到的所有硬件设备;

加载硬件驱动程序;(有可能会借助于ramdisk加载驱动)

以只读方式挂载根文件系统;

运行用户空间的第一个应用程序:/sbin/init

initrd文件有两种:ramdisk

ramfs

Linux内核的特性之一:使用缓冲和缓存来加速对磁盘上的文件访问;

在使用ramdisk的时候,在内存中模拟成磁盘,但因为磁盘都要有缓冲(buffer)和缓存(cache),这样的结果就是还要在内存中使用缓冲和缓存。多此一举,所以就有了ramfs。

在使用ramfs的时候,直接在内存中模拟成文件系统,不需要在内存中使用缓冲和缓存。

可以生成initrd的工具。可以手动用以下工具生成。

CentOS 5: initrd(ramdisk)

工具程序:mkinitrd

CentOS 6,7:

initramfs(ramfs)

工具程序:dracut, mkinitrd(脚本)

5、根切换完成以后,内核开始执行第一个用户空间应用程序(如果之前的切换根不算的话)/sbin/init。之后内核退居幕后,前面由init程序来负责。init负责启动初始化已定义的各种服务程序和环境。

init就是用户空间的所有程序的祖先。

init是完成系统用户空间初始化的项目总称,它在不同的系统版本上有不同的实现:

init程序的类型:

CentOS 5-:SysV init

配置文件:/etc/inittab

CentOS 6:Upstart

配置文件:/etc/inittab

/etc/init/*.conf

CentOS 7:Systemd

配置文件:/usr/lib/systemd/system/,

/etc/systemd/system/

443357b86b99bec766606cb7f0501bb6.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值