- Linux操作系统引导过程
- 系统初始化进程
- Systemd单元类型
- 运行级别所对应的 Systemd 目标
- 修复MBR扇区故障
- 1.实验
- 修复 GRUB 引导故障
- CentOS 7忘记root用户密码重置,修改
- 系统服务控制
- Linu系统的运行级别
- chkconfig工具
- chkconfig工具
引导过程总览:
详细版:
1.开机自检:
服务器主机开机后,将根据主板 BIOS 中的设置对 CPU (中央处理器),内存,显卡,键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交给本机硬盘
总结:检测出第一个能够引导系统的设备,比如硬盘或光驱,U盘
2.MBR引导:
当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中 MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区,或者直接根据 MBR 记录的引导信息调用启动菜单(如 GRUB),
总结:运行放在 MBR 扇区里的启动 GRUB 引导程序
3.GRUB菜单:
对于 Liunx 操作系统来说,GRUB(统一启动加载器)是使用最为广泛的多系统引导器程序,系统控制权传递给 GPUB 以后,将会显示启动菜单给用户选择,并根据所选项(或采用默认值)加载 Liunx内核文件,然后将系统控制权转交给内核,注意 CentOS 7 采用的是 GRUB2 启动引导器
总结:GRUB 引导程通过读取 GRUB 配置文件 /boot/grub2/grub.cfg 来获取内核和镜像文件系统的设置和路径位置
4.加载 Liunx 内核
Liunx 内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度,内核接过系统控制权以后,将完全掌握整个 Liunx 操作系统的运行过程,在 CentOS 系统中,默认的内核文件位于 /boot/vmlinuz-3.10.0-514.e17.x86_64
总结:把内核和镜像文件系统加载到内存中
5.init进程初始化
为了完成进一步的系统引导过程,Liunx 内核首先将系统中的 /sdin/init 程序加载到内存中运行(运行中的程序程称为进程),init 进程负责完成一系列的系统初始化过程,最后等待用户进行登陆 systemd
总结:加载硬件驱动程序,内核把 init 进程加载到内存中运行
区别:
传统Sysinit依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢
systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度
简化版:
1.开机自检:为了通电测试下硬件有无问题,是否就绪
2.MBR引导程序:加载系统启动程序列表
3.GRUB2菜单:可以按照用户的需求来启动自定的程序,包含了默认启动的程序
4.加载内核:内核,镜像加载到内存准备启动使用
5.init进程初始化:加载系统默认的进程程序,例如驱动,加载到内存中,准备提供给用户使用
简单逻辑:
1.通电测试硬件
2.知道加载什么系统程序 (会参照用户自定义----BIOS)
3.提交菜单(需要加载,启动的程序)准备给于内核
4.加载核心程序:内核和镜像放到内存
5.启动菜单中的程序放到内存
目的:呈现一个完整的操作系统给与用户使用(登录使用)
系统初始化进程init进程:
由 Linux 内核加载运行 /sbin/init 进程
init进程是系统中第一个进程
init进程的PID(进程标记)号永远为1
Systemd
Systemd是Linux 操作系统的一种init软件
CentOS 7 中采用全新的Systemd启动方式,取代了传统的SysVinit
CentOS 7 运行的第一个init 进程是 /lib/systemd/sysmd
总结:
Systemd单元类型 运行级别所对应的 Systemd 目标 修复MBR扇区故障故障原因:
病毒,木马等造成的破坏
不正确的分区操作,磁盘读写误操作
故障现象:
找不到引导程序,启动中断
无法加载操作系统,开机后黑屏
解决思路:
应提前作好备份
已安装光盘引导进入急救模式
从备份文件中恢复
1.实验1.先分盘,备份MBR扇区数据到其它磁盘(/dev/sdb1)
创建一个备份目录
格式化一下让系统识别
挂载目录,建议做一下永久挂载
永久挂载,mount -a 刷新下
备份
2.模拟破坏MBR引导扇区,把系统里的前512字节覆盖(破坏掉)
3.关机重启,引导到急救模式,从备份文件中恢复MBR扇区数据
选择 1)回车
在急救模式下创建目录,好把备份文件恢复
挂载带有备份文件分区恢复MBA扇区数据
执行 exit 命令退出临时Shell环境,系统将会自动重启
修复 GRUB 引导故障通过镜像恢复即可
1.引导界面进入急救模式,重建GRUB菜单配置文件
实验:
删除(破坏)GRUB菜单配置文件
rm -rf /boot/grub2/grub.cfg
关机 init 6
关机后输入 exit 返回到要引导到急救模式
进入急救模式,加载光盘镜像,切换到系统根环境
重新将GRUB引导程序安装到第一块硬盘(/dev/sda)的扇区
重新构建GRUB菜单的配置文件
退出chroot环境,并重启即可
CentOS 7忘记root用户密码重置,修改第一步先重启在这个界面按c
切换到镜像模式
重设root用户密码,退出镜像模式,重新启动即可
系统服务控制格式:
systemctl 控制类型 服务名称
控制类型
start:启动
stop:停止
restart:重新启动
reload:重新加载
status:查看服务状态
关闭后显示
disabled 防止开机自启
enable 开启开机自启(不关闭的话,是默认开启的)
加–now 表示开启开机自启动,并现在开启
watch -n 1 表示每一秒刷新,你要实时检测那个服务动态
Linu系统的运行级别查看运行级别
runlevel命令:只能查看切换运行级别与当前运行级别
systemctl工具:systemctl时能查看默认的运行级别
临时切换运行级别
init命令:init的命令参数是运行级别所对应的数字
systemctl工具:systemctl的命令参数是具体的target
两个方法:
chkconfig工具格式:
chkconfig --list 服务名称
chkconfig --add 服务名称
chkconfig --level 级别列表服务名on/off
链图片转存中…(img-s2udllJR-1653716720458)]
[外链图片转存中…(img-mgkRzwfH-1653716720458)]
[外链图片转存中…(img-KXp1GSCC-1653716720458)]
[外链图片转存中…(img-Cn5Nprgt-1653716720458)]
chkconfig工具格式:
chkconfig --list 服务名称
chkconfig --add 服务名称
chkconfig --level 级别列表服务名on/off



