参考资料:https://www.cnblogs.com/Q--T/p/8167876.html
一、stage1 mbr的破坏和恢复
清空mbr 前446字节
dd if=/dev/zero of=/dev/sda bs=1 count=446;reboot
如果没有挂载启动光盘,会显示这样
如果启动前挂载了光盘,则重启之后自动从光驱启动了
此时选择救援模式,Rescue installed system
按照提示操作最后进入到shell
修复mbr需要用到grub去修复磁盘,所以要先把根切到硬盘上
1)chroot /mnt/sysimage
2)运行grub-install进行修复
grub-install /dev/sda
3)查看一下
hexdump -C -n 512 /dev/sda
4)exit
5)reboot
6)可以进入操作系统。
二、
stage1.5 数据破坏与修复
1.5阶段的数据存放在mbr之后的27个扇区内,也就是13824个字节
破坏掉1.5阶段的数据,无需全部破坏,我们用5120个字节试试.
dd if=/dev/zero of=/dev/sda bs=1 count=5120 skip=512 seek=512
修复方法同样可以用grub-install
出现界面如下,光标闪,长时间无法进入操作系统。
重启进入救援模式
chroot /mnt/sysimage
grub-install /dev/sda
exit
reboot
三、
stage2 grub目录的破坏与修复
删除文件但保留grub.conf
cd /boot/grub
rm -rf *
重启,提示error 15 ,
因为之前用grub-install修复过.所以之后启动系统都需要读取这些文件.
除了grub.conf文件,其他文件依然使用grub-install来修复.
进入救援模式
chroot /mnt/sysimage/
grub-install /dev/sda
sync
恢复grub.conf文件
cd /boot/grub
vim grub.conf (我编辑这个没有成功,后来进入了救援系统的网络模式,远程从其他服务器拷贝了grub.conf)
保存退出
:wq
exit
reboot
可以进入操作系统
四、
五、误删/sbin/下的init
rm -f /sbin/init,reboot
重启后一直停在这个画面。
1、进入 救援模式
2、chroot /mnt/sysimage
3、从别的主机拷贝init到/sbin下(或者,mount /dev/cdrom /mnt ;rpm ivh /mnt/Packages/upstart.xxxxxxxx.rpm --force)
4、exit
5、reboot