##系统恢复技术##

##学习目标

引导过程

恢复 Shell

##系统引导过程概述

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

##bios初始化

基本输入 / 输出系统 ( BIOS )是内置于标准 x86/x86-64硬件的固件接口,将硬件置于已知状态并准备好系统以加载操作系统

出现什么情况?

– 检测并初始化硬件

– 确定从中引导的设备

可能出现了什么错误?

– 错误或异常 BIOS 设置

– 错误引导设备顺序

可以如何中断或影响?

– 按特定于供应商的键

– 使用特定于供应商的配置实用程序

– 通常, <F12> 可以执行一次引导顺序覆盖

##grub磁盘引导阶段

MBR

– mbr的作用是为了记录/boot目录所在分区位置

–磁盘的0磁道1扇区的前446字节

– dd if=/dev/zero of=/dev/xda bs=446 count=1
– grub2-install /dev/xda


##grub文件引导阶段

/boot/grub2/grub.cfg


–指定/boot分区位置

–加载内核

–启动系统初始化进程

– grub2-mkconfig

##内核引导阶段

检测硬件设备

设备驱动初始化

将/只读挂载

载入初始进程systemd

内核文件丢失请重新安装内核

##systemd初始化

开启selinux和systemd-tools

加载内核参数

加载系统时钟,键盘,主机名称

读写挂载/文件系统

激活raid, lvm设备

激活系统配额

启动multi-user.target.wants中的所有服务脚本

启用虚拟控台

启动图形

##启动级别

runlever0.target -> poweroff.target  ##关机

runlever1.target -> rescue.target   ##单用户模式

runlever2.target -> multi-user.target    ##多用户模式,不支持NFS

runlever3.target -> multi-user.target   ##完整多元化模式

runlever4.target -> multi-user.target   ##未定义使用

runlever5.target -> grapical.target    ##带有图形界面的多用户使用

runlever6.target -> reboot.target   ##重启

##设定启动级别

systemctl set-default +启动级别

/etc/systemd/system/default.target

##runlevel  ##查看启动级别

##init  数字 ##切换运行级别

##系统恢复过程

1.##密码忘记,修改root用户密码

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

 2-11.  系统恢复技术_Linux


2、进入后,找到linux16开头的地方,按“end”键到最后,输入rd.break,按ctrl+x进入;(如上图)

3、进去后输入命令mount,发现根为/sysroot/,没有w权限,只有ro=readonly权限;

2-11.  系统恢复技术_Linux_02

4、mount -o remount,rw /sysroot/,重新挂载,之后mount,就有了r,w权限;

2-11.  系统恢复技术_Linux_03

5、chroot /sysroot/ 改变根;
(1)先cp一份,然后修改/etc/shadow文件
 2-11.  系统恢复技术_Linux_04

(2)echo RedHat|passwd –-stdin root 修改root密码为redhat,或者输入passwd,交互修改; 

2-11.  系统恢复技术_Linux_05 
6、touch /.autorelabel 这句是为了使得selinux生效,否则将无法正常启动系统


chroot /sysroot/ 
passwd root 
touch /.autorelabel


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

7、ctrl+d 退出

8、重启reboot 

2-11.  系统恢复技术_Linux_06 
至此,密码修改完成

2.##grub磁盘引导损坏

2-11.  系统恢复技术_Linux_07

##启动失败

2-11.  系统恢复技术_Linux_08

##用rhel-server-7.0-x86_64-dvd.iso镜像引导修复

##建立一个cdrom镜像

2-11.  系统恢复技术_学习_09

##镜像放在第一个启动

2-11.  系统恢复技术_Linux_10

##选择第三个

2-11.  系统恢复技术_Linux_11

##选择第二个

2-11.  系统恢复技术_学习_12

##选择continue

2-11.  系统恢复技术_学习_13

##chroot  /mnt/sysimage  ##设备数据在/mnt/sysimage

2-11.  系统恢复技术_学习_14

##grub2-install  /dev/vda  ##安装fgrub2

2-11.  系统恢复技术_学习_15

3.##损坏grub文件引导

2-11.  系统恢复技术_学习_16

##重启

##执行命令:set root='hd0,msdos1'

       linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1

       initrd16 /boot/initramfs-3.10.0-123.el7.x86_64.img

2-11.  系统恢复技术_学习_17

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

2-11.  系统恢复技术_Linux_18

4.内核引导修复

##rm -fr vmlinuz-3.10.0-123.el7.x86_64  ##损坏内核引导

2-11.  系统恢复技术_Linux_19

##重启不成功

2-11.  系统恢复技术_学习_20

##用镜像修复

2-11.  系统恢复技术_学习_21

5.内核修复

##rm -fr initramfs-3.10.0-123.el7.x86_64.img   ##内核引导损坏

2-11.  系统恢复技术_Linux_22

##重启不成功

2-11.  系统恢复技术_Linux_23

##用镜像修复

2-11.  系统恢复技术_Linux_24

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

##rm -fr default.target  

##ln -s /usr/lib/systemd/system/poweroff.target /etc/systemd/system/default.target  ##开机后立刻关机

2-11.  系统恢复技术_学习_25


##启动不成功

2-11.  系统恢复技术_学习_26

##开机按“e”进入编辑模式,完成后按ctrl+x

2-11.  系统恢复技术_Linux_27

##重新配置default.target   

2-11.  系统恢复技术_学习_28