15.开机流程和系统模式
[toc]
开机启动流程
Centos6
1 | # 开机流程 |
Centos6开机流程
内核引导
1
2# 'BIOS'加电自检,检测主板上的硬件设备,根据'BIOS'设置启动系统
# 读取'/boot'分区下,所有内核文件运行
init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28# init运行流程
1 运行init,会读取 /etc/inittab配置文件
2 读取配置文件中的默认运行级别
3 获取当前系统的运行级别
4 启动init进程
# Linux可以在不同场景,分配不同的开机启动程序,叫做'运行级别'
## init程序类型:
SysV:CentOS 5前使用pid为1的进程 # 配置文件:/etc/inittab
Upstart:CentOS 6 # 配置文件:/etc/inittab, /etc/init/*.conf
Systemd:CentOS 7 # 配置文件:/usr/lib/systemd/system、 /etc/systemd/system
# 加载init,涉及到Linux系统中7个运行级别
运行级别0:关机运行
运行级别1:单用户运行(修改root密码),root权限,用于系统维护,禁止远程登陆
运行级别2:多用户运行,没有文件系统
运行级别3:多用户运行,有文件系统(命令行模式)
运行级别4:CentOS6和7 保留,未使用
运行级别5:多用户,图形化运行级别
运行级别6:重启运行(reboot)
# 命令
runlevel # 查看Linux系统当前的运行级别(前级别 现级别)
init 级别 # 临时切换运行级别
vim /etc/inittab # 永久切换运行级别
## id:3:initdefault(仅针对chentos6)
chkconfig --list # 查看开机自启服务
## 该输出结果只显示 SysV 服务系统初始化
1
# 根据运行级别中设置的开机自启动服务,运行rc脚本来启动对应服务
建立终端
1
# rc执行完毕后,返回init后,init会打开6个终端以便用户登录系统
用户登录系统
1
2
3
4# 登录方式有三种:
命令行登录
ssh登录
图形界面登录
Centos6关机
1 | ` 正确的关机流程为:sync > shutdown > reboot > halt |
Centos6 忘记root密码或调整了运行级别为’6’
1 | # 进入单用户级别: |
Centos7
Centos7开机流程
BIOS
(开机自检)
1 | # 'BIOS'加电自检,检测主板上的硬件设备,根据'BIOS'设置启动系统 |
MBR
(Master Boot Record
主引导记录)
1 | # 主引导记录放在'linux'引导硬盘的第一个扇区中,此信息通过'BIOS'预加载到'ROM'中 |
GRUB2 Bootloader
(引导菜单)
1 | # 加载'grub2'菜单,选择要进入的系统 |
Kernel
(内核引导)
1 | 读取'/boot'目录下所有内核文件 |
Systemd
(不再使用init
,改成了systemd
)
1 | runlevel0.target -> poweroff.target |
Runlevel-Target
(运行级别)
1 | 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 |
Centos7关机
1 | # 关机 |
Centos7单用户模式
修改root密码(忘记root密码时使用)
开机在引导界面输入’e’,进入内核编辑模式
进入编辑模式运行修改过的内核程序,并进入单用户模式
1
# 在Linux16行末,添加:'enforcing=0 init=/bin/bash',然后按下'Ctrl+X'组合键来运行修改过的内核程序
在单用户模式界面修改密码
1
2
3
4
5
6# 无法直接修改密码,因为当前'/'目录是只读状态
# 挂载'/'目录后再修改密码
mount -o rw,remount / # 重新挂载'/'目录
echo 111 | passwd --stdin root # 免交互修改密码
exec /sbin/init # 重新加载init
PS:不需要重新挂载的方式
1 | 将ro改成rw可以免挂载'/'目录 |
修改默认运行级别(默认运行级别无法进入系统时使用)
开机在引导界面输入’e’,进入内核编辑模式
进入编辑模式运行修改过的内核程序,并进入单用户模式
1
# 在Linux16行末,添加:'rd.break',然后按下'Ctrl+X'组合键来运行修改过的内核程序
在单用户模式界面设备运行级别
1
2
3
4
5
6
7
8# 挂载sysroot目录
mount -o rw,remount /sysroot/ # 重新挂载sysroot目录
chroot /sysroot/ # 获取root权限
systemctl get-default # 查看当前默认运行级别
systemctl set-default multi-user.target # 设置允许级别为multi-user(runlevel 3级别)
exit # 退出
reboot # 重启
Centos7救援模式
挂载Linux系统光盘镜像文件
设置启动时进入BIOS
进入BIOS设置从光盘启动
1
2
3
4
5# 设置从光盘启动
1.通过键盘'←''→'键进入boot界面
2.通过'+''-'移动启动项顺序,最上面的为第一启动项
3.设置完成后按'F10'保存并退出,按回车键确认进入故障排除界面
进入救援模式
选择’1’
1
2
3# 选择'继续'
输入要进入的选项编号'1'
按回车键进入修复扇区救援
1
2
3
4
5bash-4.2# chroot /mnt/sysimage # 获取root权限
bash-4.2# grub2-install /dev/sda # 修复
bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg # 重置grub.cfg配置文件
exit # 退出root环境
reboot # 重启再进入BIOS把启动项还原
c7 systemctl(服务运行管理命令)
1 | # systemctl(服务运行管理命令) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 奥利奥の麦旋风!