这里有两种方法来修复我们的GRUB,一种是从系统光盘启动修复,另一种则是用U盘来制作一个GRUB启动盘。
一,从光盘启动恢复(附:没有光盘)
方法1:使用引导光盘
先用debian/ubuntu安装CD开机,在"boot:"提示号出现时,键入"rescue"
当作开机参数,eg:
boot:rescue
顺着屏幕上的指示跟着作,例如假设/boot磁盘分区位于/dev/hda,则直接输入:
grub-install/dev/hda
这样grub就恢复了,重启就可以看到启动菜单。
方法2:
如果没有光盘,那么重装windows之前,你可以先将/boot/grub/menu.lst放在win下面的某一个盘,然后再重装win,当然其实也不需要如此,但是你如果不这样,以后就需要输入很长的命令并且要将当前linux的内核记住,所以,这里为了方便起见,我们先将这个grub的menu.lst保存好。重装windows完了之后,你需要装一个grub4dos放在C盘中,并且将它所在文件夹命名为grub,---为保险起见.再将里面的grldr文件复制到
C:\---即C盘的根目录下,然后修改C:\boot.ini在最后面加入:
C:\GRLDR="StartGrub"---就表示这里采用grldr的指向的grub,然后里面的grub4dos的东东指定了多menu.lst的搜索路径,这里前面复制的menu.lst就有用了,直接将它C复制到C的根目录下面就可以,这样重起电脑之后就会发现有"StartGrub",选择它就会load这个menu.lst.否则如果你事先没有copy这个,那么还是进不了你的Linux的,这时就需要手动输入:
kernel/vmlinuz-2.6.17-2-k7root=/dev/hda3ro
initrd/initrd.img-2.6.17-2-k7
savedefault
boot
进入Linux之后,再将grub装入mbr:grub-install/dev/hda
注意:上面手写的东西,根据你的内核不同而不同,而且由于我的linux装在主分区的第3号,
所以是root=/dev/hda3
另附grub下面手写进入windows的方法:
root(hd0,0)
chainloader 1
boot
二,用U盘制作GRUB启动盘
1,下载一个工具叫USBoot1.7,注意1.7的版本与之前的版本多了一个功能就是增加了对大容量U盘的支持.此次操作会格式化U盘,所以请先备份好你U盘里面的重要文件.选择好U盘盘符之后点击下面选择工作方式为USB-ZIP模式,这种方式在作启动盘是比较成功(至于原因大家有兴趣自己探索)接下来按照提示走;
2,完毕之后呢,我们就拥有一个可以引导的
U盘了.接下来呢,我们要让这个U盘能够能够启动我们的grub程序.下载一个grubfordos的程序,放到u盘中,然后编辑u盘中的autoexec.bat文件,在里面写上
grub--config-file=(sdc0)/menu.lst
这样就可以利用grub来引导了,但在此之前我们要添加一个menu.lst的文件,这个文件作为grub的引导菜单,具体制作方法可以baidu一下,不过我们暂时不需要里面有什么内容,我们只需要运行一个grub命令行就可以了.
然后我们就可以来引导我们的安装程序了.
引导安装程序修复系统
为了引导linux系统,我们需要两个文件,一个是vmlinuz,另外一个是initrd.img
这两个文件可以在我们的linux系统镜像中查找,是用来初始化内核和一些环境的
将这两个文件拷贝到U盘上,然后到grub命令行下,输入
kernel(hd0,0)/vmlinuz(注意这里的(hd0,0)应该是用U盘启动之后他自动将U盘作为第一快硬盘的第一快分区了,如果提示找不到该文件的话,试下其他的)
initrd(hd0,0)/initrd.img(初始化镜像)
boot镜像文件名.iso(引导镜像文件,即我们下载的安装镜像)
然后我们就可以看到熟悉的安装界面出现了,此时我们再按下Alt F2进入命令行界面,首先挂载我们原先的linux系统到安装临时系统上,
mkdir/mnt/linux(建立挂载文件夹)
mount/dev/hda4/mnt/linux(挂载,这里的sdc是我的设备号,具体大家可以用fdisk-l命令查看一下自己原先的linux是哪个设备,不行的话可以试着挂载一下)
root/mnt/linux(将当前命令行切换到原来linux系统的这样之后的操作都是针对原先系统的了)
grub(进入grub)
root(hd0,5)(设置grub引导根分区所在地)
setup(hd0,0)(将grub安装在第一块硬盘的mbr上面,这样windows分区也可以用grub来引导了)
退出,重启,引导第一快硬盘即可看到熟悉的grub又出来了.grub是一个比较优秀的引导程序,我们也可以利用这种思想来制作一个grub界面的超级启动U盘,这样以后不管windows还是linux系统怀了都可以用他来修复了.
下载本文示例代码