centOS6启动流程

1.内核引导

  • BIOS加电自检,检测主板上的硬件设备,根据BIOS设置启动系统
  • 读取/boot分区下,所有内核文件

2.运行init

init:
sysV:CentOS5之前使用的pid为1的进程
Upstart:CentOS6使用的init进程
Systemd:CentOS7
## 加载init,涉及到Linux系统中7个运行级别
# 查看Linux系统当前的运行级别
[root@localhost ~]# runlevel
N 3
0:关机运行级别
1:单用户运行级别
2:多用户运行级别,没有文件系统
3:多用户运行级别,有文件系统(命令行模式)
4:CentOS6和7 保留,未使用
5:多用户,图形化运行级别
6:重启运行级别
# 运行init,会读取 /etc/inittab配置文件
# 读取配置文件中的默认运行级别
## 获取当前系统的运行级别
C6
id:3:initdefault:
C7
multi-user.target
启动init进程

3.系统初始化

# 根据运行级别中设置了开机自启动服务来启动对应服务
C6
[root@localhost <sub>]# chkconfig --list
C7
systemctl list-unit-files
[root@localhost </sub>]# ll /etc/systemd/system/multi-user.target.wants/

4.建立终端
5.用户登录系统

CentOS7开机流程

1.BIOS(开机自检)

  • BIOS加电自检,检测主板上的硬件设备,根据BIOS设置启动系统
  • 读取/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

6.Runlevel-Target (运行级别)

开机启动流程_运行级别

CentOS7进入单用户模式-忘记root密码

1.关机

# 关机方式
halt
poweroff
shutdown -h now
init 0

2.开机

开机启动流程_运行级别_02
3.进入furb2菜单
按e键进入编辑

开机启动流程_运行级别_03
修改内核参数enforcing=0 init=/bin/bash
开机启动流程_centos_04

selinux
vim /etc/sysconfig/selinux
selinux=enforcing ==> selinux=disabled

在linux16行末,写入:
enforcing=0 init=/bin/bash

写完之后按Ctrl + x启动

4.修改密码

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

无法直接修改密码,因为当前/目录是只读状态
## 重新挂载/
mount -o rw,remount /
## 修改密码
1.passwd root
非交互
2.echo 111 |passwd --stdin root
## 重新加载init
exec /sbin/init

不需要重新挂载/的方法

将Linux16行中的ro 改成rw

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

CentOS7进入单用户模式-修改默认运行级别

1.关机
2.进入grub2菜单
3.按e编辑grub2菜单的内核参数开机启动流程_centos_07
修改后,按Ctrl + x

Linux16行中 ro改成rw
行末写:rd.break

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

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