• centos 开机启动流程、开机运行级别


    目录

    1、开机启动详细流程

    2、开机的运行级别

    开机启动流程图如下:

    1、开机启动详细流程

    第一步:开机启动(power on)会进行自检,post开机自检,主要检测主板上面的信息;而(打开计算机电源,计算机硬件会自动加载BIOS,读取BISO内相关硬件信息以硬件系统的自检,随后根据BIOS配置找到第一个有引导程序的设备),BISO主要是对磁盘上面的硬件进行检查。如果没有问题就启动bash,(如果有问题就会发出蜂鸣声)。

    第二步:/boot启动顺序检查,以第一启动顺序进行启动,这里系统的是以硬盘启动。

    启动顺序:第一是硬盘。

    第三步:看硬盘第一个扇区是否有MBR(硬盘上第0磁道第一个扇区被称为MBR,即主引导程序,大小是512字节,存放了预启动信息、分区表信息),系统找到BIOS所指定的硬盘的MBR后,采用MBR中的grub2引导程序去找到系统的驱动文件在哪里(存放/boot里)。(grub的功能:提供一个菜单,允许用户选择要启动的系统或不同的内核版本;把用户选定的内核转载到RAM中的特定空间中,解压、展开)。系统读取内存中的grub配置信息(一般为menu.lst或grub.conf),并依照此配置信息来加载指定内核,加载内核中的vmlinuz initramfs 文件。

    这个文件中会产生一个0号进程,0号进程会产生一个1号进程(7:systemd)和2号进程(应该不重要在这里)。

    • pid为0 表示所有进程的祖宗
    • pid为2表示为内核进程(服务内核)
    • pid为1的为用户创建的进程(为用户服务)

    第四步:加载这个内核文件中的systemed进程之后启动相应的运行级别。之后启动相应的运行服务

    第五步: 启动的驱动中的完全的多用户状态(有NFS),检测运行级别中的/etc/rc.local或者加载一下配置文件/etc/fstab,登录根据/etc/passwd和/etc/shadow检测用户名和密码是否正确,登录后进入控制台命令行模式。

    第六步:最后加载用户的环境变量(~/.bashrc、/etc/bashrc)和初始化文件(~/.bash_profile、/etc/profile),加载bash提示符

    runlevel:查看运行级别。

    重装系统:需要将引导顺序调整:将CD移到前面,想要通过哪种方式重装系统,就将那种方式放在最前面。

    2、开机的运行级别

    开机的运行级别(init +级别)

    运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动(关机)。

    运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录;单例模式。

    运行级别2:多用户模式(没有NFS)

    运行级别4:系统未使用,保留。

    运行级别5:X11控制台,登录后进入图形GUI模式。

    运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。

    systemd 7和 8 的1号进程,以前是init进程,centos6是init进程。

    systemd除了干以前init的活,还集成了其他功能 比如说开机自启服务的管理。

    查看当前的运行级别:less /etc/inittab

    1. [root@localhost etc]# less /etc/inittab
    2. # inittab is no longer used when using systemd.
    3. #
    4. # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
    5. #
    6. # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
    7. #
    8. # systemd uses 'targets' instead of runlevels. By default, there are two main targets:
    9. #
    10. # multi-user.target: analogous to runlevel 3
    11. # graphical.target: analogous to runlevel 5
    12. # To view current default target, run:
    13. # systemctl get-default
    14. #
    15. # To set a default target, run:
    16. # systemctl set-default TARGET.target

    查看运行级别:

    [root@localhost etc]# systemctl get-default

     rc.local存放想记录的。

    加载etc/fstab

  • 相关阅读:
    Qt+sqlite3使用事务提升插入效率
    Android 11 热点(softap)流程分析
    Spring Boot如何实现OAuth2授权?
    应用启动& 应用启动优化
    自己整理博哥爱运维0817-----k8s集成GitLib流水线
    【C语言刷题】Leetcode169——多数元素
    【毕业设计】 单片机自动写字机器人设计与实现 - 物联网 嵌入式 stm32
    二叉树的前、中、后、层序遍历算法实现
    Python爬虫:获取必应图片的下载链接
    Python操作Numpy模块库
  • 原文地址:https://blog.csdn.net/m0_52165864/article/details/126470544