我们在进行系统恢复之前,首先需要准备好与系统版本相同的系统镜象文件,使用hostnamctl查看当前使用系统的版本:

因此我们需要准备红帽企业7.0的系统镜象

1.mbr主引导记录的恢复
1.首先我们需要了解本机的mbr存放位置,使用fdisk -l:

带*的设备即为mbr所在位置:/dev/vda1,这个位置我们需要记住
2.问题模拟:
mbr被覆盖:

mbr被覆盖后,我们重启电脑,发现不能够正常启动:

3.解决方法:
#1.添加系统镜象:

选择启动方式为光盘启动:

#2.进入挽救模式:

选择continue:

我们要注意,在救援模式中,我们系统的/分区是挂载在/mnt/sysimages/下的,我们一定要记住这句话:

选择ok;

此时,我们就进入了救援模式:

chroot /mnt/sysimage/ ##改变根分区
grub2-install /dev/vda ##将grub引导安装在/dev/vda的mbr位置上,成为主引导记录
exit ##两次退出
1
2
3

#3.恢复mbr后,恢复正常的启动方式,
此时再开机,我们就可以正常开机了

2.引导文件恢复
首先,我们要明确/boot分区的挂载点,如下,我们此时/boot分区与/分区在一起挂载:

进入/boot分区,我们首先应该认识几个重要的文件:

我们打开引导文件,可以看到此文件的内容:

引导文件,顾名思义,在 系统启动阶段,由引导文件告诉系统该做什么,若我们此时将引导文件删除,我们就不能正常开机,此时有两种情况:

#1.删除但未重启:
引导文件的恢复使用如下命令:

grub2-mkconfig ##此命令重新生成grub.cfg配置并输出到shell
grub2-mkconfig > /boot/grub2/grub.cfg ##将输出重定向
1
2
执行此命令,我们可以看到,引导文件会恢复:

#2.删除引导文件后重启:
我们可以看到,电脑不能正常启动:

此时,我们需要进行手动引导:

set root='hd0,msdos1'
##注意:此命令指定/boot所在分区的位置为根所在的位置,此位置不固定,
linux16 /boot/vmlinuz-3.10.0-123.ex17.x86_64 ro root=/dev/vda1
##注意:若/boot分区单独挂载,此时boot分区就是当前的根,
##ro root=/dev/vda1:root分区只读挂载
##引导内核
initrd16 /boot/initramfs3.10.0-123.ex17.x86_64 ##引导内核初始化镜像
boot ##启动系统
1
2
3
4
5
6
7
8

以上是手动引导系统启动,在系统成功启动后,我们可以看到系统中依然没有grub.cfg文件,这意味我们下此开机时依然需要手动引导,因此我们需要再生成引导文件:

3.内核恢复
1.问题模拟:
若我们误删了系统的内核:

在启动时,会出现如下问题:

2.解决方案:
进入救援模式:
查看系统镜像是否 挂载:

若无挂载,将系统镜象挂载:

在镜象中找到内核的安装包复制到/mnt/目录下:

将安装包拆解:

找到内核,将内核复制回/boot:

可以看到,内核已恢复:

此时,使用正常启动模式开机,可以正常开机

4.内核初始化镜像文件恢复
1.问题模拟:删除initramfs-3.10.0-123.el7.x86_64.img

要恢复此文件,我们需要知道当前系统内核的版本:
使用uname -r,我们可以查看当前的版本:

2.问题解决:
##1.没有重启系统:直接恢复

[root@localhost boot]# mkinitrd --help
usage: mkinitrd [--version] [--help] [-v] [-f] [--preload ]
[--image-version] [--with=]
[--nocompress]

##可以看到,此命令后必须要加的参数是:镜像文件名/内核版本号
(ex: mkinitrd /boot/initramfs-3.10.0-123.el7.x86_64.img 3.10.0-123.el7.x86_64) ##例子
1
2
3
4
5
6
7

###2.删除后重启系统
我们会看到如下错误:

解决方法:
进入挽救模式恢复文件:

文件恢复后,我们就可以使用正常的开机方式进行启动

5./boot分区被删除
1.问题模拟:
若我们在/boot分区执行如下命令,导致/boot分区被删除

那我们在开机时,就不能开机:

2.问题解决:
进入救援模式,逐个进行文件恢复
##1.恢复内核:
在/mnt/boot中将内核复制回/boot:

##2.内核初始化镜像文件恢复:

##3.引导文件恢复:

再执行: grub2-mkconfig > /boot/grub2/grub.cfg恢复引导文件

将所有文件恢复后,使用正常开机方式就可以开机

6.开机启动级别被篡改
1.错误形成

systemctl set-default reboot.target ##将开机启动级别更改为重启,意味主机刚开启就会重启
1

2.解决方法
在开机的编辑界面临时更改启动模式:

5表示以图形模式启动
正常开机后,再修改开机启动方式:

7.超级用户密码忘记
解决方法:在开机时更改超户密码
1.开机进入编辑界面,临时更改启动方式:

2.更改超户密码:

退出:

此时可以使用新密码登陆超户


作者:weixin_41781946
来源:CSDN
原文:https://blog.csdn.net/weixin_41781946/article/details/84036141
版权声明:本文为博主原创文章,转载请附上博文链接!