少年辛苦终身事,莫向光阴惰寸功。这篇文章主要讲述CentOS 开机启动流程相关的知识,希望能为你提供帮助。
[TOC]
开机启动流程
CentOS6 启动流程
开机流程分为5个阶段
内核引导
- Bios自检,检测主板上的硬件设备,根据BIOS设置启动系统
- 读取/boot分区下,所有内核
运行init
inint程序类型:
1.sysv:CentOS5之前使用的pid为1的进程
2.Upstart:CentOS6使用的init进程
3.Systemd:CentOS7## 加载init,涉及到Linux系统中7个运行级别
0:关机运行级别
1:单用户运行级别
2:多用户运行级别,没有文件系统
3:多用户运行级别,有文件系统(命令行模式)
4:CentOS6和7,系统未使用,保留
5:多用户,图形化运行级别
6:重启运行级别# 查看Linux系统当前的运行级别
[root@localhost ~]# runlevel
N 3
# N代表在进入这个级别前,上一个级别是什么;
3代表当前级别# 运行init,会读取 /etc/inittab配置文件
# 读取配置文件中的默认运行级别
CentOS6
id:3:initdefault:CentOS7
multi-user.target# 启动init进程
系统初始化
## 根据运行级别中设置了开机启动服务来启动对应服务
CentOS6
[root@localhost ~]# chkconfig --listCentOS7
systemctl list-unit-files
[root@localhost ~]# ll /etc/systemd/system/multi-user.target.wants/
建立终端
rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动。
init接下来会打开6个终端,以便用户登录系统。在inittab中的以下6行就是定义了6个终端1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
用户登录系统
## 用户登录分为三种
1.命令行登录
2.ssh登录
3.图形化界面登录
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 开机启动流程
文章图片
CentOS6 开机启动流程
文章图片
CentOS7进入单用户模式-忘记root密码 1.关机
halt
poweroff
shutdown -h now
init 0
2.开机
文章图片
3.进入gurb2菜单
文章图片
文章图片
文章图片
文章图片
CentOS7进入单用户模式-修改默认运行级别1.关机
2.进入grub2菜单
3.按e编辑grub2菜单的内核参数
文章图片
文章图片
救援模式
需要有系统盘,才可以进入救援模式
要进入安装系统的界面,才能进入救援模式# 1.关机
# 2.将系统放入光驱中
文章图片
# 3.进入BIOS
开机后,一直按F2,即可进入救援模式
文章图片
文章图片
文章图片
【CentOS 开机启动流程】
文章图片
文章图片
文章图片
文章图片
文章图片
案例1—当系统损坏,无法登录系统,但是需要把里面的数据拷贝出来,怎么办?
# 1.根据上述步骤进入救援模式并获取root的环境
# 2.输入命令
bash-4.2# mkfs.xfs -f /dev/sdc
bash-4.2# mkdir /data
bash-4.2# mount /dev/sdc /data
bash-4.2# cp -a /raid0 /data
bash-4.2# umount /dev/sdb
案例2—损坏系统扇区(前512字节)
## 破坏硬盘的钱446字节,模拟MBR引导损坏,会发现重启无法启动系统
[root@localhost ~]# dd <
/dev/zero >
/dev/sda bs=1 count=446
446+0 records in
446+0 records out
446 bytes (446 B) copied, 0.00026418 s, 1.7 MB/s
文章图片
## 扇区损坏需要进入救援模式修复扇区
## 根据上述步骤进入到救援模式
文章图片
案例3—修复grub菜单(CentOS7 误删除grub文件,进行修复)
## 模拟故障
[root@localhost ~]# rm -fr /boot/grub2/
[root@localhost ~]# reboot
文章图片
## 需要进入救援模式进行修复
文章图片
# 1.获取root环境
chroot /mnt/sysimage
# 2.修复 /dev/sda 第一块盘
grub2-install /dev/sda
# 3.重置grub.cfg配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
# 4.查看 /boot/grub2是否修复
ls /boot/grub2
# 5.退出root环境
exit
# 6.重启
reboot
systemd管理服务
文章图片
systemd的优势
1.最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15...)
2.CentOS7 支持开机并行启动服务,显著提高开机启动效率
3.CentOS7关机只关闭正在运行的服务,而CentOS6,全部都关闭一次。
4.CentOS7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本。
5.CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。
systemd相关配置文件
## 系统中所有服务启动的脚本存放路径
# CentOS 6
/etc/init.d/# CentOS 7
/usr/lib/systemd/system/##系统运行级别相关目录
# CentOS 6
/etc/rc*.d# CentOS 7
/etc/systemd/system## 默认运行级别需要开机自启的服务存放目录
# CentOS 6
/etc/rc3.d/# CentOS 7
/etc/systemd/system/multi-user.target.wants/
systemd管理服务的命令
System V init(6系统) | systemctl(7系统) | 作用 |
---|---|---|
service 服务名 start | systemctl start 服务名 | 启动服务 |
service 服务名 stop | systemctl stop 服务名 | 停止服务 |
service 服务名 restart | systemctl restart 服务名 | 重启服务 |
service 服务名 reload | systemctl reload 服务名 | 重新加载配置(不终止服务) |
service 服务名 status | systemctl status 服务名 | 检查服务的启动状态 |
systemctl is-active 服务名 | 查看服务是否在运行中 | |
systemctl mask 服务名 | 禁止服务运行 | |
systemctl unmask 服务名 | 取消禁止服务运行 |
System V init(6系统) | systemctl(7系统) | 作用 |
---|---|---|
chkconfig | systemctl list-unit-files | 查看开机自启的服务 |
chkconfig 服务名 on | systemctl enable 服务名 | 设置开机自启动 |
chkconfig 服务名 off | systemctl disable 服务名 | 关闭开机自启 |
chkconfig --list 服务名 | systemctl is-enabled 服务名 | 查看指定服务是否开机自启 |
systemctl daemon-reload | 如果启动脚本被修改,重新加载启动脚本 |
推荐阅读
- vue2版本中slot的基本使用详解
- Go语言入门很简单(如何在 Go 语言中使用 MySQL)
- C语言_数组的查找替换排序拼接
- K8S-ConfigMap与Secret
- Linux系统基础入门知识文件管理
- ModStartCMS 模块化建站系统 v3.9.0
- 网络基础命令与基础拓扑搭建
- Python推导式
- JavaSE-03scanner用户交互