用 grldr 引导WinXP/Ubuntu双系统

grub4dos 会找到并使用 linux 分区里的 menu.lst,所以不需要往 c 盘拷贝 menu.lst,除非遇到 linux 分区在大磁盘的末尾而恰好 bios 太老无法访问到那片区域的情况,如果是那样的话,光拷个 menu.lst 也没用,需要把内核和 initrd 一起拷过来,然后修改 c:"menu.lst ,从 windows 分区加载内核和 initrd。

8.10 出了点新情况,grub 新增了 uuid 命令,grub4dos 不再完全兼容新的 grub 了,它看不懂 menu.lst 里的 uuid 行,所以如果要往 c 盘拷 menu.lst,就要把 uuid 行改成老式的 root (hdx,y);如果不拷 menu.lst,把 linux 分区里 menu.lst 的 uuid 行注释掉就好。这样做还有问题,因为下次升级内核生成新的启动项的时候 menu.lst 里会新增新内核的启动项,仍然是使用 uuid 命令的,你要再次注释掉它;如果是拷贝 menu.lst 到 c 盘的,更麻烦,每次安装新内核以后要自己手动更新 c:"menu.lst。所以针对 8.10 的新情况,建议的方案是:

在 c:" 下放置 grldr,修改 boot.ini;
c:" 下自建 menu.lst,写
title ubuntu
root (hdx,y) #这里填 ubuntu grub (分区引导扇区代码)被安装到的分区
chainloader +1

就好了。从 grub4dos 又转入 ubuntu 的 grub,不用改变 ubuntu 的 menu.lst,也不用操心以后升级内核的事了--ubuntu 的 grub 总是明白 ubuntu 的 menu.lst 的。

你可能感兴趣的:(ubuntu)