1、进windows,下载grub for dos,把解压后的grub可执行文件放到c盘根目录下(这个在哪儿关系其实不是很大,关键是在第二步时指出它的位置就行了)。这个网上很多的。google一下就出来了,注意不是GNU grub。
2、修改c盘下,boot.ini文件,在这个文件的最后添加一行c:grub="start grub"。引号里面的内容可以随便写,它的作用主要是开机后windows引导菜单里显示的内容。如果你看不到boot.ini文件,去掉查看- >文件夹选项->隐藏系统保护文件 和选中 "显示所有文件",然后就看到了。
3、重启系统,在windows的启动引导菜单里,选择“start grub”。这时系统完全交由grub控制了。grub的功能还是很强的,它可以直接从 FAT、minix、FFS、ext2 或 ReiserFS 分区读取 Linux 内核。这就意味着无论怎样它总能找到内核。这时会出现一个grub>提示符,其实它引导内核的步骤跟GNU grub是一样的。
4、引导linux。
首先键入root (hd0,0)。root命令用于设置包含操作系统内核的根设备。这里的hd0是你linux所安装的磁盘名,如果你有两块硬盘,并且linux安装在第二块硬盘上,那么这儿就应该是hd1。你也可以只输入root (hd ,然后按tab键,grub就会把它收集到的磁盘显示出来,从中选择一个你的linux磁盘吧!后面的0,表示磁盘主引导扇区所在分区,一般都为0。
然后键入kernel /boot/vmlinuz-xxx root=/dev/hdb5 ro。kernel命令用于装载内核映象文件,vmlinuz-xxx是你内核文件的名字,你同样可以用tab键让grub给你找出你内核文件的名字。后面的root=/dev/hdb5表示内核文件所在的磁盘分区, ro表示以只读方式打开内核文件。
然后键入initrd /boot/initrd.img-xxx。initrd.img-xxx是一个镜像文件,类似ramdisk,把一段程序打包到img里。它的作用是在没有mount /分区以前,虚拟出一个/,然后执行其根目录下的一个脚本"linuxrc",做一些挂载scsi驱动类似的事情,如果你的磁盘并不是scsi磁盘的话,这步并不是必须的。
最后键入boot。引导linux。哈哈,我胡汉山又回来了!
5、将新的grub装入mbr。以root的身份登陆,运行grub-install /dev/hdb(你的主盘,按教科书应该是hda,可没办法,我这儿就是hdb,搞不懂为什么!),如果你没有找到grub-install命令,那是因为你没有安装grub,装一个吧,it's free!。或者键入grub,然后在提示符下键入root (hd0,0),setup (hd0)。终于又把mrb的控制权抢回来了,嘿嘿!
6、将windows加入grub启动菜单。root权限,修改/boot/grub/menu.lst.加入以下内容
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1
搞定收工