文章目录
前言
系统引导是操作系统运行的开始,在用户能够正常登录到系统之前,Linux的引导过程完成了一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备
从CentOS7版本,系统启动和服务管理都交给systemd进行管理
一、Linux操作系统引导过程
1.引导过程总览
引导过程主要分如下几个方面
1、开机自检(BIOS)
自建基本的硬盘,找到第一块能够引导的设备
2、MBR引导
找到硬盘MBR引导分区,读取GRUB信息(grub.conf在哪里?)
3、GRUB菜单
读取grub.conf信息,里面包含内核信息、等待时间等
4、加载内核(kernel)
加载内核和镜像文件
5、init进程初始化
加载初始化进程1 PID1
2.系统初始化进程
init进程
- 有Linux内核加载运行 /sbin/init程序
- init进程是系统中第一个进程
- init进程的PID(进程标记)号永远为1
Systemd - Systemd是Linux操作系统的一种init软件
- CentOS7中采用全新的Systemd启动方式,取代传统的SysVinit
- CentOS7中运行的第一个init进程是/lib/systemd/systemd
Systemd单元类型
运行级别所对应的Systemd目标
二、排除启动类故障
1.修复MBR扇区故障
故障原因
- 病毒、木马等造成的破坏
- 不正确的分区操作、磁盘读写误操作
故障现象
- 找不到引导程序,启动中断
- 无法加载操作系统,开机后黑屏
解决思路
- 应提前作好备份文件
- 以安装光盘引导进入急救模式
- 从备份文件中恢复
2.修复GRUB引导故障
故障原因
- MBR中的GRUB引导程序遭到破坏
- grub.com文件丢失、引导配置有误
故障现象
- 系统引导定制,显示“grub>”提示符
解决思路
- 尝试手动输入引导命令
- 进入急救模式,重写或者从备份中恢复grub.conf
- 向MBR扇区中重建grub程序
3.遗忘root用户密码
故障原因
- 遗忘root用户的密码
故障现象
- 无法进行需要root权限的管理操作
- 若没有其他可用账号,将无法登录系统
解决思路
- 进入急救模式,重设密码
三、服务控制及切换运行级别
1、系统服务控制
systemctl 【控制类型】 【服务名称】
控制类型
- start:启动
- stop:停止
- restart:重新启动
- reload:重新加载
- status:查看服务状态
- disable:开机永不启动
- enable:开机启动
系统服务的启动和控制
- 查看系统服务的启动状态
systemctl is-enabled 【服务名称】
- 设置系统服务的启动状态
systemctl enable/disable【服务名称】
- ntsysv系统鼓舞管理工具
ntsysv --level 【级别列表】
2、Linux系统的运行级别
查看运行级别
- runlevel命令
- systenmctl工具
注:runlevel只能查看切换运行级别与当前运行级别;systemctl是能查看默认的运行级别
临时切换运行级别
- init命令
- systemctl工具
注:init的命令参数是运行级别所对应的数字;systemctl的命令参数是具体的target
设置永久运行级别
四、优化启动过程
1、ntsysv工具
- 提供一个交互式、可视化窗口
- 可以在字符终端运行
- 便于集中管理多个服务
2、systemctl工具
- 不提懂交互式、可视化窗口
- 管理单个服务效率更高