运维
Tcpdump抓包工具
tshark抓包工具
Ansible
Ansible配置
Ansible-远程命令模块( command / script / shell )
Ansible-常用模块
PlayBook
PlayBook-变量
PlayBook-条件/循环
PlayBook-Tags
PlayBook-常用脚本
Ansible-Vault(数据安全)
Ansible-API
Ansible实践
JMeter测试软件
JMeter性能指标
Curl
综合分析工具
磁盘/IO工具
网络分析工具
JAVA分析工具
更换硬盘
Linux启动流程
安装问题
GURB加密
修改默认启动项
Root密码忘记
重装内核、GRUB
Too many open files错误
误删文件,内存恢复
Read-only file system错误
本文档使用MrDoc发布
返回首页
-
+
Linux启动流程
2023年6月4日 13:52
admin
#启动过程 ![](/media//202104/2021-04-16105224628126.png) --- ##一、开机自检(BIOS) #####当我们打开计算机电源的时候,随后会听到滴的一声,自检开始,这个过程中主要是检测我们的计算机硬件设备比如:CPU,内存,主板,显卡,CMOS等设备是否有故障存在 --- ##二、读取MBR #####BIOS自检,首先会在一个Boot Sequence程序中搜索可以让系统启动的引导设备(比如我们有时在BIOS中设置为从硬盘启动,或者从CD-ROM启动等等) #####这时如果BIOS找不到可以引导的设备及相关程序后,便会启动失败,如果顺序的找到了相关设备硬盘,那么BIOS将把控制权交给启动设备中的MBR(Master Boot Record)主引导记录 #####MBR在大小为512字节,存放预启动信息、分区表等信息, --- ##三、GRUB引导菜单 /boot/grub2/grub.cfg #####系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。 --- ##四、加载kernel内核 #####根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。 #####系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。 --- ##五、init进程依据inittab文件夹来设定运行级别 #####内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。 #级别: 0:-halt 关机 1:-single user mode 单用户模式 2:-Multi-user,without NFS无网络支持的多用户模式,类似于下面的run level3 3:-Full multi-user mode 有网络支持的多用户模式 4:-unused 保留,未使用 5:-X11 有网络支持有X-Window支持的多用户模式 6:- reboot 重新引导系统,即重启 --- ##六、init进程 ####1.init进程执行rc.sysinit >#####在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。如果你有兴趣,可以到/etc/rc.d中查看一下rc.sysinit文件,里面的脚本够你看几天的 ####2.启动内核模块 >具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。 ####3.执行不同运行级别的脚本程序 >根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务 ####4.执行/etc/rc.d/rc.local >rc.local就是在一切初始化工作后,Linux留给用户进行个性化的地方。你可以把你想设置和启动的东西放到这里。 --- ##七、login程序 #####执行/bin/login程序,启动mingetty,进入登录状态 ![](/media//202104/2021-04-16112103016045.png)
分享到: