; centos启动流程 | Linux运维部落

centos启动流程

加电自检
检测硬件是否存在并且能够正常运行,如cpu、内存、硬盘是否存在并能正常运行,以及外围得输入输出设备是否存在,如键盘、鼠标、显示器。
bios启动次序,按照次序查找个引导设备,启动第一个具有引导程序的设备,即为本次启动需要加载的设备。
加载boot loader
bootloader安装在mbr中,linux的bootloader程序为grub和lilo,现在grub比较常用。mbr是第一块硬盘的第一个扇区。mbr的大小是512bytes,前446bytes为系统引导程序,从447bytes到510bytes为磁盘分区表,后两个字节为结尾标记(55AA表示为mbr是有效的,非55AA则此mbr无效)。由于mbr太小,允许bootloader程序大小最大446个字节,要求gurb程序最大为446个字节,却又要实现这么多功能几乎不可能实现,所以把grub设计为两个阶段:第一阶段加载安装在mbr中的gurb;1.5阶段让第一节段的bootloader能够识别第二阶段的所在分区的文件系统。第二阶段加载根所在分区/boot/grub/。
显示系统版本菜单加载用户选定系统内核ramdisk
内核程序一般放在/boot下,以vmlinuz开头的文件,当加载完kernel后,会初始化kernel,kernel初始完后会加载根文件系统,但是kernel可能没有自带根文件系统所在的设备驱动,这时候会加载虚拟文件系统(initrd ramdisk)。当加载完kernel和initrd后会加载根文件系统rootfs,加载根文件系统结束后根切换switchroot,为什么会有switchroot这步呢,因为加载initrd后虚拟文件系统里面有一个临时的根,所有需要切换,加载根文件系统是以只读方式挂载。运行用户空间的第一个程序sbin/init,运行/etc/inittab,/etc/init/*.conf设定的文件。包括准备软件运行环境,系统主机名称、网络配置、文件系统格式等其它服务管理,而这些操作都是init配置文件定义。
设定默认运行级别
init的配置文件中有一个非常重要的配置项,就是默认的系统启动级别,启动级别就是为了系统维护的目的而制定的。分为7个级别:
0:关闭所有服务器:关机
1:维护模式,单用户模式,sigle模式;此级别可允许root用户直接登录而无需认证;
2:维护模式,多用户模式,需要用户认证,会启动网络功能,但不支持使用NFS;
3:正常级别,完全多用户模式,文本界面;
4:预留级别;
5:正常级别,完全多用户模式,图形界面;
6:关闭所有服务;重启
运行系统初始化脚本
/etc/inittab这个文件定义了系统的启动级别,如 id:5:initdefault 即默认启动图形窗口,意味这启动或关闭/etc/rc.d/rc5.d/目录下的服务脚本所控制的服务。K开头的脚本要关闭,S开头的脚本要启动。K##数值越小越优先关闭,依赖的服务先被关闭,后关闭被依赖的服务。S##数值越小的,越优先启动,被依赖的服务优先启动,依赖的服务器最后启动。
启动终端

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:/88396

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1660809109@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达注册  万达招商QQ  万达主管  guoqibee.com  万达娱乐主管  测试  万达娱乐主管  万达招商QQ  万达娱乐主管