1.Linux系统引导过程
Linux系统的引导过程可以总结为5步
- BIOS开机自检
- MBR引导
- GRUB菜单
- 加载内核
- init进程初始化
1)BIOS开机自检
服务器通电后,会直接进入 BIOS,BIOS 全称 Basic Input/Output System,中文可译为基本输入/输出系统,它就是固化在主板上一个 ROM(只读存储器)芯片上的程序,主要保存计算机的基本输入/输出信息、系统设置信息、开机自检程和系统自启动程序,用来为 计算机提供最底层和最直接的硬件设置与控制,当 MBR 被加载到 RAM 之后,BIOS 就会将控制权交给 MBR,进入系统引导的第二阶段
2)MBR引导
因为BIOS很小,功能有限,为了完成加载操作系统的功能,就产生了mbr; bios检测到一个硬盘后,将硬盘的0柱面、0磁头、1扇区的内容经过简单判断后, 至内存中的指定位置,然后跳转至这个位置,开始从这个位置运行
3)GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GUN项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数
4)加载内核
Linux 内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间, 负责资源分配与调度,GRUB 加载了内核之后,内核首先会再进行二次系统的自检,而不一定使用 BIOS 检测的硬件信息。这时内核终于开始替代 BIOS 接管 Linux 的启动过程了
5)init进程初始化
为了完成进一步的系统引导过程,Linux内核首先将系统中的“/sbin/init”程序加载到内 存中运行(运行中的程序称为进程),init 进程负责完成一系列的系统初始化过程,最后等待用户进行登录 总结:加载硬件驱动程序,内核把init进程加载到内存中运行
传统init依赖于串行执行Shell 脚本启动服务,导致效率低下,系统启动速度较慢 排队 systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度 大家一起
2.systemd进程
systemd 是所有进程的父进程。它负责将 Linux 主机带到一个用户可操作状态(可以执行功能任务)。systemd 的一些功能远较旧式 init 程序更丰富,可以管理运行中的 Linux 主机的许多方面,包括挂载文件系统,以及开启和管理 Linux 主机的系统服务等
单元类型 | 拓展名 | 说明 |
Service | .service | 描述一个系统服务 |
Socket | .socket | 描述一个进程间通信的套接字 |
Device | .device | 描述一个内核识别的设备文件 |
Mount | .mount | 描述一个文件系统的挂载点 |
Automount | .automount | 描述一个文件系统的自动挂载点 |
Swap | .swap | 描述一个内存交换设备或交换文件 |
Path | .path | 描述一个文件系统中文件或目录 |
Timer | .timer | 描述一个定时器(用于实现类似cron的调度任务) |
Snapshot | .snapshot | 用于保存一个systemd的状态 |
Scope | .scope | 使用systemd的总线接口以编程的方式创建外部进程 |
Slice | .slice | 描述基于Cgroup的一组通过层次组织的管理系统进程 |
Target | .target | 描述一组systemd的单元 |
3.target单元
4.启动类故障排除
4.1 MBR扇区故障
1.在新建的分区上复制硬盘MBR信息
2.模拟破坏MBR扇区信息
3.进入急救模式将复制的MBR信息重新写入sda
4.2 grub故障
1.新建bak目录,并把将sdd1挂载到bak目录中
2.模拟破坏文件
3.修复
把刚刚复制的grub文件再复制回sda中
修复成功
4.3 密码重置
在xshell中重新改一下密码就可以正常使用了