注意:做实验之前先将selinux设置为disabled
一、grub文件引导
(1)MBR分区受损
mbr的作用时为了记录/boot目录所在分区位置,磁盘的0磁道1扇区的前446字节
损坏mbr分区:
fdisk -l
##查看/boot在哪个分区,然后,决定破坏哪一个分区,以方便后面的实验
dd if=/dev/zero of=/dev/vda bs=446 count=1
##启动分区的大小为446字节,只能多不能少,要不然会损坏其他的程序'
reboot
##重新启动
再次启动错误提示:Booting from hard disk…
添加光驱:Bus type 为SATA
再次启动虚拟机将硬盘驱动改为光盘驱动:
选择:trouble。。。
选择:rescue a redhat enterprise linux system ###进入营救模式
选择1:continue
chroot /mnt/sysimage/
grub2-install /dev/vda ##重新安装引导
exit
exit
重新启动:此次使用硬盘驱动
登录成功:
(2)启动文件/boot/grub2/grub.cfg受损
rm -rf /boot/grub2/grub.cfg ##此文件受到破坏
错误提示:
grub>set root='hd0,msdos1'
grub>linux16 /vmlinuz-3.10.0-327.e17.x86_64 ro root=/dev/vda3
grub>initrd16 /initramfs-3.10.0-327.e17.x86_64.img
grub>boot
重启成功后:
grub2-mkconfig > /boot/grub2/grub.cfg ##还原系统文件
reboot ##再次重启
二、内核引导
内核文件受到破坏
(1)rm -rf /boot/vmlinuz-3.10.0-327.e17.x86_64 ##破坏操作
错误提示1:
进入营救模式:无需切换身份
cd /mnt/sysimage/mnt
rpm2cipo /run/install/repo/Packages/kernel-3.10.0-327.e17.x86_64.rpm | cpio -id
cd boot/
cp vmlinuz-3.10.0-327.e17.x86_64 /mnt/sysimage/boot
(2)rm -rf /boot/initramfs-3.10.0-327.e17.x86_64.img ##破坏操作
错误提示2:
chroot /mnt/sysimage/
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
##uname -r :打印内核版本
三、其他问题
1)登录即失败
问题分析:将默认的链接指向关机
解决方案:改变默认的链接指向开机
chroot /mnt/sysimage
rm -rf /etc/systemd/system/default.target
ln -s /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
2)开机闪退
问题分析:无法进行二进制文件的指令,此文件可能丢失,或者指向其他位置
解决方案:先执行 chroot /sysroot/ ,提示信息显示文件缺失,则复制回去 cp /bin/bash /sysroot/bin/bash,再次切换成功,则文件复制成功。