用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
头像
TeliuTe
论坛版主
帖子: 7392
注册时间: 2007-11-25 13:29
系统: 14/16/18/Fedroa22/w7
来自: 新疆博乐
送出感谢: 29 次
接收感谢: 95 次
联系:

用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#1

帖子 TeliuTe » 2008-11-14 11:02

十二、grldr引导
作者:Teliute 来源:基础教程网

 对于安装有XP的双系统,最好使用grldr来引导ubuntu,下面我们来看一个练习

 1、安装grub到 /boot 分区

 1)在安装ubuntu到第7步准备复制文件时,点右下角的“高级”按钮;

 图片

 2)在出来的安装引导器对话框中,选择 /boot所在的分区,记住这个分区的分区号、分区大小;

 图片

 3)点“确定”返回后,继续安装,由于/boot分区并不是主分区,也没有激活标志,因此不能自己启动,还需要grldr引导器来加载;

 4)安装完以后先不重启,点上面“place“菜单,根据大小进入刚才的/boot分区,再进入 grub 文件夹,把里面的menu.lst复制到C:盘;

 图片

 (/media/disk/boot/grub/menu.lst)

 2、下载grldr

 1)grldr是grub4dos的一个组件,可以解压grub4dos后,复制其中的grldr,下载地址(下载最新的):

 http://download.gna.org/grub4dos/

 2)将grldr文件复制到C:盘根目录中,还有前面的 menu.lst ;

 图片

 3)修改boot.ini文件,在最后添加一行:C:\grldr=“Ubuntu”

 图片

 编辑boot.ini文件的方法,请参考:http://teliute.laxjyj.com/TeacHtm/TeComput/lesson33/lesson33.html

 4)如果前面没有复制 menu.lst ,那么其他分区根目录也不要放置 menu.lst,让 grldr 自己搜索进入Ubuntu,

 5)如果想要menu.lst的话,也可以重新用安装盘进入 live cd ,根据分区大小在 place 菜单下打开 /boot 分区,复制grub里面的menu.lst到C:盘(也在place 下找);

 注意:在安装分区都时候,记住 /boot 分区的分区大小、分区号,UUID可以打开 /etc 文件夹,查看里面的 fstab 文件,注意不要修改它;

 6)重启动后在XP启动菜单那儿选择ubuntu即可;

 本节学习了XP双系统中用grldr引导Ubuntu中的基本方法,如果你成功地完成了练习,请继续学习下一课内容;

注意:

 grldr 和 menu.lst 是一对,
 menu.lst 在 /boot/grub/menu.lst ,
 grldr 会自动搜索 menu.lst,

 live cd 的/boot 和安装的/boot 是不同的,
 进入live cd后根据分区大小找到安装的 /boot/grub/meu.lst,

附:10.04 及以后的 menu.lst

代码: 全选

default 0
timeout 5

title Ubuntu 10.04, kernel 2.6.32-21-generic
root (hd0,8)
chainloader +1
boot

title Ubuntu 10.04
root (hd0,8)
kernel /boot/grub/core.img
boot

title Ubuntu 10.04
root (hd0,8)
kernel /vmlinuz ro root=/dev/sda9
initrd /initrd.img
boot

title Ubuntu 10.04
root (hd0,8)
kernel /boot/vmlinuz-2.6.32-24-generic ro root=/dev/sda9
initrd /boot/initrd.img-2.6.32-24-generic
boot

如果 /boot 是单独分区,则要去掉路径里的 /boot,如

代码: 全选

title Ubuntu 10.04
root (hd0,8)
kernel /grub/core.img
boot
上次由 TeliuTe 在 2011-10-09 18:49,总共编辑 7 次。
jingtian
帖子: 51
注册时间: 2008-09-16 18:30
送出感谢: 0
接收感谢: 0

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#2

帖子 jingtian » 2008-11-14 12:36

请问下面这一步中输入的分区是不是决定了Grub将要安装到的分区?
在出来的安装引导器对话框中,选择 /boot所在的分区;
头像
TeliuTe
论坛版主
帖子: 7392
注册时间: 2007-11-25 13:29
系统: 14/16/18/Fedroa22/w7
来自: 新疆博乐
送出感谢: 29 次
接收感谢: 95 次
联系:

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#3

帖子 TeliuTe » 2008-11-14 17:54

jingtian 写了:请问下面这一步中输入的分区是不是决定了Grub将要安装到的分区?
在出来的安装引导器对话框中,选择 /boot所在的分区;

是的,这一步会安装grub文件夹到/boot里,
考虑到双系统把/boot单独放到一个128M左右的分区里了
如果不安装引导器,则不会有grub文件夹,当然系统也不能自己启动了

图片
上次由 TeliuTe 在 2012-07-30 0:34,总共编辑 1 次。
jingtian
帖子: 51
注册时间: 2008-09-16 18:30
送出感谢: 0
接收感谢: 0

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#4

帖子 jingtian » 2008-11-14 21:10

哦,那如果我不给/boot单独建一个分区,那这里是不是就要输入/,而不是/boot?

这个关于把Grub装在Linux分区的问题,我已经搜索了至少两个星期,发了有上十个帖子,但是没有人能够给出明确的回复。没想到,还是在这里找到了答案。
头像
TeliuTe
论坛版主
帖子: 7392
注册时间: 2007-11-25 13:29
系统: 14/16/18/Fedroa22/w7
来自: 新疆博乐
送出感谢: 29 次
接收感谢: 95 次
联系:

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#5

帖子 TeliuTe » 2008-11-14 21:26

是的,如果没有单独给/boot分区,则在安装的时候选择 / 所在的分区,这儿是一个下拉列表,选择/所在的分区即可

由于/boot/grub/menu.lst 由系统自动更新,升级内核以后,只要把这个文件再重新复制到WinXP的C:盘即可
jingtian
帖子: 51
注册时间: 2008-09-16 18:30
送出感谢: 0
接收感谢: 0

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#6

帖子 jingtian » 2008-11-14 21:45

TeliuTe 写了:是的,如果没有单独给/boot分区,则在安装的时候选择 / 所在的分区,这儿是一个下拉列表,选择/所在的分区即可

由于/boot/grub/menu.lst 由系统自动更新,升级内核以后,只要把这个文件再重新复制到WinXP的C:盘即可

谢谢,我还有三个问题。

第一,你这里的十二是和前面的课程连起来的吗?
我刚刚到你说的基础教程网去看了一下,需要事先将initrd.gz和vmlinuz解压出来,放到C盘吗?还是说课程十二和前面的课程是独立的?

第二,用课程十二的方法,是完全不改MBR的,是吧?我的ThinkPad每次装Ubuntu,都改了MBR。如果确定不改的话,我想再装一次。

第三,你写道:
将grldr文件复制到C:盘根目录中,再复制Ubuntu系统中的/boot/grub/menu.lst文件到C:盘根目录(在WinXP下操作)
这步为什么要在WinXP下操作?在Ubuntu下面操作不是更容易吗?

另外,这个基础教程网真的很好,步骤很详细。
billbear
帖子: 3681
注册时间: 2008-05-03 23:42
送出感谢: 0
接收感谢: 3 次

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#7

帖子 billbear » 2008-11-14 22:58

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 的。
billbear
帖子: 3681
注册时间: 2008-05-03 23:42
送出感谢: 0
接收感谢: 3 次

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#8

帖子 billbear » 2008-11-14 23:38

jingtian 写了:请问下面这一步中输入的分区是不是决定了Grub将要安装到的分区?
在出来的安装引导器对话框中,选择 /boot所在的分区;


确切地说,是选择 grub 的分区引导扇区代码将被安装到哪个分区引导扇区里。而 grub 文件夹在你确定了各分区在你的文件树里如何组织,即确定了分区挂载点以后,就一定是安装在你文件系统里的 /boot/grub 位置,和你这一步的选择无关。你可以把引导扇区代码安装在 / 分区,/boot 分区,甚至你的 /home 分区都无所谓,只要你有办法把引导传递到这个扇区里,这段扇区引导代码总是可以找到硬盘里的 stage2,即使它是在另一个分区里。事实上 grub 引导扇区代码可以被安装到硬盘里的任何分区,即使这个分区和 linux 系统无关,比如可以安装到某 windows 分区引导扇区里,当然你不会傻到把它安装到 c 盘破坏那里本来的寻找 ntldr 的代码,但是安装到非 c 盘的其它 fat 分区是完全可以的(安装到 ntfs 分区通常可能失败),那里的引导扇区是闲置可用的。一般我们不这么做,因为这会令我们感到混乱,但是在特殊的应用场合,有时候我们会不得不把它安装到一个 fat 分区里,这我是碰到过的。
jingtian
帖子: 51
注册时间: 2008-09-16 18:30
送出感谢: 0
接收感谢: 0

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#9

帖子 jingtian » 2008-11-15 8:58

billbear,谢谢。我今天就装一装看看。
valentine5555
帖子: 12
注册时间: 2008-11-15 10:33
送出感谢: 0
接收感谢: 0

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#10

帖子 valentine5555 » 2008-11-15 11:10

谢谢楼主的指点,但还有个问题请教:
看了基础教程网,我想硬盘安装8.04,在引导系统这步已经制作了menu.lst,并在C盘拷入了grldr。而本课又说 2)将grldr文件复制到C:盘根目录中,再复制Ubuntu系统中的/boot/grub/menu.lst文件到C:盘根目录(在WinXP下操作),是要在安装完成后用这两个文件覆盖之前的文件吗?
装完后修改boot.ini是不是可以用删除之前的c:\grldr=Install Ubuntu,添加C:\grldr=Ubuntu ?
再有,我如果把grub安装到/boot,安装完成后重启能进入ubuntu吗?我以前光盘装过Fedora,也是grub装到/boot,重启后要用光盘引导rescu模式,再用dd命令,最后实现xp双启菜单的。

望指点!
头像
TeliuTe
论坛版主
帖子: 7392
注册时间: 2007-11-25 13:29
系统: 14/16/18/Fedroa22/w7
来自: 新疆博乐
送出感谢: 29 次
接收感谢: 95 次
联系:

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#11

帖子 TeliuTe » 2008-11-15 11:56

valentine5555 写了:谢谢楼主的指点,但还有个问题请教:
看了基础教程网,我想硬盘安装8.04,在引导系统这步已经制作了menu.lst,并在C盘拷入了grldr。而本课又说 2)将grldr文件复制到C:盘根目录中,再复制Ubuntu系统中的/boot/grub/menu.lst文件到C:盘根目录(在WinXP下操作),是要在安装完成后用这两个文件覆盖之前的文件吗?
装完后修改boot.ini是不是可以用删除之前的c:\grldr=Install Ubuntu,添加C:\grldr=Ubuntu ?
再有,我如果把grub安装到/boot,安装完成后重启能进入ubuntu吗?我以前光盘装过Fedora,也是grub装到/boot,重启后要用光盘引导rescu模式,再用dd命令,最后实现xp双启菜单的。

望指点!

本课是安装好8.04以后的操作,安装8.04中会自动删除之前在C:盘里的用于安装的menu.lst

装完后检查一下C:盘的 boot.ini文件,grldr文件,menu.lst,

如果安装到 /boot后,一般不能启动ubuntu,还需要指明加载哪一个系统分区,

我的理解是,grldr在C:盘,默认是加载这个分区,然后从这个分区加载grldr,grldr再加载/ubuntu系统分区
valentine5555
帖子: 12
注册时间: 2008-11-15 10:33
送出感谢: 0
接收感谢: 0

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#12

帖子 valentine5555 » 2008-11-16 13:47

哦,明白了,就是启动之后还是XP的引导界面,选择Ubuntu后就相当于加载grldr,然后就可以进入ubuntu了,对吧?
arayeshiki
帖子: 13
注册时间: 2008-06-04 16:19
送出感谢: 0
接收感谢: 0

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#13

帖子 arayeshiki » 2008-11-16 14:16

请问,我按照上面的教程安装ubuntu8.10,安装提示取出光盘重启,进入XP复制grldr和menu.lst到C盘根目录,重启进入Ubuntu出现了Error 15:File not found,提示为

Kernel /vmlinuz-2.6.27-7-generic
root=UUID=8edcdd67-10ff-4e32-8ael-f592cco4ofof ro
locale=zh_CN quiet splash

参考7楼的方法,但是我不是很明白root (hdx,y),可不可以用实例解释一下(hdx,y)应如何填??
头像
TeliuTe
论坛版主
帖子: 7392
注册时间: 2007-11-25 13:29
系统: 14/16/18/Fedroa22/w7
来自: 新疆博乐
送出感谢: 29 次
接收感谢: 95 次
联系:

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#14

帖子 TeliuTe » 2008-11-16 18:10

valentine5555 写了:哦,明白了,就是启动之后还是XP的引导界面,选择Ubuntu后就相当于加载grldr,然后就可以进入ubuntu了,对吧?

是这样,先加载了XP,好像是XP的NTLDR的文件,跟grldr的作用相似,
grldr和menu.lst是一对,NTLDR 跟boot.ini是一对。
头像
TeliuTe
论坛版主
帖子: 7392
注册时间: 2007-11-25 13:29
系统: 14/16/18/Fedroa22/w7
来自: 新疆博乐
送出感谢: 29 次
接收感谢: 95 次
联系:

Re: 用 grldr 引导WinXP/Ubuntu双系统基础教程(图文)

#15

帖子 TeliuTe » 2008-11-16 18:25

arayeshiki 写了:请问,我按照上面的教程安装ubuntu8.10,安装提示取出光盘重启,进入XP复制grldr和menu.lst到C盘根目录,重启进入Ubuntu出现了Error 15:File not found,提示为

Kernel /vmlinuz-2.6.27-7-generic
root=UUID=8edcdd67-10ff-4e32-8ael-f592cco4ofof ro
locale=zh_CN quiet splash

参考7楼的方法,但是我不是很明白root (hdx,y),可不可以用实例解释一下(hdx,y)应如何填??

root (hdx,y),可以这样理解,前面的hdx是硬盘,后面的y是该硬盘里的分区
如果只有一个硬盘,x这儿就是hd0,第二个硬盘是hd1往下排,
后面的y,是安装grub时选择的分区,

比如这儿grub是安装到了/dev/sda10,注意后面的sda10
从sda中的a可知是第一块硬盘,对应的是hd0
后面的分区10,对应的是9,关系是减去1,可能是因为从0开始计数的

在menu.lst里的启动命令是(8.04系统):

代码: 全选

title      Ubuntu 8.04, kernel 2.6.24-19-generic
root      (hd0,9)
kernel      /vmlinuz-2.6.24-19-generic root=UUID=f6edcc36-c55b-4b93-a50c-03a259dc2f3a ro quiet splash
initrd      /initrd.img-2.6.24-19-generic
quiet
回复

回到 “启动和引导”