######### 系统恢复 #########
在虚拟机中操作。
(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
模拟系统恢复
虚拟机已经打不开
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
(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