我N次的看到如我一样的新手们发些关于XP与ubuntu共存后的grub引导的求助帖子,其实各大论坛 林林散散的都有介绍,可系统一点的帖子却很少见到,也许高手们不屑为之吧。我在这里也只是结合自己的实践经验谈谈我的心得体会,希望能给挣扎在XP与 linux之间的朋友一些帮助。[高手们可以闭着眼睛闪先:)]
1、原先有XP系统,后装ubuntu[当然要成功安装的,不成功安装,你说该怎么办呢?:)],但grub却未成功安装,导致一个系统也进不了。其中可分两种情况:
A //grub缺少menu.lst,但可直接进入命令行,这是我第一次安装redhat时遇到的情况。
解决方法:
引导XP系统
grub>
代码: |
rootnoverify (hd0,0) //一般情况,XP被安装在C盘;也可按tab键查看各分区,以获得系统盘系数。 makeactive chainloader +1 boot |
引导ubuntu系统
grub>
代码: |
root (hdX,Y) //这里的x为硬盘序列,若你的linux安装在第一块硬盘上,X=0;在第二块硬盘上,X=1;在第三块硬盘上[我先晕一下。。。],依次类推。Y是那块硬盘上的分区序列,也可通过tab查看;以获得linux的安装分区序列; kernel /boot/vmlinuz-*** root=/dev/sdaZ ro //这里的Z=Y+1; ***为ubuntu版本号,可同样按tab键补全。 initrd /boot/initrd.img-***[同上] boot |
注:如若是这种情况的,成功进入ubuntu之后,需要自己建立并编写menu.lst文件,形如:
代码: |
default 0 //表示默认启动为第一个title,要想设为默认启动为第二个,你说是default X?这也不知道的话,还是去使用XP吧:( timeout 10 //不用注释了吧?[楼主废话可真多。。。不要骂我] title Ubuntu, kernel 2.6.15-26-386 root (hd0,7) kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/sda8 ro quiet splash initrd /boot/initrd.img-2.6.15-26-386 savedefault boot title Ubuntu, kernel 2.6.15-26-386 (recovery mode) root (hd0,7) kernel /boot/vmlinuz-2.6.15-26-386 root=/dev/sda8 ro single initrd /boot/initrd.img-2.6.15-26-386 boot title Other operating systems: root title Microsoft Windows XP Professional root (hd0,0) savedefault makeactive chainloader +1 |
里面的具体参数自己确定了,什么?不懂?倒。。。我还以为像我这样垃圾的linuxer会很多的,别看不起自己:)
B //启动后说grub错误的,grub完全没法正常工作!这种情况很多见,做起来也有些麻烦。
解决方法:
第一步:修复传说中的mbr。
有 XP安装盘吧?有!很好,从XP安装盘启动先,进入修复控制台[这个没有问题吧?其中可能会提示输入所安装的XP系统序列,输入一个非零值即可;随后就是 管理员密码],执行fixmbr,以修复主引导区;附带说明一句:若在控制台中根本无法访问XP系统盘的,可先执行fixroot,但前提是 XP系统盘无严重问题,有问题的不在本帖讨论范围之内。提示成功修复引导区之后,restart重启,或使用dos界面下通用三键组合“ctrl+alt +del”重启也行滴说:)
第二步:XP下利用wingrub引导ubuntu。
wingrub在souceforge中有下载,而且有关它的使用,也是傻瓜式的,有linuxsir上的北南南北前辈--“老年人”略显罗嗦的帖子为证:http://www.linuxsir.org/bbs/showthread.php?t=214551
提示:最好安装到c盘下的boot.ini[XP隐藏的系统文件]中,以后清除也方便;前辈的话当然要听,但我们只要学到上面的帖子的一点,这个问题也就解决了,那帖子大概是完备教程吧。
第三步:在ubuntu下安装grub。
进入ubuntu下,执行sudo nautilus之后,删除/boot/grub整个文件夹,当然要备份先!再安装grub:
代码: |
sudo grub-install /dev/sda //将grub安装到mbr主引导区上。 |
安装确实得费些时间,请耐心等待。此时安装的grub也没有menu.lst,需要自己建立并编写menu.lst文件,方法goto本帖1-A-注。
第四步:删除XP下的wingrub启动项。
ubuntu 下安装的grub的menu.lst保存后重启系统,可顺利进入XP,删除c:/boot.ini中刚才生成的最后一行,形如: boot="c:/***"[你自己在wingrub程序生成启动文件时起的名];再清除c根目录下一个wingrub生成的引导文件,具体名我现在也忘 了。:( 但可以肯定它不是隐藏文件!
OK,有关先安装XP后安装ubuntu的,还有什么问题?一起来讨论一下吧。
2、ubuntu安装成功后,又重装XP的情况的;由于XP不为人知的“古怪的习性”,mbr主引导区是肯定要被覆盖的。重启之后原先的grub引导不会出现了,直接进入XP登陆界面,XP对linux完全视而不见。这时可goto本帖1-B-第二步,顺利解决问题。
由于wingrub确实没有linux下的grub好用,不能随linux下的系统更新而相应动作,所以强烈建议使用linux下的grub去引导双系统,甚或多系统!