详解Linux中系统是如何在损坏的情况下恢复的

##################

系统恢复

##################

在这里插入图片描述
接下来会模拟一些问题,然后进行操作,但是前提有俩个:
必须有光驱(在进行操作的时候必须先用光驱打开,改完之后再用磁盘方式打开)
模拟破坏问题之后必须将selinux的值改为disabled然后reboot才可以进行恢复

1.硬盘引导阶段 mbr主引导记录的恢复

在这里插入图片描述

fdisk -l  表示查看磁盘的目录

在这里插入图片描述

#模拟问题:dd if=/dev/zero of=/dev/vda bs=446 count=1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以看到由于磁盘引导阶段被破坏,虚拟机已经开启不了了

在这里插入图片描述

这个时候应该将虚拟机关闭,然后用光驱打开虚拟机,就会出现如下图示,选择Troublshooting,回车

在这里插入图片描述

选择第二项Rescue,回车

在这里插入图片描述

选择1回车

在这里插入图片描述

df 查看一下 boot分区所在硬盘为/dev/vda

在这里插入图片描述
在这里插入图片描述

grub2-install 启动分区所在硬盘
grub2-install /dev/vda
两次exit就好了

在这里插入图片描述

这个时候关闭虚拟机,恢复磁盘模式打开,再开启虚拟机就好了

在这里插入图片描述

出现用户界面,说明已经恢复引导磁盘的功能

在这里插入图片描述

2.文件引导阶段

#1)引导文件丢失

/boot/grub2/grub.cfg
#模拟问题: rm -fr /boot/grub2/grub.cfg

#当系统没有从新启动时 grub2-mkconfig > /boot/grub2/grub.cfg

#当系统被重新启动

首先还得重复上一个问题解决的步骤,进入到挽救模式,还是熟悉的配方,还是原来的步骤,做完之后用磁盘打开

在这里插入图片描述

grub > set root='hd0,msdos1'	##此位置是不固定的,位置指定/boot所在分区

在这里插入图片描述

grub > linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/vda1 #跟分区的设备名称

在这里插入图片描述

查看跟分区的命令    df
查看boot分区的命令 fdisk -l

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

在这里插入图片描述

#以上操作可以使系统正常启动,但是是临时的,所以进入系统后还是需要执行:
grub2-mkconfig > /boot/grub2/grub.cfg

在这里插入图片描述

#2)内核文件丢失

#模拟问题: rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64

在这里插入图片描述
在这里插入图片描述

打开虚拟机可以看到出现问题

在这里插入图片描述

进入到挽救模式
chroot /mnt/sysimage
mkdir /westos
mount /dev/cdrom /westos/

在这里插入图片描述

cd /westos/Packages
cp kernel-3.10.0-123.el7.x86_64.rpm /mnt
cd /mnt

在这里插入图片描述

rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id

在这里插入图片描述
在这里插入图片描述

结果就是会以磁盘的方式启动

在这里插入图片描述

#3)系统初始化镜像文件丢失
#模拟问题: rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
在这里插入图片描述
#当系统没有重启时
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
在这里插入图片描述

#当系统重启后
会出现如下图所示的情况
在这里插入图片描述
进入挽救模式
chroot /mnt/sysimage
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

在这里插入图片描述
结果是以硬盘方式可以启动
在这里插入图片描述
#当/boot分区被删掉后
进入到挽救模式
chroot /mnt/sysimage
mkdir /boot
grub2-install /dev/vda
mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/kernel-3.10.0-123.el7.x86_64.rpm --force
grub2-mkconifg > /boot/grub2/grub.cfg

3.当开机启动级别被篡改

查看常用的启动级别
cd /etc/systemd/system/
cd multi-user.target.wants/

在这里插入图片描述

systemctl disable sshd
systemctl enable sshd

在这里插入图片描述

cd ..
ls -l default.target

在这里插入图片描述

#错误形成
systemctl set-default reboot.target

在这里插入图片描述

#解决

1.开机按上下键停止读秒
2.按“E”进入编辑模式
3.选择内核启动行

linux16 /vmlinuz-xxxxxx ro xxxxxxxxxxxxxx 改变为: linux16
/vmlinuz-xxxxxx ro xxxxxxxxxxxxxx 5

手动输入级别5,ctrl+x退出,启动系统

在这里插入图片描述
4.重新设定启动

systemctl set-default graphical.target

在这里插入图片描述

4.重置root密码

当我忘掉自己的root密码怎么办在这里插入图片描述
在这里插入图片描述
先在重启主机的时候按下e进入编辑模式在这里插入图片描述

删除到ro,改为rw rd.break,ctrl+x退出

在这里插入图片描述

输入chroot /sysroot/

在这里插入图片描述

echo westos | passwd --stdin root

在这里插入图片描述

touch /.autorelabel

在这里插入图片描述
这样再次打开就可以登陆进去了,密码时westos

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值