系统恢复技术

来源:互联网 发布:2016excel数据有效性 编辑:程序博客网 时间:2024/04/28 10:08

系统引导过程简述

通电 -> bios 初始化 -> grub2 磁盘引导阶段 -> grub2 文件引导阶段 ->指定 boot 所在分区 -> 启动内核,只读挂在/设备 -> 启动 init 程序进入初始化阶段 ->启动systemd 初始化进程 -> 读取 /etc/systemd/中的文件 ->启动程序 ->启动登陆环境
这里写图片描述
在linux中,/boot/目录存放开机启动时的文件
/boot/grub2/grub.cfg
即grub2的文件引导,起到引导开启linux系统的作用
– 指定 /boot 分区位置
– 加载内核
– 启动系统初始化进程
– grub2-mkconfig 恢复文件
/boot/vmlinuz-3.10.0-123.el7.x86_64内核引导文件
/boot/initramfs-3.10.0-123.el7.x86_64.img内核引导文件
bios 初始化
基本输入 / 输出系统 ( BIOS ) 是内置于标准x86/x86-64
硬件的固件接口 , 将硬件置于已知状态并准备好系统以加载操作系统

grub 磁盘引导阶段

MBR(主引导记录Main Boot Record)
– mbr 的作用是为了记录 /boot 目录所在分区位置
– 磁盘的 0 磁道 1 扇区的前 446 字节
[root@localhost ~]# dd if=/dev/zero of=/dev/vda bs=446 count=1####模拟破坏grub磁盘引导
grub2-install /dev/xda 恢复引导

1.模拟破坏grub磁盘引导

这里写图片描述
会出现以下结果
这里写图片描述

2.修复grub磁盘引导

此时我们需要使用驱动来修复
virt-manage 打开虚拟机管理
添加CDROM
这里写图片描述
然后设置用CDROM启动系统
这里写图片描述
选择troubleshooting
选择rescue抢救系统
这里写图片描述

这里写图片描述

之后进入抢救界面
your system is mounted under the /mnt/sysimage directory
表示你的系统挂载在 /mnt/sysimage下
chroot /mnt/sysimage ####change root也就是改变程序执行时所参考的根目录位置。
grub2-install /dev/vda####修复MBR
这里写图片描述
然后exit退出两次后用硬盘启动就修复成功了
这里写图片描述

grub 文件引导阶段

/boot/grub2/grub.cfg
– 指定 /boot 分区位置
– 加载内核
– 启动系统初始化进程
– grub2-mkconfig
这里写图片描述

1.模拟破坏grub.cfg文件

[root@localhost grub2]# rm -fr grub.cfg####删除引导文件
这里写图片描述

2.修复grub.cfg文件

此时需要手动输入linux系统开启引导
set root=’hd0,msdos1’####设置root读取第一块磁盘的第一个分区,md0表示第一块磁盘,msdos表示第一个分区
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####内核文件
boot ####启动
这里写图片描述
之后就修复成功
但是grub.cfg文件依旧不存在,开机后依旧需要手动输入引导,所以需要产生一份grub.cfg文件
grub2-mkconfig > /boot/grub2/grub2.cfg ####产生grub引导文件并且放入/boot/grub2/grub2.cfg
这里写图片描述

内核引导阶段

检测硬件设备
设备驱动初始化
将 / 只读挂在
载入初始进程 systemd
内核文件丢失请重新安装内核
/boot/vmlinuz-3.10.0-123.el7.x86_64内核引导文件

1.vmlinuz-3.10.0-123.el7.x86_64模拟内核文件丢失

rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64####模拟内核文件丢失
这里写图片描述

这里写图片描述

2.修复内核文件

使用CDROM启动系统,进入rescue抢救模式
chroot /mnt/sysimage####将系统挂载到根目录下
mount /dev/cdrom /mnt####将cdrom挂载到/mnt下
cd /mnt
cd Packages/
cp kernel-3.10.0-123.e17.x86_64.rpm /opt####将kernel-3.10.0-123.e17.x86_64.rpm包复制到
cd /opt
rpm2cpio kernel-3.10.0-123.e17.x86_64.rpm | cpio -id####rpm2cpio命令用于将rpm软件包转换为cpio格式的文件,cpio -id 解压cpio文件
cd boot/
cp vmlinux-3.10.0-123.e17.x86_64 /boot
这里写图片描述
然后exit退出两次用硬盘启动就修复成功了

3.模拟/boot/initramfs-3.10.0-123.el7.x86_64.img文件丢失

rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
这里写图片描述

这里写图片描述

4.修复/boot/initramfs-3.10.0-123.el7.x86_64.img文件

使用CDROM启动系统,进入rescue抢救模式
chroot /mnt/sysimage/
mkinitrd /boot/initramfs-$(uname -r).img  $(uname -r)####产生文件
这里写图片描述
然后exit退出两次用硬盘启动就修复成功了

systemd初始化

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

/etc/systemd/system/下存放着systemd初始化文件
rm -fr /etc/systemd/system/default.target####删除系统初始化链接
ln -s /usr/lib/systemd/system/poweroff.target /etc/systemd/system/default.target ####将系统初始化软链接链接到关机文件,这样一开机就关机了
这里写图片描述
这里写图片描述

2.修复

进入单机模式
即进入以下界面,键入e
这里写图片描述

这里写图片描述

之后删除并修改一部分内容,然后再ctrl+x退出
这里写图片描述

之后建立init软链接
chroot /sysroot
ln -s
这里写图片描述
之后exit退出两次就修复成功

遗忘密码

进入单机模式,并进行修改
这里写图片描述
chroot /sysroot
passwd root ####修改密码
这里写图片描述
之后exit退出两次后即成功

0 0
原创粉丝点击