###1. linux下备份grub

终端root用户,运行命令:

dd if=/dev/hda of=/用户指定的路径/grub.NNNN bs=446 count=1

或者

dd if=/dev/sda of=/用户指定的路径/grub.NNNN bs=446 count=1

注解:/dev/hda/dev/sda是指物理硬盘,grub.NNNN是备份的文件名,可以随意起的。

另外,建议备份一个grub的配置文件,命令为:

cp /boot/grub/menu.lst ~/menu.lst.bak

它是grub启动时的菜单。

###2. 恢复grub

####(1) windows下重建引导的一种简易方法

重装windows后,要求是原版本的安装,否则无法直接引导。

进入windows后,把备份文件命名为grub.mbr,复制到C盘根目录下(只要系统能识别,放在其他地方也行),然后编辑boot.ini(隐藏),右键“我的电脑”点“属性”找“高级”找“启动和故障恢复”点“设置”找“系统启动”点“编辑”,系统会自动调用记事本打开boot.ini,在文件最后加上:

c:\grub.mbr=linux  (即grub.mbr的存放路径)

如此一来,在windows启动的时候就会增加 linux 选项。

####(2) 利用Linux引导盘

刻盘一直觉得有点麻烦,不过是一种方法,光盘引导进入。

####(3) 利用liveCD

liveCD可以不安装直接运行操作系统,在终端下运行dd命令:

sudo dd if=/用户指定的路径/grub.NNNN of=/dev/hda bs=446 count=1

或者

sudo dd if=/用户指定的路径/grub.NNNN of=/dev/sda bs=446 count=1

就可以还原grub到主引导区了。

注释:其中bs后面的数字是字节数,主引导区共有512字节,前446字节是引导信息,即mbr,后面62字节是分区信息,最后2字节是结束标识。因为只需要还原mbr,故bs=446,当然备份的时候可以将512字节都备份(bs=512)。

####(4) 使用grub重装

在root身份运行grub,然后输入

root(hd0,?)	#把?换成linux的/boot所在分区
setup(hd0)	#把grub重装到硬盘引导区
quit		#退出grub