[求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04? 已解决

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
ziymin
帖子: 12
注册时间: 2009-11-04 13:34

[求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04? 已解决

#1

帖子 ziymin » 2010-11-08 15:16

如题,先安装了win7之后再使用grub4来引导硬盘上光盘镜像ubuntu-10.04-dvd-amd64.iso ,成功安装了ubuntu10.04,可是问题来了:

开机先出现的是grub4dos引导菜单,从ubuntu开始,最后才到win7(虽然可以到ubuntu下修改grub.cgf配置set default= “0”改成“4”成为优先启动win7),就算可以把windows7启动项移到第一项去,这样要进入win7还是一样要经过两个启动菜单,不爽哈我的想法是先启动win7,利用bcdedit编辑通过bootmgr来引导grub4dos菜单再进入ubuntu,有什么方法可以实现这个么??

我要达到的效果是:
开机-->
windows7 Professional(这样就直接进入win7了,这个爽)
grubdos4(这里进入引导ubuntu的二级菜单)
结束

:em01 各位大虾能否支招一下小弟!!!!
============================================================================
解决方法如下:

此方法不需要更改win7的bootmbr,注意安装ubuntu时在最后一步打开高级(选项),去掉安装引导选项(可避免日后liunx分区或者硬件改变而引起windows系统无法启动的问题)。
步骤:
1、C盘下新建文件boot.ini,写入以下内容:
[boot loader]
timeout=3
[operating systems]
C:\g2ldr.mbr="Grub4DOS for Linux"

2、再新建文件menu.lst在D盘,内容为:
timeout=0
default 0
title Ubuntu10.04,Linux 2.6.32-X-generic
root (hdx,y) 【本机为(hd0,8) 】
kernel /vmlinuz root=UUID=xxxx-xxxx-xxxx-xxxx-xxxx【本机为efdec932-995b-447d-9712-7aeea7d86f49】 ro quiet splash
initrd /initrd.img
quiet
补充:一般可用sudo blkid 命令查看Ubuntu的根分区UUID,还有分区情况,也可以推算出root (hdx,y)。
此配置文件还可以通过添加命令来实现多重引导,如硬盘安装Ubuntu等。

3、将修改过的g2ldr.mbr(看下面的附录说明)拷贝到C盘下,

4、将原Grub4DOS下的grldr更名为g2ldr并拷贝到D盘下(原则上放在C盘里就可以,但本机找不到,所以放到D盘,menu.lst同理)。

最后,重启即可
============================================================================
附录说明:

以下内容非原创,小弟正是受此内容启发而将步骤具体化:
安装有win7和linux双系统的朋友,一般是用grub4dos来引导linux的。引导的基本过程是,用win7引导grldr.mbr,再通过grldr.mbr引导glrdr,grldr根据menu.lst启动linux系统。
但是,一些破解版的win7,一般在系统盘根目录上会生成一个名为grldr的文件。如果用grub4dos的grldr来替代这个grldr,则会导致破解失败。如果在系统盘存在着名为menu.lst的文件,则会导致win7无法启动。
我们当然可以把grub4dos的grldr和menu.lst放在其它的盘,但是,grldr.mbr会全盘搜索grldr,它首先会在活动的主分区搜索,搜到grldr后即停止而不会继续探索。所以把grldr放到别的盘并无意义。
解决的办法其实很简单:
从网上下载UltraEdit,有绿色破解版下载,百度或者谷歌一搜即得。
用UltraEdit打开grldr.mbr,点搜索-替换,勾选“查找ASCII”,其它的都不要勾选。在“查找什么”栏填入“grldr”,“替换为”填写你自己想要填写的名字,比如:“g0ldr"
这个自己取的名字有一个要点,原来的grldr为五个小写的英文字母,所以你所填写的新名字,可以是字母加数字的组合,但一定要是五个,不可多也不可少。否则会改变原文件的结构,从而导致失败。
改好后,点击“全部替换”,再点确认。点击保存或者另存为。
然后把grub4dos的grldr文件改名为g0ldr。
再用你修改过的grldr.mbr就可以引导g0ldr了,而对于grldr它会视而不见的。

grldr启动的时候会搜索menu.lst文件,再根据这个文件启动指定的操作系统。如果你不希望它找的是menu.lst文件,同样的办法可以用UltraEdit,打开grldr后,搜索menu.lst并替换为你想要替换的名字,比如:m0nu.lst

明白了以上的方法,我们可以进行多种发挥,比如,我们修改grldr.mbr,把里面的grldr修改为ntldr,然后用这个grldr.mbr,就可以全盘搜索ntldr,再通过ntldr引导启动xp系统。
我们把win7的引导文件bootmgr改名,改为五个字的,比如mtldr,修改grldr.mbr,同样的可以用grldr.mbr引导启动任意盘的win7系统。
附件
grub4dos-0.4.4-2009-06-20.zip
(809.5 KiB) 已下载 1809 次
Win7下引导Ubuntu10.04.zip
(121.29 KiB) 已下载 121 次
上次由 ziymin 在 2010-11-21 23:31,总共编辑 2 次。
头像
ziymin
帖子: 12
注册时间: 2009-11-04 13:34

Re: 能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04?

#2

帖子 ziymin » 2010-11-08 15:17

等高人来指点一下小弟,感谢在先! :em11
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53

Re: [求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04?

#3

帖子 onshoestring » 2010-11-08 15:50

重写一下mbr就行。

要详细的就
http://sourceforge.net/projects/bootinfoscript/文件先复制到桌面,终端运行:

代码: 全选

sudo bash ~/桌面/boot_info_script055.sh
把RESULTS.txt文件内容贴上来看看。
头像
ziymin
帖子: 12
注册时间: 2009-11-04 13:34

Re: [求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04?

#4

帖子 ziymin » 2010-11-08 17:57

onshoestring 写了:重写一下mbr就行。

要详细的就
http://sourceforge.net/projects/bootinfoscript/文件先复制到桌面,终端运行:

代码: 全选

sudo bash ~/桌面/boot_info_script055.sh
把RESULTS.txt文件内容贴上来看看。
问题就在于这个bootmgr如何写,小弟完全菜鸟0级,哎。。。。
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53

Re: [求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04?

#6

帖子 onshoestring » 2010-11-08 18:04

要重写win7的mbr。

用bcdedit添加启动项到grldr。
或用boot.ini添加启动项到grldr。

c:\要有grldr和menu.lst

menu.lst菜单内容如下:
title Ubuntu
find --set-root /boot/grub/core.img
kernel /boot/grub/core.img
boot
头像
ziymin
帖子: 12
注册时间: 2009-11-04 13:34

Re: [求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04?

#7

帖子 ziymin » 2010-11-09 9:16

onshoestring 写了:要重写win7的mbr。

用bcdedit添加启动项到grldr。
或用boot.ini添加启动项到grldr。

c:\要有grldr和menu.lst

menu.lst菜单内容如下:
title Ubuntu
find --set-root /boot/grub/core.img
kernel /boot/grub/core.img
boot
非常感谢onshoestring大哥,刚上班,回去再试下!
头像
ziymin
帖子: 12
注册时间: 2009-11-04 13:34

Re: [求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04? 已解决

#8

帖子 ziymin » 2010-11-21 23:32

恭喜一下,又有收获了,哈哈 :em04
pcexp
帖子: 37
注册时间: 2010-02-16 23:36

Re: [求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04? 已解决

#9

帖子 pcexp » 2010-11-22 16:10

谢了 我也需要这东西
头像
sahuang123
帖子: 51
注册时间: 2010-10-10 4:10

Re: [求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04? 已解决

#10

帖子 sahuang123 » 2010-11-23 22:51

我是安装时用了EasyBCD..
在选择安装引导时把引导安装到另一个分区里不装在C盘..这样安装好后到win7下运行EasyBCD添加一个ubuntu的启动项就好了..
ZM566
帖子: 34
注册时间: 2010-09-29 16:23

Re: [求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04? 已解决

#11

帖子 ZM566 » 2010-12-14 14:06

Mark
ZM566
帖子: 34
注册时间: 2010-09-29 16:23

Re: [求助]能否用windows7的bootmgr来引导grub4dos启动ubuntu10.04? 已解决

#12

帖子 ZM566 » 2010-12-14 22:26

今天终于成功使用Bootmgr 引导Grub2 启动Ubuntu了,不是wubi 安装的,是将Ubuntu 安装到了一个独立分区,借助wubi 的一些文件完成的。拷贝wubi 的三个关键文件:wubildr 、wubildr.mbr 和wubildr.cfg 以及Ubuntu 分区的grub 目录里的grub.cfg 文件到Windows 分区(活动的主分区)的根目录之下,修改wubildr.cfg ,删除有"/ubuntu/winboot/root.disk"的语句,并将"set root(loop0)"改成"set root(hd0,2)",((hd0,2)是我的Ubuntu 的分区),其他涉及root.disk 或者swap.disk 的语句全都可以删掉,保留一下内容即可:

set show_panic_message=true

set root=(hd0,2)
if [ -e /boot/grub/grub.cfg ]; then
if configfile /boot/grub/grub.cfg; then
set show_panic_message=false
fi
else
if [ -e /grub/grub.cfg ]; then
if configfile /grub/grub.cfg; then
set show_panic_message=false
fi
fi
fi

if [ ${show_panic_message} = true ]; then
echo "It is not possible to boot from the Ubuntu image."
echo "Please verify that the Ubuntu installation was not removed."
echo "If that is not the case, please check that the Windows filesystem"
echo "is not corrupted: reboot into Windows and run: chkdsk /r"
echo "Then try again."
fi

修改完wubildr.cfg 之后,修改BCD就行了,比如使用bcdedit 命令添加Ubuntu 引导项:


bcdedit /store X:\boot\bcd /create {45c374b2-8460-11df-8950-0024814b7667} /d "Ubuntu 10.10" /application bootsector
bcdedit /store X:\boot\bcd /set {45c374b2-8460-11df-8950-0024814b7667} device boot
bcdedit /store X:\boot\bcd /set {45c374b2-8460-11df-8950-0024814b7667} path \wubildr.mbr
bcdedit /store X:\boot\bcd /displayorder {45c374b2-8460-11df-8950-0024814b7667} /addfirst

X为Windows分区的盘符。
修改完这两个文件就OK了,启动计算机,出现Bootmgr 引导项选择菜单,选择Ubuntu 10.10 ,进入Grub2 引导菜单,选择Ubuntu 即可进入Ubuntu 。
回复