linux系统在受到损坏的情况,恢复系统

######### 系统恢复 #########
在虚拟机中操作。

(1)硬盘引导阶段,mbr 主引导记录的恢复
模拟硬盘损坏

[root@server ~]# fdisk -l                    查看那446个字节在那盘上,发现是在/dev/vda 这块盘上

Disk /dev/vda: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a2a63

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     1026047      512000   83  Linux    
/dev/vda2         1026048     3074047     1024000   82  Linux swap / Solaris
/dev/vda3         3074048    16777215     6851584   83  Linux
[root@server ~]# dd  if=/dev/zero   of=/dev/vda  bs=446 count=1         将446个字节拿走,虚拟机就会不能启动,硬盘损坏
1+0 records in
1+0 records out
446 bytes (446 B) copied, 8.2697e-05 s, 5.4 MB/s
[root@server ~]# getenforce               查看selinux ,要将selinux关闭,如果是 enforcing 强制级状态,需要将其改变为 disable,
Disabled
[root@server ~]# vim /etc/sysconfig/selinux           改变selinux 状态的目录,但是这个地方是不需要改的
[root@server ~]# reboot       

在这里插入图片描述

模拟系统恢复
虚拟机已经打不开在这里插入图片描述

  • 原因;在reboot后,系统是不会重启的,所以需要在镜像下操作
  • 1,所以将原本的的驱动删除掉,加一个新的驱动,在镜像下操作。在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 2,在boot options 下将驱动顺序改到 硬盘之前

在这里插入图片描述

  • 进入挽救模式在这里插入图片描述

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

  • 5,可以使用df 查看原本的 “/” 目录在/mnt/sysimage 目录下方的

6,chroot /mnt/sysimage/ 改变 “/” 目录
7,grub2-install /dev/vda 恢复
8,exit 退出两次
在这里插入图片描述
9, force关闭在这里插入图片描述
9,将原本的驱动顺序放到硬盘的下边,crom 在disk 下方在这里插入图片描述
10,挽救模式只是临时使系统正常开启,正常进入系统之后需要再次对主引导记录进行恢复在这里插入图片描述

(2)文件引导阶段
其启动文件在文件在这个目录下 /boot/grub2/grub.cfg

[root@localhost Desktop]# cd /boot
[root@localhost boot]# ls
config-3.10.0-327.el7.x86_64
grub2
initramfs-0-rescue-9470e338d3ad465ea024f4cb29aa9f63.img
initramfs-3.10.0-327.el7.x86_64.img
initramfs-3.10.0-327.el7.x86_64kdump.img
initrd-plymouth.img
symvers-3.10.0-327.el7.x86_64.gz
System.map-3.10.0-327.el7.x86_64
vmlinuz-0-rescue-9470e338d3ad465ea024f4cb29aa9f63
vmlinuz-3.10.0-327.el7.x86_64
[root@localhost boot]# cd grub2/
[root@localhost grub2]# ls
device.map  fonts  grub.cfg  grubenv  i386-pc  locale  themes

模拟损坏
1,rm -fr /boot/grub2/grub.cfg
在这里插入图片描述

虚拟集启动恢复

  • 分两种情况,第一种是当系统没有重启的时候

grub2-mkconfig > /boot/grub2/grub.cfg在这里插入图片描述

  • 第二种是重新启动的

1,grub > set root =‘hd0,msdos1’ 此位置不是固定的,位置是/boot 启动分区所在分区的名称 比如是 /dev/vda1 就是 ‘hd0,msdos1’ ,如果是/dev/vda2,就是’hd0,msdos2’
在这里插入图片描述
2,grup > linux16 /vmlinuz-3.10.0-514.e17x86_64 ro root=/dev/vda3 此处的分区是 “/”根分区的设备名称
3. grup > initrd16 /initramfs-3.10.0-514.e17x86_64.img (前边的为系统初始化文件包)
4,grup > boot 启动
以上情况是可以使系统可以重新启动的,但是只是临时的,所以进入系统还是需要执行文件的,grub2-mkconfig > /boot/grub2/grub.cfg 将这个文件放到这个目录,因为如果不放到目录下,重新开机的情况还是会接着引导的。所以是要将其放到这个目录中去
在这里插入图片描述

(3), 内核丢失引导

模拟损坏内核
1,rm -rf /boot/vmlinuz-3.10.0-123.e17x86_64
在这里插入图片描述
模拟修复
进入挽救模式(与之前的操作是相同的)
1,chroot /mnt/sysimage/ 改变 “/” 根目录
2,mount /dev/cdrom /opt/ 将驱动挂载到某个目录上去(此处的目录不是固定的)
3,切换到cd /opt 的这个目录下 ,ls 查看Packages/ 这个目录是否存在,存在即正确
4,切换到 cd /Packages 的这个目录下
5,cp kernel-3.10.0…x86_64.rpm /mnt/ 将这个文件复制到/mnt/目录下取(此处的目录时可以任意目录)
6,切换到 cd /mnt/ 目录下,ls 查看那kernel-3.10.0…x86_64.rpm 是否存在,存在即正确
7,rpm2cpio kernel-3.10.0…x86_64.rpm | cpio -id 将这个包分解
9,cd /boot/ 切换到boot路径下
10,cp vmlinuz-3.10.0-123.e17x86_64 /boot/ 将内核包复制到 /boot/启动目录下
11,exit退出两次即可
在这里插入图片描述

  • 系统初始化镜像文件丢失

模拟损坏镜像文件
rm -rf /boot/initramfs-3.10.0-123.el7.x86_64.img
在这里插入图片描述
模拟修复初始化镜像文件
分两种情况
第一种;当系统没有重新启动的时候
mkinitrd /boot/initramfs-$(uame -r).img ( u a m e r ) (uame -r) 直接执行文件 就可以修复好 ,后边的 (uname -r)其意思为先执行里边的文件,查找里边的更为方便
在这里插入图片描述

  • 第二种,系统已经重新启动的在这里插入图片描述
    进入到挽救模式
    1,chroot /mnt/sysimage/ 改变“/” 根目录
    2,直接执行 mkinitrd /boot/initramfs-$(uname -r) $(uname -r)
    3,然后ls 查看是否有/boot/initramfs-3.10.0-123.el7.x86_64.img 这个文件的存在,存在的话,就是正确的,
    4,exit 两次退出
    5,force关闭
    6,退出挽救模式在这里插入图片描述

  • 无限重启

1,切换到 cd /etc/systemd/system/multi-user.target.wants/ 路径下,因为很多的服务都是快捷模式,查看 ls -l sshd.service 是有文件的,
2,设置 systemctl disable sshd ,就会将快捷方式删除
3,在进行ls -l sshd.service 查看的话是没有文件的
reboot 设置开机重启
systemctl set-default reboot.target

然后重启reboot在这里插入图片描述
解决办法 ;1,按 e 键 ,到另一个界面,eee在 rhgb quiet 空格 5, 设置级别为 5
在这里插入图片描述
2,ctrl + x 退出界面 然后启动
3,重新启动之后 systemctl set-default graphical.target 将这个导向指到图形界面去,
4,reboot 重启尝试看一下,重启正确即成功在这里插入图片描述

####### 超级用户密码更改 #######
1,进入到上一个与之前的循环界面 解决办法 ;1,按 e 键 ,到另一个界面,一直删除到r ,然后为rw rd.break
2.ctrl + x 退出界面 然后启动
输入命令 chroot /sysroot/
passwd root 改root超级密码
passwd
3,然后touch /.autorelabel
4,reboot 重启一下
exit 两次退出e
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/liuchuang11/article/details/89457548