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.开机
3.进入furb2菜单
按e键进入编辑
修改内核参数enforcing=0 init=/bin/bash
selinux
vim /etc/sysconfig/selinux
selinux=enforcing ==> selinux=disabled
在linux16行末,写入:
enforcing=0 init=/bin/bash
写完之后按Ctrl + x启动
4.修改密码
无法直接修改密码,因为当前/目录是只读状态
## 重新挂载/
mount -o rw,remount /
## 修改密码
1.passwd root
非交互
2.echo 111 |passwd --stdin root
## 重新加载init
exec /sbin/init
不需要重新挂载/的方法
将Linux16行中的ro 改成rw
CentOS7进入单用户模式-修改默认运行级别
1.关机
2.进入grub2菜单
3.按e编辑grub2菜单的内核参数
修改后,按Ctrl + x
Linux16行中 ro改成rw
行末写:rd.break
# 1.重新挂载root权限目录
mount -o rw,remount /sysroot
# 2.获取root权限
chroot /sysroot
# 3.修改默认运行级别
systemctl set-default multi-user.target
# 4.退出
exit
# 5.重启
reboot