‘Linux‘引导过程和服务控制

一.引导过程总览

Linux操作系统的引导过程

在这里插入图片描述
Linux操作系统的引导过程(面试题):

  • (1)开机自检:
    检查硬件设备,检测出第一个能够引导系统的设备,比如硬盘或者光驱

  • (2)MBR 引导:
    运行放在MBR扇区里的启动GRUB引导程序

  • (3)启动GRUB菜单:
    GRUB引导程序通过读取GRUB配置文件/boot/grb2/grub.cg,来获取内核和镜像文件系统的设置和路径位置,并屏幕显示grub菜单

  • (4)加载 Linux内核:
    把内核和镜像文件系统加载到内存中

  • (5)init 进程初始化:
    加戟硬件驱动程序,内核把init进程加载到内存中运行

二.系统初始化进程

2.1、init进程
  • 由 Linux 内核加载运行 /sbin/init 程序
  • init进程是系统中第一个进程,是所有进程的父进程
  • init进程的PID(进程标记)号永远为1
输入 pstree
以树状式显示系统进程

在这里插入图片描述

2.2.Systemd

Systemd是Linux操作系统的一种init软件.CentOS7中采用全新的Systemd启动方式,取代传统的
SysVinit
CentOS7中运行的第一个init进程是/lib/systemd/systemd

在这里插入图片描述

systemd是所有进程的父进程
使用
pstree -p
查看进程号,systemd的进程号是为1

在这里插入图片描述

传统imit对于进程的管理是申行执行 Shel1 脚本启动服务,容易出现阳塞情况,导致效率低下,系统启动速度较慢
systemd能够将更多的服务进程并行启动,并且具有提供按需启动服务的能力,使得启动更少进程,从而提高系统启动速度。

2.3.systemd的单元类型
单元类型扩展名扩展名
Service.service2描述一个系统服务
Socket.socket描述一个进程间通信的套接字
Device.device描述一个内核识别的设备文件
Mount.mount.描述一个文件系统的挂载点
Automount .automount描述一个文件系统的自动挂载点
Swap.swap描述一个内存交换设备或交换文件
Pathpath描述一个文件系统中文件或目录
Timer.timer描述一个定时器(用于实现类似cron的调度任务)
Snapshot.snapshot用于保存一个svstemd的状态
Scope.scope使用systemd的总线接口以编程的方式创建外部进程
Slice.slice描述居于Caroup的一组通过层次组织的管理系统进程
Target.target描述一组systemd的单元
2.4.运行级别所对应的Systemd目标
运行级别systemd的target说明
0poweroff.target关机状态 使用该级别会关机
1rescue.target单用户模式 不需要密码即可登录系统 用于多系统维护
2multi-user.target用户定义/城特定运行级别。默认等同于3(CentOS6中不开启网络)
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别
4multi-user.target用户定义/域特定运行级别。默认等同于3
5graphical.target图形界面多用户模式,提供了图形真面操作环境
6reboot.target重新启动,使用该级别时将会重启主机
面试题
init 3 
切换单用户字符界面
init 5
切换多用户图形界面
init 0systemct1isolatepoweroff.targetsystemctlisolatereboot .targetpoweroff关机
init 1systemct1isolatepoweroff.target切换单用户模式
init 3systemct1isolatepoweroff.target切换字符界面多用户模式
init 5systemct1isolatepoweroff.target切换图形界面多用户模式
init 6systemctlisolatereboot .targetsystemctIl rebootrebootreboot
2.5.获得当前运行级别
runlevel
2.6、获得系统默认运行级别
systemctl get-default
2.7、设置系统默认运行级别(开机进入设置的运行级别)
systemctl set-default multi-user.target
 
或者以更改软链接方式
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
ln -s创建软链接 -f强制

软链接方式设置运行级别的原理 更改是 /etc/systemd/system/default.target软链接指向的文件到对应需要设置的运行级别上

在这里插入图片描述

三.修复MBR扇区故障

(1)故障原因

  • 病毒、木马等造成的破坏
  • 不正确的分区操作、磁盘读写误操作

(2)故障现象

  • 找不到引导程序,启动中断
  • 无法加载操作系统,开机后黑屏

(3)解决思路

  • 应提前作好备份文件
  • 以安装光盘引导进入急救模式
  • 从备份文件中恢复

MBR位于第一块硬盘 (/dev/sda) 的第一个物理扇区处, 总共512字节
1.1、备份MBR 时区数据到其它破盘(/dev/sdb1)

fdisk /dev/sdb  创建分区,设置扇区大小
mkfs -t xfs /dev/sdb1 格式化磁盘分区
mkdir /backup  创建挂载文件
mount /dev/sdb1 /backup
dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1
#直接复制磁盘sda的前512byte,而不是sda1(第一个分区)

1.2、模拟破坏MBR引导扇区

dd if=/dev/zero of=/dev/sda bs=512 count=1
复制0数据到sda的前512字节(MBR引导)

1.3、引导界面进入急救模式,从备份文件中恢复MBR扇区数据

点击虚拟机的设置把光盘连接

在这里插入图片描述

重新挂起虚拟光盘后就显示这个界面

在这里插入图片描述

加载急救模式

在这里插入图片描述
在这里插入图片描述
进入急救模式里设置,重启后就恢复正常了

sh-4.2# mkdir /backup
sh-4.2# mount /dev/sdb1 /backup              #挂载带有备份文件的分区
sh-4.2# dd if=/backup/mbr.bak of=/dev/sda    #恢复备份数据
sh-4.2# reboot                                 #执行reboot命令退出临时Shell 环境,系统将会自动重启

四.修复GRUB引导故障

(1)故障原因

  • MBR中的GRUB引导程序遭到破坏
  • grub.cfg文件丢失、引导配置有误

(2)故障现象

  • 系统引导停滞,显示“grub>”提示符

(3)解决思路

  • 尝试手动输入引导命令
    ·进入急救模式,重写或者从备份中恢复grub.conf
  • 向MBR 扇区中重建grub程序
方法一(手动输入,不推荐,)
grub> insmod xfs                   //加载指定的模块到内核
grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=8fd74986-ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet LANG=zh_CN.UTF-8                                      //内核的名字及位置等信息
grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img            //镜像系统文件
grub> boot                          //引导boot
ll /boot                          //查看内核文件名
fdisk -l                          //查看分区UUID
方法二、进入急救模式,恢复GRUB引导程序
MBR位于第一块硬盘 (/dev/sda)的第一个物理扇区处,总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447-510字节中
.mkdir /bak
mount /dev/sdb1 /bak
dd if=/dev/sda of=/bak/grub.bak bs=446 count=1          //模拟对MRB中的GRUB引导程序的破坏,但并不破坏分区表

dd if=/dev/zero of=/dev/sda bs=446 count=1

//引导界面进入急救模式,从备份文件中恢复GRUB引导程序
sh-4.2# mkdir /backupdir
sh-4.2# mount /dev/sdb1 /backupdir
sh-4.2# dd if=/backupdir/qrub.bak of=/dev/sda
sh-4.2# exit

方法三、引导界面进入急救模式,重建GRUB菜单配置文件

模拟损坏grub配置文件

rm -rf /boot/grub2/grub.cfg

重启后就出现以下情况
在这里插入图片描述
进入急救模式,加载光盘镜像,切换到系统根环境
在启动同时按下ESC 进入boot界面,选择CDROM选项
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

先使用 exit命令退出bash-4,2
后用reboot重启
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wanghwei 17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值