Linux学习笔记6-启动流程

linux 启动流程

centos6

1.post 加电质检-->2.启动bios-->3.加载MBR-->4GRUB引导-->5.加载kernel-->6.设定启动级别-->7.加载rc.sysinit-->8.加载内核模块-->9.启动运行级别程序-->10.读取rc.local-->11.加载/bin/login

1.bios自检

2.读取bios记录的MBR扇区

3.加载MBR

4.加载GRUB引导

5.加载内核,初始化硬件

6.设定启动级别启动第一个守护进程init(init1-5)grub中默认指定init=/sbin/init程序,可以在grub.conf中kernel行自定义执行程序init=/bin/bash,此时可以绕过下面步骤直接进入bash界面。 内核源代码文件中显示996行左右,规定了init启动的顺序,/sbin/init->/etc/init->/bin/init->/bin/sh,/bin/bash没有写,应该是和/bin/sh一样吧

7.加载rc.sysinit(/etc/rc.d/rc.sysinit),设定PATH变量,设定网络配置,设定swap,设定/proc,配置selinux

8.加载内核模块(加载/etc/modules.conf和/etc/modules.d目录下的文件来加载系统内核模块,后期课修改)

9.启动运行级别目录内的程序(窜性的方式)。

10.读取开机自启动需要启动的命令或者服务。

11.加载用户登录界面

centos7

1.UEFI或bios自检,post质检

2.加载MBR

3.GRUP加载

4.加载内核和inintamfs模块

5.内核开始执行,使用systemd来代替以前centos6以前的init程序

(1)执行initrd.target

包括挂载/etc/fstab文件中的系统,此时挂载后,就可以切换到根目录了

(2)从initramfs根文件系统切换到磁盘根目录

(3)systemd执行默认target配置

centos7表面是有“运行级别”这个概念,实际上是为了兼容以前的系统,每个所谓的“运行级别”都有对应的软连接指向,默认的启动级别时/etc/systemd/system/default.target,根据它的指向可以找到系统要进入哪个模式 
模式:

    • 0 ==> runlevel0.target, poweroff.target
    • 1 ==> runlevel1.target, rescue.target
    • 2 ==> runlevel2.target, multi-user.target
    • 3 ==> runlevel3.target, multi-user.target
    • 4 ==> runlevel4.target, multi-user.target
    • 5 ==> runlevel5.target, graphical.target
    • 6 ==> runlevel6.target, reboot.target

(4)systemd执行sysinit.target

有没有很眼熟?是的,在CentOS6上是被叫做rc.sysint程序,初始化系统及basic.target准备操作系统

(5)systemd启动multi-user.target下的本机与服务器服务

(6)systemd执行multi-user.target下的/etc/rc.d/rc.local

6.Systemd执行multi-user.target下的getty.target及登录服务

getty.target我们也眼熟,它是启动终端的systemd对象。如果到此步骤,系统没有被指定启动图形桌面,到此就可以结束了,如果要启动图形界面,需要在此基础上启动桌面程序

7.systemd执行graphical需要的服务

猜你喜欢

转载自www.cnblogs.com/juanNote/p/9286585.html