开机启动流程

Posted Greenxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开机启动流程相关的知识,希望对你有一定的参考价值。


开机启动流程

Centos6

1.内核引导

  • Bios加电自检,检测主板上的硬件设备,然后根据BIOS设置启动系统(进系统之前的管理界面)
  • 开机启动流程_开机自启动
  • 读取/boot分区下,所有内核文件
  • 开机启动流程_运行级别_02

2.运行init 所有进程的父进程 pid为1,只有init运行起来,其他进程才能运行起来。 init类型

init: sysV:CentOS5之前使用的pid为1的进程 
Upstart:CentOS6使用的init进程
Systemd:CentOS7

## 加载init,涉及到Linux系统中7个运行级别
# 查看Linux系统当前的运行级别
[root@localhost ~]# runlevel
N(上一次没有) 3
[root@xtt boot]# init 5 切换运行级别
[root@xtt boot]# runlevel
3 5


0:关机运行级别
1:单用户运行级别
2:多用户运行级别,没有文件系统
3:多用户运行级别,有文件系统(命令行模式)(我们现在使用的)
4:CentOS6和7 保留,未使用
5:多用户,图形化运行级别
6:重启运行级别

# 运行init,首先会读取 /etc/inittab配置文件
# 读取配置文件中的默认运行级别
## 获取当前系统的运行级别
C6是
id:3:initdefault:
C7是
[root@xtt boot]# systemctl get-default
multi-user.target
切换运行级别
systemctl set-default TARGET.target
TARGET:
multi-user
graphical


启动init进程。

/etc/inittab配置文件 如下图

开机启动流程_开机自启动_03 3.系统初始化

## 根据运行级别中设置了开机自启动服务来启动对应服务 
C6 查看开机自启动服务来启动对应服务
[root@localhost ~]# chkconfig --list


C7 查看开机自启动服务来启动对应服务
方式一:#systemctl list-unit-files
方式二:# ll /etc/systemd/system/multi-user.target.wants/



运行级别为3时,开机默认启动的服务。如下图

开机启动流程_运行级别_04

Centos7

1.系统固件初始化

  • BIOS加电自检,检测主板上的硬件设备(显卡、内存、磁盘),根据BIOS设置查找启动介质(磁盘、U盘等),启动系统。
  • 读取/boot分区下,

2.MBR ( Master Boot Record 主引导记录)。 3.GRUB2 Bootloader(引导菜单)加载grub2菜单,选择要进入的系统 4.Kernel(内核引导) 读取/boot目录下所有内核文件 5.Systemd管理运行级别(不再使用init,改成了systemd)

runlevel0.target -> poweroff.target
runlevel1.target -> rescue.target
runlevel2.target -> multi-user.target
runlevel3.target -> multi-user.target
runlevel4.target -> multi-user.target
runlevel5.target -> graphical.target
runlevel6.target -> reboot.target
#2.3.4是同一个级别
根据不同的级别启动开机自启动服务

创建服务开机自启动命令

systemctl enabled nginx
取消服务开机自启动命令
systemctl disable nginx

6.Runlevel-Target 开机启动流程_开机自启动_05

Centos-7 单用户模式的用法

解决忘记root密码

1、关机 2、开机 3、进入gurb2菜单

1、在linux16行中 将ro改成rw (将/目录改成可读可写状态)
2、在linux16行末写入: seliux=disabled init=/bin/bash 如下图
#如果第一步忘记 则在进入系统后,在命令行输入
mount -o rw,remount /
3、按ctrl + x 退出编辑界面

开机启动流程_开机自启动_06 4、修改密码

echo 1 |passwd --stdin root

## 重新加载init
exec /sbin/init

开机启动流程_开机自启动_07

修改默认运行级别

1.关机 2.进入grub2菜单 3.按e编辑grub2菜单的内核参数

1、在linux16行中 将ro改成rw (将/目录改成可读可写状态)
2、在linux16行末写入: rd.break 如下图
3、修改后,按Ctrl + x

开机启动流程_运行级别_08

1.重新挂载root权限目录 mount -o rw,remount /sysroot 
2.获取root权限 chroot /sysroot
3.修改默认运行级别 systemctl set-default multi-user.target
4.退出 exit # 5.重启 reboot

开机启动流程_centos_09 这两种用法只可单独写,不可混合写。

以上是关于开机启动流程的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 6开机启动流程实验篇

CentOS 开机启动流程

Android的开机启动流程

CentOS开机启动流程简介

开机启动流程

(转)CentOS 7系统详细开机启动流程和关机流程