Linux-引导过程与服务控制

10 篇文章 0 订阅
本文详细介绍了Linux操作系统的引导过程,包括BIOS自检、MBR引导、GRUB菜单、内核加载以及init进程的初始化。同时,讨论了Systemd作为初始化进程在CentOS7中的应用,包括其单元类型和服务管理。此外,文章还涵盖了MBR扇区和GRUB引导故障的修复方法,遗忘root用户密码的解决策略,以及如何控制和优化系统服务的启动。最后,通过实验演示了MBR数据备份、故障模拟及恢复,GRUB引导修复,以及忘记root密码的处理步骤。
摘要由CSDN通过智能技术生成

一 操作系统引导过程

1.1 引导过程总览

在这里插入图片描述

  • 开机自检(BIOS)
    自检基本的硬盘,找到第一块能够引引导的设备

  • MBR引导
    找到硬盘MBR引导分区,读取GRUB信息(grub.conf在哪里?)

  • GRUB菜单
    读取grub.conf信息,里面包含内核信息 ( 在/boot里)、等待时间等

  • 加载内核(kernel)
    加载内核和镜像文件

  • init进程初始化
    加载初始化进程1 PID1
    init 0 关机
    init 6 重启

1.2 系统初始化进程

  • init进程
    由Linux内核加载运行/sbin/init程序
    init进程是系统中第一个进程
    init进程的PID(进程标记)号永远为1

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

1.3 Systemd单元类型

单元类型扩展名说明
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的单元

1.4 systemd服务管理

systemctl命令可以控制系统服务,次命令涵盖了之前版本操作系统中的service命令和chkconfig命令两者的功能,在使用systemctl命令时,可以省略服务单元名称的标识.service。也就是如果输入资源无后缀标识,systemctl会默认把后缀标识当做.service来处理

1)查看服务启动状态
语法:systemctl status name.service
1)查看某个服务是否在启动成功状态
systemctl is-active named.service
2)查看某个服务是否在启动失败状态
systemctl is-faild named.service
(2)启动与停止服务
语法:systemctl start name.service
systemctl stop name.service
systemctl restart name.service
systemctl reload name.service
(3)设置开机启动
1)将服务设置为开机自动启动
systemctl enable name.service
2)将服务设置为开机不启动,即禁用服务
systemctl disable name.service
(4)查看依赖关系
systemctl list-dependencies
(5)屏蔽服务
1)屏蔽服务命令
systemctl mask name.service
2)取消屏蔽使用命令
systemctl umask name.service

1.5 服务配置文件

systemd在开机时会默认从/etc/systemd/system/目录中读取服务的配置文件用于启动该服务,实际上/etc/systemd/system/目录中存放着的都是软连接文件,指向/usr/lib/systemd/system/目录中真正的配置文件。这里的配置文件有着相似的格式

1.6运行级别所对应的Systemd 目标

运行级别Systemd的target说明
0target关机状态,使用该级别时将会关闭主机
1rescue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护
2multi-user.target用户定义/域特定运行级别。默认等同于3
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别
4multi-user.target用户定义/域特定运行级别。默认等同于3
5graphical.target图形界面的多用户模式,提供了图形桌面操作环境
6reboot.target重新启动,使用该级别时将会重启主机

二 修复MBR扇区故障

  1. 故障原因
    病毒、木马等造成的破坏
    不正确的区分操作、磁盘读写误操作

  2. 故障现象
    找不到引导程序,启动中断
    无法加载操作系统,开机后黑屏

  3. 解决思路
    应提前作好备份文件
    以安装光盘引导进入急救模式
    从备份文件中恢复

三 修复GRUB引导故障

  1. 故障原因
    MBR中的GRUB引导程序遭到破坏
    grub.conf文件丢失、引导配置有误

  2. 故障现象
    系统引导停滞,显示grub“提示符”

  3. 解决思路
    尝试手动输入引导命令
    进入急救模式,重写或者从备份中恢复grub.conf
    向MBR扇区中重建grub程序

四 遗忘root用户密码

  1. 故障原因
    遗忘root用户密码

  2. 故障现象
    无法进行需要root权限的管理操作
    若没有其他可用账户,将无法登陆系统

  3. 解决思路
    进入急救模式,重设密码

五 系统服务控制

  1. 系统服务控制
systemctl    控制类型  服务名称
  1. 控制类型
    start:启动
    stop:停止
    restart:重新启动
    reload:重新加载
    status:查看服务状态
    disable:开机关闭
    enable:开机自启

六 Linux系统的运行级别

  • 查看运行级别
    runlevel 命令
    systemctl 工具

七 优化启动过程

  • ntsysv 工具
    提供一个交互式、可视化窗口
    可以在字符终端运行
    便于集中管理多个服务

  • systemctl 工具
    不提供交互式、可视化窗口
    管理单个服务效率更高

八 系统服务的启动和控制

  1. ntsysv系统服务管理工具
ntsysv
  ntsysv --level 级别列表
  1. 查看系统服务的启动状态
systemctl is-enabled 服务名称
  1. 设置系统服务的启动状态
systemctl enabled/disable 服务名称

九 备份MBR扇区数据、模拟故障、恢复数据实验

1、给虚拟机添加一个20G的硬盘
在这里插入图片描述

2、用df - Th查看一下刚刚添加的进去的磁盘情况
在这里插入图片描述

3、格式化sdb,并把类型改成xfs

mkfs -t xfs /dev/sdb

4、备份MBR扇区数据

dd if=/dev/sda of/opt/mbr/bak bs=512 count=1

5、模拟MBR扇区故障并重启
在这里插入图片描述
6、挂掉了
在这里插入图片描述
7、把虚拟机镜像和连接勾选上
在这里插入图片描述
8、重启后快速按F2进入BIOS,选择Boot ,把CD-ROM调到第一个,然后F10保存重启
在这里插入图片描述
9、在光盘引导界面选择troubleshooting
在这里插入图片描述
10、进入troubleshooting菜单 选择Rescue a centos system
在这里插入图片描述
11、进入引导可以按回车,或者等待按1 在按会车进入sh-4.2#
在这里插入图片描述
12、将备份sdb备份的文件挂到mnt下,在把数据恢复到sda里
在这里插入图片描述
13、再输入reboot重启,启动后就恢复正常了
在这里插入图片描述

十 修复GRUB引导故障实验

1、进入grub2目录
2、把grub.cg改成grub.cfgbak格式,模拟出错
3、ll 查看一下是否更改成功了
在这里插入图片描述
4、虚拟机cd连接一下,镜像系统也挂载一下
在这里插入图片描述
5、reboot重启一下

[root@node1 grub2]# reboot

6、开机按f2进入bios
在这里插入图片描述
7、用左右键选择Boot,把cd用+符号调到第一个,然后f10保存并重启
在这里插入图片描述

在这里插入图片描述
8、选择第三个回车
在这里插入图片描述
10、选择第二个回车
在这里插入图片描述
11、先输入1回车在回车
12、切根环境
13、修复grub.cfg配置文件
14、exit退出目录
15、reboot 重启一下
16、和第四步骤一样,但是是把连接去掉,在和六、七步骤一样把硬盘选择到到一个f10保存退出(硬盘是Hard那个)
在这里插入图片描述
17、等待一会就启动好了(耐心等待!!!)。 完成
在这里插入图片描述

十一 忘记root密码-CentOs7.6系统版本

1、虚拟机cd连接一下,镜像系统也挂载一下
在这里插入图片描述
2、开机按f2进入bios
在这里插入图片描述
3、用左右键选择Boot,把cd用+符号调到第一个,然后f10保存并重启
在这里插入图片描述
在这里插入图片描述
4、选择第三个回车
在这里插入图片描述
5、选择第二个回车
在这里插入图片描述
6、选择1
7、切根环境
8、passwd root更改密码,然后输入新密码,再次输入密码
9、exit退出目录
10、重启
11、重启后f2和上面前几步一样,把boot里面硬盘换回到第一位,然后f10保存退出,第一步的连接也关掉
在这里插入图片描述
12、查看一下root是不是设置的新密码

su - root
密码:
上一次登录:五 1030 12:21:23 CST 202020.0.0.1pts/2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值