Linux之——系统恢复技术

编程知识 更新时间:2023-04-28 01:23:49

系统恢复技术

1.系统引导过程概述

通电——>进入初始化阶段——>bios 初始化——>grub2 磁盘引导阶段——>grub2 文件引导阶段——>
指定 boot 所在分区——>启动内核,只读挂在 / 设备启动——>init 程序进入初始化阶段——>
启动 systemd 初始化进程——>读取 /etc/systemd/中的文件——>启动程序——>启动登陆环境

1.2bios 初始化

  • 基本输入 / 输出系统 ( BIOS ) 是内置于标准 x86/x86-64
    硬件的固件接口 , 将硬件置于已知状态并准备好系统以加载
    操作系统
  • 出现什么情况 ?
    检测并初始化硬件
    确定从中引导的设备
  • 可能出现了什么错误 ?
    错误或异常 BIOS 设置
    错误引导设备顺序
  • 可以如何中断或影响 ?
    按特定于供应商的键
    使用特定于供应商的配置实用程序
    通常 , 可以执行一次引导顺序覆盖

1.3grub 磁盘引导阶段

  • MBR
    – mbr 的作用是为了记录 /boot 目录所在分区位置
    – 磁盘的 0 磁道 1 扇区的前 446 字节
    – dd if=/dev/zero of=/dev/xda bs=446 count=1
    – grub2-install /dev/xda

1.4grub 文件引导阶段

  • /boot/grub2/grub.cfg
    – 指定 /boot 分区位置
    – 加载内核
    – 启动系统初始化进程
    – grub2-mkconfig

1.5内核引导阶段

  • 检测硬件设备
  • 设备驱动初始化
  • 将 / 只读挂在
  • 载入初始进程 systemd
  • 内核文件丢失请重新安装内核

1.6systemd 初始化

  • 开启 selinux 和 systemd-tools
  • 加载内核参数
  • 加载系统时钟,键盘,主机名称
  • 读写挂载 / 文件系统
  • 激活 raid , lvm 设备
  • 激活系统配额
  • 启动 multi-user.target.wants 中的所有服务脚本
  • 启用虚拟控台
  • 启动图形

1.7启动级别

  • runlever0.target -> poweroff.target
  • runlever1.target -> rescue.target
  • runlever2.target -> multi-user.target
  • runlever3.target -> multi-user.target
  • runlever4.target -> multi-user.target
  • runlever5.target -> grapical.target
  • runlever6.target -> reboot.target

1.8设定启动级别

  • systemctl set-default + 启动级别
  • /etc/systemd/system/default.target

2.系统恢复过程

2.1密码忘记,修改root用户密码

重启,到grub选项菜单,按’e’进入编辑模式。


找到kernel命令行编辑如下图



得到一个shell


chroot /sysroot/
passwd root
touch /.autorelabel


按两下ctlr+d或输入两次exit退出重启就可以正常登陆了。

2.2grub文件引导阶段文件丢失

如果/boot/grub2/grub.cfg引导文件丢失,则如图


输入这四条命令,就会重启


进入系统后,在shell输入命令生成缺失的引导文件,系统就修复成功!
grub2-mkconfig >/boot/grub2/grub.cfg


2.3内核文件丢失

如果系统内核文件丢失,则重启时会如图所示


关机,选择镜像启动<这里用虚拟机做实验>



进入界面选择“Rescue Red Hat Enterprise Linux system”


选择“Troubleshooting”


进入挽救模式,重要的事情说三遍“chroot /mnt/sysimage”




得到一个shell,执行刚才的命令,重新安装内核安装包

chroot /mnt/sysimage        ##切换到真实根环境
yum install kernel -y       ##安装内核安装包

按两下ctlr+d或输入两次exit退出,关掉镜像启动,开启硬盘启动,就可以正常登陆。

2.4 initramfs-‘uname- r’.img文件丢失

initramfs文件系统时在ramfs的cache实现的上加了一层很薄的封装,当这个initramfs-‘uname- r’.img缺失时,则如图所示。


接下来的解决步骤与“内核丢失”情况的得到shell之前的解决办法一样。此时,得到一个shell,执行如下命令。

chroot /mnt/sysimage        ##切换到真实根环境
cd /boot/                       ##进入boot目录
mkinitrd initramfs-`uname -r`.img  `uname -r`
uname -r                        ##内核版本号

按两下ctlr+d或输入两次exit退出,关掉镜像启动,开启硬 盘启动,就可以正常登陆。

2.5误删shell文件,系统恢复

设置镜像启动,进入挽救模式,得到一个shell。
由于/bin/bash文件缺失,无法使用shell,如图


cp /bin/bash /mnt/sysimage/bin/bash 

cp  /bin/bash /mnt/sysimage/bin/bash  

按两下ctlr+d或输入两次exit退出,关掉镜像启动,开启硬 盘启动,就可以正常登陆。

2.6系统启动级别文件链接错误

/etc/systemd/system/default.target      ##系统开机链接文件
启动级别共6级,第3页第7个知识点。
当default.target 链接到别的级别,则系统无法启动到图形界面
default.target -> /lib/systemd/system/graphical.target
这里,systemctl set-default poweroff.target    使其链接为0级别。
则,系统开机就会自动关机。
置镜像启动,进入挽救模式,得到一个shell。输入如下命令。
chroot /mnt/sysimage        ##切换到真实根环境
Rm -fr /etc/systemd/system/default.target
删除错误链接文件
Ln  -s  /usr/lib/systemd/system/graphical.target
etc/systemd/system/default.target       ##建立新的链接文件

按两下ctlr+d或输入两次exit退出,关掉镜像启动,开启硬 盘启动,就可以正常登陆。

2.7mbr(主引导记录)446字节丢失

dd if=/dev/zero of=/dev/vda bs=446 count=1 可以清空mbr

重启,系统就会无法被mbr引导正常启动


设置镜像启动,进入挽救模式,得到一个shell。输入如下命令。

chroot /mnt/sysimage        ##切换到真实根环境
grub2-install /dev/vda      ##重新生成mbr

按两下ctlr+d或输入两次exit退出,关掉镜像启动,开启硬 盘启动,就可以正常登陆。


更多推荐

Linux之——系统恢复技术

本文发布于:2023-04-21 00:37:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/7808a8c23265159191e5c548d7c22a6d.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:系统   技术   Linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 91752文章数
  • 23529阅读数
  • 0评论数