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运维部落立场,如若转载,请注明出处:http://www.178linux.com/88396

(1)
469008940469008940
上一篇 2017-11-14 14:16
下一篇 2017-11-14 15:17

相关推荐

  • sed命令初识

           sed是一种流编辑器,它是文本处理中非常常用的工具,能够配合正则表达式使用。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自…

    Linux干货 2017-12-03
  • grep、正则表达式

    grep、正则表达式 grep:文本过滤(模式:pattern)工具 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行。 模式:由正则表达式字符及文本字符所编写的过滤条件。 正则表达式:由一类特殊字符及文本所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能。 正则表达式分为两类:基本正则表达式、扩展正则表…

    Linux干货 2017-04-06
  • 新的学期,新的开始:新的起点,新的终点!

    马哥教育Linux面授30期,

    2018-03-26
  • Liunx获取信息帮助与man文档章节的划分

    首先要判断命令的类型,可用 type COMMAND 来判断命令 如果显示结果为(….是 shell内嵌)即为shell内嵌命令,如需获取帮助,使用 help COMMAND 即可; 下图的例子是pwd是shell内嵌命令 内部命令属于Shell的一部分,所以并没有单独对应的系统文件,只要Shell解释器被运行,内部指…

    2017-07-02
  • 第三周作业

      1. 列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -d' ' -f1 | sort -u root 2. 取出最后登录到当前系统的用户的相关信息。 [root@localhost ~]# who | tail -1 roo…

    Linux干货 2016-12-26
  • 第10周作业(下)

    4、写一个脚本(1) 能接受四个参数:start, stop, restart, statusstart: 输出“starting 脚本名 finished.”(2) 其它任意参数,均报错退出。 #!/bin/bash # [ $# -ne 1 ] && echo &quo…

    Linux干货 2017-01-03

评论列表(1条)

  • 马哥教育
    马哥教育 2017-12-02 09:23

    赞,继续加油。