ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

centos7启动流程(从加电开始)

2019-03-08 15:52:16  阅读:320  来源: 互联网

标签:target grub 启动 流程 boot 扇区 centos7 加电 加载


                    图片来自于https://blog.csdn.net/qq_27754983/article/details/75212666

 

1. UEFI或BIOS启动

 服务器加电后,CPU 自动重置成初始状态,启动 BIOS boot program 开机程序。

2. POST自检

接着就会开始实行 POST,BIOS 或 UEFI 进行硬件检查的阶。

3. MBR引导

自检硬件没有问题时候,这里以 BIOS 为例,BIOS 将会直接去找硬盘的第一个扇区,找到前446字节,将 MBR 加载到内存中,MBR 将告诉程序下一阶段去哪里找系统 grub 引导。此阶段属于 grub 的第一阶段。grub 还有1.5阶段和2阶段。

4. grub引导

grub 第1.5和2阶段,信息默认存放在扇区中,如果使用 grub-install 生成的2阶段的文件是存放在 /boot 分区中的。
为了加载内核系统,不得不加载 /boot 分区,而加载 /boot 分区,需要有 /boot分 区的驱动,/boot 分区驱动是放在 /boot 分区中的,啊,我们好像进入了死循环了,Linux 是怎么解决的呢?就是靠放在1.5阶段中的数据,是放在第一个扇区后的后续扇区中,具体占用多少字节,不太清楚,只知道1.5阶段和2阶段总共27个扇区。

stage1.5:
mbr 之后的扇区,识别 stage2 所在的分区上的文件系统。

stage2:
开机启动的时候看到的 Grub 选项、信息,还有修改 GRUB 背景等功能都是 stage2 提供的,stage2 会去读入 /boot/grub/grub.conf 或者 menu.lst 等配置文件。

5. 读取grub.conf文件

读取 grub.conf 文件以确定内核启动的参数,准备启动内核。

6. 加载内核和initramfs模块

加载内核,核心开始解压缩,启动一些最核心的程序。 

➜  ~  ll -h /boot/vmlinuz-3.10.0-327.el7.x86_64
-rwxr-xr-x. 1 root root 5.0M Nov 20  2015 /boot/vmlinuz-3.10.0-327.el7.x86_64

加载 initramfs 文件,在启动早期提供一个用户态环境,借助它可以完成一些内核在启动阶段不易完成的工作,例如加载第三方 driver 等。

➜  ~ ll -sh /boot/initramfs-3.10.0-327.el7.x86_64.img
19M -rw-r--r--. 1 root root 19M Oct 28  2017 /boot/initramfs-3.10.0-327.el7.x86_64.img

7. 启动systemd进程

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

 

参考链接:

https://blog.csdn.net/qq_27754983/article/details/75212666

标签:target,grub,启动,流程,boot,扇区,centos7,加电,加载
来源: https://www.cnblogs.com/mauricewei/p/10496190.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有