1.破坏本机grub stage1,而后在救援模式下修复之
查看grub stage1 的内容
hexdump -C -n 446 /dev/sda
备份mbr的内容
dd if=/dev/sda of=/data/mbr bs=1 count=512
清空grub stage1的内容
dd if=/dev/zero of=/dev/sda bs=1 count=446
重启系统修复(centos7)
如没有其他可启动媒介,此时进入系统会报错:No bootable medium found!
放入系统安装光盘,进入救援模式修复。硬盘上的系统会挂载到/mnt/sysimage目录。
- 使用chroot命令切根
chroot /mnt/sysimage
- 然后使用grub2-install安装grub即可,stage1 和 stage1_5都会安装到硬盘
grub2-install /dev/sda
2.删除本机的grub.cfg文件,然后修复
grub.cfg文件丢失或损坏,centos7上表现为开机进入grub命令行,而无法进入系统
# 查看设备分区,可以看到第一个分区是编号是从1开始的
ls
# 查看分区的大小,推测系统根分区的编号
ls (hd0,1)
# 设置本次启动的内核,可以使用Tab键补全
linux /vmlinuz-3.10.0-862.el7.x86_64 ro root=/dev/sda3
# 设置ramdisk
initrd /initramfs-3.10.0-862.el7.x86_64.img
# 按照设置引导启动
boot
3.删除本机的/boot目录中所有文件,然后修复
- 重启进入光盘救援模式
- 挂载光盘,复制光盘isolinux目录中的vmlinuz到/mnt/sysimage/boot/目录
- 切根,使用mkinitrd /boot/initramfs-3.10.0-862.el7.x86_64.img 3.10.0-862.el7.x86_64 命令生成initramfs文件
- 运行grub-install /dev/sda命令生成/boot/grub目录,以及grub所有阶段的数据
- 运行grub2-mkconfig > /boot/grub2/grub.cfg生成启动菜单文件
- 确认没有问题后重启系统
4.删除本机的/boot目录中所有文件和/etc/fstab,然后修复
- 进入救援模式后手动挂载设备的分区,查看内容确定对应的挂载点,手动编写fstab文件
- 重复上面3题的步骤
5.采用LVM方式使用分区,删除/etc/fstab,修复
- 救援模式切根后,lvscan
- 激活所有lv,vgchange -ay vg0
- 然后挂载查看