linux启动时的细节

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SchopenhauerZhang/article/details/79594169

linux启动时的细节

本文章是为了在linux系统启动过程中(从打开到登陆输入密码)的诸多细节做一个总结。

第一步 grub 图形引导

选择要启动的内核

第二步 启动kernel内核文件
位置是:/boot/vmlinuz._* 系列文件

第三步 启动init程序
首先 读取init镜像文件(/boot/initrd_*.img);
然后 读取配置文件 (/boot/inittab._*.d),配置文件中记录了后续启动过程的顺序和需要运行的脚本;

到此为止都是在准备内存空间为下面要运行的进程做准备,换句话说从下一步开始就有进程启动去运行脚本。
——notice

第四步 运行脚本
首先 运行/etc/rc.d/sysinit.d 脚本

设置时钟、分区、主机名、键盘等,分区表的挂载/etc/fstab
(完成硬件和目录文件之间的映射)

然后运行/etc/rc.d/rc脚本

这里根据启动级别去选择要启动的rc脚本。比如3级别(常见的),就启动rc3.d。在这个目录(/etc/rc.d/)下 有rc0.d 、 rc1.d、rc2.d、rc3.d、rc4.d、rc5.d、rc6.d分别对应0~6个启动级别。
0代表关机,1代表单用户模式,3代表字符系统,5代表图形系统
在这些rc0~6文件中保存着S或者K开头的标记文件。S开头的标记文件表示运行这个rc脚本会运行这个程序(脚本),而K开头的标记文件则表示运行这个rc脚本时要关闭这个程序(脚本)。但是比如开机时刚启动由于没有程序(脚本)运行,所以不会关闭K开头的程序。——notice

也就是说此时运行rc3.d脚本,并且还会运行脚本中S标记的程序(脚本),而不会管K标记的程序(脚本)。

这些被标记的程序的源文件在init.d中。 ——notice

可以使用以下命令切换运行级别试一试,注意查看启动过程中启动的文件和流程。

// 将运行级别变为6,一般6模式中很多脚本都被3模式关闭,而3模式中的
//很多脚本都被6关闭了
//rc6.d中最后2条:
//S00KILLALL 程序关闭所有程序
 //S01reboot 重启
 # init  6 
// 在重新启动过程中会有一条运行记录: runlevel 6

第五步 运行开机启动的程序
运行脚本/etc/rc.d/rc.local
这一步类似windows中的开启启动项。将那些需要开机就启动的程序启动起來。

// 如果需要添加一个开机启动程序,可以在rc.local中添加如下命令
service  程序名  start

第六步 运行登陆程序
进入登录界面。

猜你喜欢

转载自blog.csdn.net/SchopenhauerZhang/article/details/79594169