CentOS系统启动流程



POST(加电自检):检测硬件
在CPU的控制下,将RAM芯片中的某个程序映射到ROM地址空间,并执行其中的指令完成系统硬件健康状况检查,例如存储设备、网卡、CPU、声卡等硬件设备是否完好。当检查完成后,所有硬件或基本硬件、核心硬件没有问题,则下一个启动流程BIOS

BIOS(Boot Sequence):决定启动介质
按照BIOS所设定的系统启动流程,根据引导次序(Boot Sequence)自上而下的寻找对应存储设备上操作系统的MBR(全称为Master Boot Record即硬盘的主引导记录),如果MBR存在,则会读取MBR中的bootloader

MBR(bootloader):寻找 grub,读取配置文件/etc/grub.conf,决定默认启动项
根据MBR所指引的活动分区上寻找系统分区中的 bootloader,bootloader称为是一段程序,占据446字节。在bootloader当中配置了所要引导操作系统的内核所在的位置,因此BIOS被载入内存以后,当它实现将控制权限转交给bootloader以后,bootloader接收整个系统的控制权限,而后根据用户的选择去读取相应操作系统中的内核,并将内核装载入内存的某个空间位置,解压缩,这时kernel就可以在内存中活动,并根据kernel本身功能在内存当中探索硬件并加载硬件驱动程序并完成内核初始化,bootloader会将控制权限转交给内核。

Kernel(初始化):内核会主动调用init进程,读取配置文件 /etc/inittab,决定启动级别,运行初始化脚本/etc/rc.d/rc.sysinit

探测硬件->加载驱动(initrd)->挂载根文件系统->rootfs(/sbin/init)

initrd就是一个虚拟的文件系统,里面有/、lib、bin、sbin、usr、proc、sys、var、dev、boot等一些目录,我们称之为虚拟的根文件系统,作用就是将kernel和真的根文件系统建立关联关系,让kernel去initrd中加载根文件系统所需要的驱动程序,并以读写的方式挂载根文件系统,并让执行用户当中第一个进程init。

/etc/inittab

/sbin/init启动会用到/etc/inittab所定义的条目,如:默认登陆级别id:3:initdefault:,

/etc/inittabt运行级别:

0halt
1single user mode(单用户维护模式)
2multi user mode, without NFS(不支持NFS功能)
3multi user mode, text mode(字符界面)
4reserved (系统保留)
5multi user mode, graphic mode (图形化界面)
6reboot (重启)

系统初始化(/etc/rc.d/rc.sysinit)
检测,并以读写方式挂载根文件系统
设定主机名
检测并挂载/etc/fstab中其它文件系统
启动swap分区
初始化外围硬件设备驱动
根据/etc/sysctl.conf设定内核参数
激活udev和selinux
激活LVM和RAID设备
清理过期锁文件和PID文件
装载键映射-->键盘上每个键的功能


/etc/grub.conf文件说明

164002155.png

102313194.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值