我们先要自己制造一个错误,导致系统无法启动,首先备份一下grub.conf、fstab两个文件,然后删除MBR前446个字节,删除引导程序(MBR的512字节中前446字节为引导程序,紧跟着后面64字节为分区表,最后面2个字节为结束标记)
修改系统的文件grub.conf、fstab 我这里就不删除了,只是更改名称让系统找不到就可以了
使用以下命令把bootloader( 启 动引导程序MBR中的446字 )覆盖掉
dd if=/dev/zero of=/dev/sda bs=446 count=1
重新引导系统
系统无法启动,没有引导程序
我们放入光盘,按F5进入救援模式输入Linux rescue
选择英文的语言和键盘
是否配置网络,我们选择 NO
选择继续
然后进入了救援模式
使用fsdisk -l 查看一下分区请看
在当前的目录创建一个目录,用来挂载根
mkdir a
mount /dev/sda2 /a 挂载根目录到a下
mount /dev/sda1 /a/boot 挂载boot目录,因为它为单独分区
挂载成功之后就可以看到所有的系统文件,可以进行修复和修改文件了
恢复被我们修改的文件
接下来是安装MBR中的446字节的引导程序
装grub就是装/boot/grub/stage1,救援模式下输入 #grub 就可以进入grub的命令模式下
1、root(hd0,0) 这里是指的第一块一盘的一个分区,就是要指定/boot所在的分区
2、setup(hd0) 这里是安装grub的意思,当出现successed就是安装成功了
3、quit退到shell模式
4、exit重启
重启后就自动进入了 grub> 的模式,在这里手动引导系统先看一下手动引导系统
root(hd0,0) 指定一下内核文件的位置,还是/boot目录所在的分区
kernel/vmlinuz-2…ro root=/dev/sda2 具体的内核文件并以只读的形式挂载上
initrd/initrd……. 具体的内存启动镜像
boot 加载系统
如下图:
以上操作完成之后,进入系统,这时候系统的 grub.conf 尚未恢复,需要进入目录恢复此系统文件才算是系统修复完成了。
这里还有一个问题就是:假如我的系统分区除了/boot 之外全部是LVM卷,那么在救援模式下我们应该如何去激活这个LVM卷呢?