一、MBR主导分区损坏
1、覆盖掉虚拟机的主导分区
dd if=/dev/zero of=/dev/vda bs=446 count=1
此时系统无法开机
2、virt-manaer打开虚拟机设置界面,将当前故障的虚拟机关闭,根据虚拟机版本添加光驱
点击左下角“Add Hardare“:
根据虚拟机版本添加光驱
Device type选择CDROM device
Bus type选择IDE
右下角Finish
左侧一栏选择Boot Options,将创建的光驱IDE CDROM1前打勾并往上移到第一位
右下角Apply
3、打开故障虚拟机,开机模式中选择Troubleshooting - Rescue a Red Hat Enterprise Linux system - Coutinue - OK - OK ##注意:光驱启动
在随后出现的shell界面中输入:
chroot /mnt/sysimage
grub2-install /dev/vda
vim /etc/sysconfig/selinux:disabled ##为使虚拟机快速重启,将selinux的开机状态改为disabled
exit
exit
4、修复完后关闭虚拟机使用原来的虚拟机硬盘开启虚拟机
左侧一栏选择Boot Options,将原本的虚拟机硬盘Virtlo Disk1往上移到第一位
右下角Apply
5、打开故障的虚拟机,修复完成
二、1、丢失引导文件 /boot/grub2/grub.cfg
引导文件丢失时,通过命令自动创建:
[root@localhost ~]# cd /boot/grub2
[root@localhost grub2]# ls
device.map fonts grub.cfg grubenv i386-pc locale themes
[root@localhost grub2]# rm -fr /boot/grub2/grub.cfg
[root@localhost grub2]# grub2-mkconfig > /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-123.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-123.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-946cb0e817ea4adb916183df8c4fc817
Found initrd image: /boot/initramfs-0-rescue-946cb0e817ea4adb916183df8c4fc817.img
done
[root@localhost grub2]# ls
device.map fonts grub.cfg grubenv i386-pc locale themes
2、引导文件丢失,没有通过命令创建重启时:
光驱启动,shell界面输入命令:
修复完后打开虚拟机打开shell输入命令创建:
三、1、丢失内核文件 /boot/vmlinuz-3.10.0-123.el7.x86_64
内核文件丢失,通过命令自动创建
实验:
第一步、删除内核文件
[root@localhost ~]# cd /boot/
[root@localhost boot]# ls
config-3.10.0-123.el7.x86_64
grub
grub2
initramfs-0-rescue-946cb0e817ea4adb916183df8c4fc817.img
initramfs-3.10.0-123.el7.x86_64.img
initrd-plymouth.img
symvers-3.10.0-123.el7.x86_64.gz
System.map-3.10.0-123.el7.x86_64
vmlinuz-0-rescue-946cb0e817ea4adb916183df8c4fc817
vmlinuz-3.10.0-123.el7.x86_64
[root@localhost boot]# rm -fr /boot/vmlinuz-3.10.0-123.el7.x86_64
第二步、进入桌面镜像 - packages中 - 搜索kernel-3.10.0-123.el7.x86_64.rpm 拖到桌面中
第三步、解压rpm压缩文件到桌面
rpm2cpio kernel-3.10.0-123.el7.x86_64.rpm | cpio -id ##以目录的形式解压
第四步、复制内核文件到/boot里
2、内核文件丢失,没有通过命令创建重启时:
光驱启动,shell界面输入命令:
修复完成
四、1、删掉初始化程序 /boot/initramfs-3.10.0-123.el7.x86_64.img
删掉初始化程序后,通过命令自动恢复:
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) ##恢复初始化程序
命令 生成文件名称 内核版本
$() ##名词变为动词
[root@localhost boot]# rm -fr /boot/initramfs-3.10.0-123.el7.x86_64.img
[root@localhost boot]# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
[root@localhost boot]# ls
config-3.10.0-123.el7.x86_64
grub
grub2
initramfs-0-rescue-946cb0e817ea4adb916183df8c4fc817.img
initramfs-3.10.0-123.el7.x86_64.img
initrd-plymouth.img
symvers-3.10.0-123.el7.x86_64.gz
System.map-3.10.0-123.el7.x86_64
vmlinuz-0-rescue-946cb0e817ea4adb916183df8c4fc817
2、删掉初始化程序删掉,没有通过命令恢复重启后:
光驱启动,shell界面输入命令:
修复完成
五、systemd初始化
启动级别发生错误,重启后:
在虚拟机重启时按上下键,停止系统引导,随后按e
在内核引导时设置图形化界面开启:
找到linux16那行后面加上 5(设置图形化界面开启)
正常开启后,修改systemd初始化默认参数,即可修复: