linux引导过程与服务控制

文章目录

  • linux引导过程与服务控制
    • **一:引导过程**
      • 1.1引导过程总览
        • 1.1.1开机自检
        • 1.1.2MBR 引导
        • 1.1.3GRUB菜单
        • 1.1.4加载Linux 内核与内存文件系统
        • 1.1.5加载硬件驱动以及初始化进程
      • 1.2systemd进程
    • 二 . 使用systemd管理系统
      • 2.1systemd单元
    • 三: 修复MBR扇区故障
      • 3.1故障原因
      • 3.2:故障现象
      • 3.3:解决思路
      • 3.4模拟修复MBR扇区实验
        • 3.41.备份已损坏MBR扇区数据
        • 3.4.2、模拟MBR扇区故障
    • 四:**修复GRUB引导故障**
      • 4.1:故障原因
      • 4.2:故障现象
      • 4.3:解决思路
        • 4.4:修复过程实验
        • 准备工作
        • 4.4.1模拟故障
        • 4.4.1**连接光盘,在光盘引导界面选择troubleshooting**
        • *4.4.2*进入troubleshooting菜单 选择Rescue a centos system**
        • 4.4.3选1 continue按回车键进入sh-4.2#
        • 4.4.4进入急救模式后切根,命令:chroot /mnt/sysimage/
        • 4.4.5重新构建grub菜单系统
        • 4.4.3选1 continue按回车键进入sh-4.2#
        • 4.4.4进入急救模式后切根,命令:chroot /mnt/sysimage/
        • 4.4.5重新构建grub菜单系统

linux引导过程与服务控制

一:引导过程

1.1引导过程总览

Linux操作系统的引导过程一般包括以下几个阶段:开机自检、MBR引导、GRUB菜单、加载Limux内核与内存文件系统、加载硬件驱动以及初始化进程。

linux引导过程与服务控制_第1张图片

1.1.1开机自检

服务器主机开机以后,将根据主板BIOS(Basic Input/Output System,基本输入输出系统)中的设置对CPU、内存、显卡、键盘等设备进行初步检测,并初始化部分硬件,检测成功后根据预设的启动顺序移交系统控制权,大多数时候会移交给本机硬盘。

自检过程中可以根据主机的POST信息进入配置,通常按某一组合键进入,常用F2或者 Delete

1.1.2MBR 引导

当从本机硬盘中启动系统时,首先根据硬盘第1个扇区中MBR(Master Boot Record,王引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区:或者直接根据MBR记录中的引导信息调用启动菜单(在CcentOS7系统中为grub2

1.1.3GRUB菜单

对于Linux系统来说,GRUB 算是使用最为广泛的多系统引导器程序了。系统控制权传递给GRUB以后,将会显示启动菜单提供给用户选择,并根据所选项(或采用默认值)加载Linux 内核文件,然后将系统控制权转交给内核。

1.1.4加载Linux 内核与内存文件系统

系统引导器程序会从本地硬盘中加载内核以及内存文件系统(CentOS7中使用initramfs)。

Linux 内核是一个预先编译好的特殊二进制文件,介于各种硬件资源与系统程序之间,负责资源分配与调度。内核接过系统控制权以后,将完全掌控整个Linux操作系统的运行过程。在CentOS7.3版本的系统中,默认的内核文件位置位于"boot/vmlimuz-3.10.0-514.el7x86.64".

内存文件系统initramfs是经过gzip的cpio归档,其中包含启动时所有必要的硬件内核模块、初始化脚本等。

1.1.5加载硬件驱动以及初始化进程

内核初始化在initamfs中找到驱动程序的所有硬件,然后作为PID I从initamis 执行/sbin/init,CentOS7中将其复制为systemd,systemd启动nitdtarget中所有单元, 并挂载根文件系统/sysroot,内核与文件系统由内存文件系统切换至系统根文件系统, 并重新运行/sysrotsystemd。systemd眉动状认 tuget(图形或者字符终端),最后等待用户进行登录

1.2systemd进程

Linux系统中的进程(运行中的程序)使用数字进行标记,每个进程的身份标记称为PID
从CentOS 7版本的系统开始systemd称为PID恒为1的初始化进程,是内核第一个加载的程序
systemd进程是维护整个Linux系统运行的所有进程的“始祖”,因此systemd进程是不允许被轻易终止的
需要切换不同的系统运行状态时,可以向systemd进程发送正确的执行命令,由systemd自身来完成相关操作
systemd诞生的主要目的是为了将更多的服务并发启动,从而提高系统启动速度。其最大的优点在于具有提供按需启动服务的能力,只有在某个服务被真正请求时才进行启动。当服务结束时systemd就将其关闭,等待下次需要时启动。

二 . 使用systemd管理系统

2.1systemd单元

在systemd中不同类型的systemd对象被统一称为单元,是让系统知道该如何进行操作和管理资源的主要对象,所以systemd有许多单元类型。

systemd单元文件最初默认存放在/lib/systemd/system目录中,每当安装新的软件都会自动在这个目录中添加一个配置文件。

systemctl 命令用于管理各种类型的systemd单元,可以使用“systemctl -t help”命令来查询systemd支持的单元类型。

systemd常见单元类型

单元类型 护展名 说明
Service .service 护展名
Socket .socket 描述一个进程间通信的套接字
Device .device 描述一个内核识别的设备文件
Mount .mount 描述一个文件系统的挂载点
Automoun .automount 描述一个文件系统的自动挂载点
Swap .swap 描述一个内存交换设备或目录
Timer .timer 描述一个定时器(用于实现类似cron的调度任务)
Path .path 描述一个文件系统中文件或目录(path 路径)
Snapshot .snapshot 用于保存一个systemd的状态(snapshot 快照)
Scope .scope 使用systemd的总线接口以编程的方式创建外部进程
Slice .slice 描述居于Cgroup的一组通过层次组织的管理系统进程
Target .target 描述一组systemd的单元(target 目标)

这些单元类型以后缀的形式附在资源名后面,如网络服务 network.service。

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

三: 修复MBR扇区故障

3.1故障原因

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

3.2:故障现象

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

3.3:解决思路

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

3.4模拟修复MBR扇区实验

3.41.备份已损坏MBR扇区数据

(实际中我们都是备份整个文件)加一块磁盘做备份

1 添加硬盘

linux引导过程与服务控制_第2张图片

2 fdisk -l 查看磁盘

[root@localhost ~]# fdisk -l

磁盘 /dev/sdb:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sda:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00029f9f

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199   1048576   83  Linux
/dev/sda2         2099200    10227711     4064256   82  Linux swap / Solaris
/dev/sda3        10227712   629145599   309458944   83  Linux

linux引导过程与服务控制_第3张图片

3、备份MBR扇区数据,命令: dd if=/dev/sda of=/opt/mbr.bak bs=512 count=1

[root@localhost ~]#  mount /dev/sdb /opt
[root@localhost ~]#  dd if=/dev/sda of=/opt/mbr.bak bs=512 count=1
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000206509 秒,2.5 MB/秒

3.4.2、模拟MBR扇区故障

1模拟故障命令:dd if=/dev/zero of=/dev/sda bs=512 count=1

[root@localhost ~]#  dd if=/dev/zero of=/dev/sda bs=512 count=1 
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.000322147 秒,1.6 MB/秒

2 观察故障

linux引导过程与服务控制_第4张图片

linux引导过程与服务控制_第5张图片

3.4.3、修复MBR故障(以安装光盘引导进入急救模式)
1)、选择光盘中设备状态,选中已连接和启动时连接复选框,点击确定

linux引导过程与服务控制_第6张图片
2)、重启下操作系统,选择Troubleshooting急救模式;

linux引导过程与服务控制_第7张图片

linux引导过程与服务控制_第8张图片

3)选1 continue按回车键进入sh-4.2#

linux引导过程与服务控制_第9张图片

3)模拟恢复mbr.bak

mount /dev/sdb /mnt  ## 将备份到sdb的文件挂到mnt下
   然后进去看下是否有mbr.bak

将挂载在/mnt下的备份覆盖到/dev/sda

dd if=/mnt/mbr.bak of=/dev/sda count=1 bs=512 #这里是从底层二进制调取mbr.bak文件,所以不能用 cp

linux引导过程与服务控制_第10张图片

4)reboot 重启,系统正常启动,故障解决

linux引导过程与服务控制_第11张图片

四:修复GRUB引导故障

4.1:故障原因

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

4.2:故障现象

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

4.3:解决思路

尝试手工输入引导命令(成功率很低,不建议)
进入急救模式,重写或者从备份中恢复grub.conf
向MBR扇区中重建grub程序

4.4:修复过程实验

准备工作

第一步,VMware加一块硬盘,目前两块硬盘;

第二步,查看磁盘情况,查看是否有sdb盘,命令:fdisk -l;

3、格式化sdb,命令:mkfs -t ext4 /dev/sdb;

4、挂载,命令:mount /dev/sdb /opt;

linux引导过程与服务控制_第12张图片

4.4.1模拟故障

1 cd /boot/grub2 进入grub2 配置文件在grub2中

linux引导过程与服务控制_第13张图片

模拟故障配置

linux引导过程与服务控制_第14张图片

linux引导过程与服务控制_第15张图片

4.4.1连接光盘,在光盘引导界面选择troubleshooting

启动虚拟机界面,点击“F2”按键,进入BOSS选择光盘启动,“CD-ROM Drive”菜单

按“+”把光盘启动移到最上层,点F10保存退出

linux引导过程与服务控制_第16张图片

选择Troubleshooting急救模式

linux引导过程与服务控制_第17张图片

4.4.2进入troubleshooting菜单 选择Rescue a centos system**

linux引导过程与服务控制_第18张图片

4.4.3选1 continue按回车键进入sh-4.2#

linux引导过程与服务控制_第19张图片

4.4.4进入急救模式后切根,命令:chroot /mnt/sysimage/

4.4.5重新构建grub菜单系统

linux引导过程与服务控制_第20张图片

4.4.6在bios 界面设置为硬盘启动

stem**

[外链图片转存中…(img-SGOMpzPx-1593346109685)]

4.4.3选1 continue按回车键进入sh-4.2#

[外链图片转存中…(img-CutzOErR-1593346109686)]

4.4.4进入急救模式后切根,命令:chroot /mnt/sysimage/

4.4.5重新构建grub菜单系统

[外链图片转存中…(img-qUUj4fNu-1593346109687)]

4.4.6在bios 界面设置为硬盘启动

linux引导过程与服务控制_第21张图片

你可能感兴趣的:(linux,运维)