##################
系统恢复
##################

接下来会模拟一些问题,然后进行操作,但是前提有俩个:
必须有光驱(在进行操作的时候必须先用光驱打开,改完之后再用磁盘方式打开)
模拟破坏问题之后必须将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
本文围绕系统恢复展开,模拟多种问题并给出解决办法。包括硬盘引导阶段mbr主引导记录恢复、文件引导阶段不同文件丢失的处理、开机启动级别被篡改的解决以及重置root密码等,操作前需有光驱,模拟破坏后要改selinux值并重启。
1653

被折叠的 条评论
为什么被折叠?



