win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明 图已修复

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
sukader
帖子: 31
注册时间: 2009-08-31 13:44

win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明 图已修复

#1

帖子 sukader » 2009-09-01 12:31

论坛的朋友们大家好,我是个ubuntu新手,最近两天一直折腾win7(我的win7是oem7600软件破解的win7loader3.0)和ubuntu的双系统,小有感触,写下来与大家分享,时间伧俗啊,不准确不对的地方还是恳请大家拍我啊,呵呵,回归主题吧 :)
***************** 初衷和目的********************
初衷:关于双系统引导的帖子和主题已经不少了,我的做法也是跟着各种论坛做的,但是总是有各种各样的问题,由于各种方法说明的不是很详细,对其中的碰到的问题解释不太多,我根据自己碰到的情况写下这篇文章,希望对刚接触linux的朋友安装系统理解linux和win的启动过程还有要装win7和ubuntu的朋友有点帮助我就心满意足了 :)
目的:简单介绍下系统启动和相关的知识,最重要的事要实现方便简捷并且利于日后维护的启动菜单(方便就是开机就显示各个系统可以直接进入,日后维护就是如果哪个系统down了,可以还原并且不影响另一个系统)。
******************基础性知识和安装注意事项***********
1.线说下计算机启动过程吧:开电源=>BIOS=>MBR=>相应的引导程序=>引导系统=>进入系统。(说明下MBR是重要的硬盘区域保持着硬盘的分区状态还有引导程序的信息,通过mbr中的信息选择相应的启动程序来引导系统,明白这个会比较好理解下面的过程)
2.win的启动和linux的引导:win是强制把自己的引导程序安装在MBR的,linux的引导现在主流是grub,grub可以选择安装在mbr,也可以选择安装在/boot,当然也可以选择不安装。
3.win与linux的安装顺序:再次我强烈建议先安装win在安装linux,并且把grub安装在linux的分区。理由是这样的如果先安装linux然后安装win会强制把自己的引导安装到mbr,消除里面的信息从而导致不能启动linux,虽然这样有方法解决引导问题但是却不利于日后的维护,比如那一天windows倒了,我们在安装win的时候还是会把引导装到mbr,这样我们再设置不是很累吗,索性一劳永逸一步代位比较好。于是我们选择先安装win在安装linux,并把自己的grub安装在一个地方(不是MBR的地方,这个地方在安装linux的时候会有选项,通常是在硬盘分区后或者高级选项里,很重要),(再有就是用Ghost恢复win到c盘的时候不能把win的引导装入mbr,这也是不吧linux的grub装入mbr的一个重要理由)。
****************** ** 安装过程和相关解释讨论***************
于是我们选择这样的安装顺序:
1。先安装win7在c盘(hd0,0),并给linux分出一定的空间,注意要把linux的预留分区去除在windows扩展分区之外(这个问题不明白自己找吧)
2.ubuntu(grub安装在/boot)
3.在win7中下载grub4dos ,并把grldr和grldr.mbr复制到c盘根目录,新建boot.ini 加入c:\grldr.mbr="Ubuntu 9.04"(xp是不用加引号的vista和w7必须加,论坛提供的方式是这样的,我开始也是这么做的,但是经过一份斗争和来回捣鼓我明白了很多东西,那么具体这样做的好不好,方便不方便能不能改进,我们下面讨论)
到这里一般情况下可以实现双重启动了(起码大部分论坛是这样写的,之后也没有介绍相应的问题和具体的工作方式,虽然我没有证实过这一点),但是我偏偏不幸,像以上这样操作后,我可以进入ubuntu系统,对于windows虽然可以显示,但是进入不了,这让我不得不研究一下win7启动,grub4dos的启动还有ubuntu的启动逻辑关系是怎么样的,怎么才能协调好他们,如何配置他们,这些研究让我算是较明白直接的关系了(仅对我这种情况,别的情况我也有自信解决 :) 装下b吧 )
*******************引导菜单直接的相互引导和解释(最后给出配置方案)*****************
按照我们这样的安装方式,我们会得到下面的引导关系图,或者说是开机后的引导菜单画面,如下:
图片
较详细解释:
系统经过BIOS后读取mbr的信息从而进入c:寻找引导程序,这里图1显示的图是在C:添加menu.lst文件后的图
(注解:如果没有添加menu.lst这个文件,其实我们之前就没有添加,这样会有一个问题我们下面说,就会显示如下信息
find /menu.lst
find /boot/grub
find /grub
conmandline
reboot
halt ) ******* 这个信息就是我们移动grub4dos的grldr和grldr.mbr后系统引导的第一个画面
然后我们选择第一个会进入可以进入图3所示的画面,然后选择ubuntu可以进入系统,但是我们选择win7的时候就会又回到上面的这个画面,陷入死循环无法进入win7, (win7通常还是被引导程序认成是vista,只有win的引导不会,这里就是个意思不必深究具体显示什么 :) )
为了解决这个问题和寻找更方便的启动菜单,我研究了下 c:盘下的 boot.ini 和menu.lst 还有linux中/boot/grub下的menu.lst,于是得到了上面的这个图,上面的图也有相互关系和过程说明,可以参考看下,看了之后就明白怎么回事了。
*************************最后解决方案********************
到了这里我决心要实现这样的启动方式:开机显示菜单点什么就进什么,于是乎我开始对上面说的三个文件开刀了,针对这三个文件分别这样处理:
1.对于c:/menu.lst : 在c:根目录下建立menu.lst 里面加入要显示的内容(我简单写了),这里完全可以根据自己的需要选择,比如只选择win7和ubuntu9.04的title 灵活性很强 大家可以自己玩 呵呵 :)

default 0
timeout 3

title Windows 7 (boot loader)
root (hd0,0)
chainloader /bootmgr

title Ubuntu 9.04, kernel 2.6.28-15-generic
uuid 831ea729-653b-4a12-ad18-2f08792c0880
kernel /boot/vmlinuz-2.6.28-15-generic root=UUID=831ea729-653b-4a12-ad18-2f08792c0880 ro quiet splash
initrd /boot/initrd.img-2.6.28-15-generic
quiet

title Ubuntu 9.04, kernel 2.6.28-15-generic (recovery mode)
uuid 831ea729-653b-4a12-ad18-2f08792c0880
kernel /boot/vmlinuz-2.6.28-15-generic root=UUID=831ea729-653b-4a12-ad18-2f08792c0880 ro single
initrd /boot/initrd.img-2.6.28-15-generic

title Ubuntu 9.04, kernel 2.6.28-11-generic
uuid 831ea729-653b-4a12-ad18-2f08792c0880
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=831ea729-653b-4a12-ad18-2f08792c0880 ro quiet splash
initrd /boot/initrd.img-2.6.28-11-generic
quiet

title Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
uuid 831ea729-653b-4a12-ad18-2f08792c0880
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=831ea729-653b-4a12-ad18-2f08792c0880 ro single
initrd /boot/initrd.img-2.6.28-11-generic

title Ubuntu 9.04, memtest86+
uuid 831ea729-653b-4a12-ad18-2f08792c0880
kernel /boot/memtest86+.bin
quiet
2.对于c:/boot.ini : 其实我们可以发现这个文件完全没必要,它只是个中间环节,我们要实现的是直接进入系统,所以这个文件没用,删掉。
3.对于ubuntu中/boot/grub/menu.lst :
说实话对于c盘根目录下的那个menu.lst我完全是根据ubuntu下的grub写的,至于这里怎么写其实都不重要了,因为我们根本到不了这个画面,有兴趣的可以看看/grub中的menu文件很有意思的,可以明白很多东西。
注:
1.以上方式是比较简单的,虽然文章写的比较长,但是真实实际操作其实非常简单,我只是想尽量把这个过程说明白而已。
2.其实grub4dos这个程序可以认出linux和win,我们就是利用这个简单的配置直接实现引导的,至于别的系统的引导和相应文件我们其实不必太关心。

写了这么多现在有点晕 也不知道说清楚了没有啊 :em06 呵呵 就当个学习笔记吧!! 有问题欢迎大家来讨论 当然文中肯定有不准确甚至错误的地方 恳请大家批评指正 谢谢 :em11 :em11
第一次在论坛发这么大的帖子 还请大家留情啊 :em05
附件
图老挂,上传了个,欢迎打开看,呵呵 :)
图老挂,上传了个,欢迎打开看,呵呵 :)
上次由 sukader 在 2009-09-03 16:31,总共编辑 1 次。
头像
bbeikke
帖子: 880
注册时间: 2008-10-14 21:54

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明

#2

帖子 bbeikke » 2009-09-01 20:31

试试你的方法,其他的方法不是死循环,就是进不了win7
地狱可以想象,天堂却无法描述。
sukader
帖子: 31
注册时间: 2009-08-31 13:44

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明

#3

帖子 sukader » 2009-09-02 8:13

bbeikke 写了:试试你的方法,其他的方法不是死循环,就是进不了win7
其实我写的有点繁琐,重点不突出,其实我写这个文章的意思就是让大家明白这样一个关系就是
c:的menu.lst文件,c:的boot.ini文件还有/boot/grub的menu.lst文件之间的关系,这是最重要的,明白了这个配置就很容易了。 :em01
头像
bbeikke
帖子: 880
注册时间: 2008-10-14 21:54

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明

#4

帖子 bbeikke » 2009-09-02 10:39

sukader 写了:
bbeikke 写了:试试你的方法,其他的方法不是死循环,就是进不了win7
其实我写的有点繁琐,重点不突出,其实我写这个文章的意思就是让大家明白这样一个关系就是
c:的menu.lst文件,c:的boot.ini文件还有/boot/grub的menu.lst文件之间的关系,这是最重要的,明白了这个配置就很容易了。 :em01
用你的这个终于可以进win7系统了,其他的方法我是什么系统都进不去,
只是这样子进去也把win 7的软刷OEM破解破坏了 :em06
最后还是进live CD用ubuntu的grub引导的。
地狱可以想象,天堂却无法描述。
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明

#5

帖子 billbear » 2009-09-02 16:19

楼主没有交代一个重要细节,你的 win 7 是盗版的。 :)
你也还没明白其实这都是软改激活产生的冲突。你画的 图1 图2 图3,在正版系统上 图1 是不会出现的,图 2 是 boot.ini 产生的。你有了图1 了,当然 boot.ini 多余了。
楼主难道没有发现经过这么一折腾,你的 win7 已经不在激活态了么? :em04

我来写几句废话吧。关于软改对启动引导的改动
在正常 windows 7 里,启动分区的引导扇区里的代码寻找根目录下的 bootmgr
软改激活是在 grub4dos 里加入了 hack 代码重新编译的一个变种的 grub4dos,首先它改动启动分区引导扇区里寻找 bootmgr 的代码为寻找 grldr,这样系统控制权在一开始就被 grub4dos 得到;其次这个变种的 grldr 里编译了软改的命令 acpi;然后变种 grldr 的内置菜单被改为这样
title vista
acpi
find --set-root /bootmgr
chainloader /bootmgr
这就完成了先软改 bios 再把启动控制移交 bootmgr 的破解过程。

当你把真正的 grldr 拷贝到 c 盘覆盖掉那个变种后,软改即被破坏。系统引导一开始就进入 grub4dos,如果其他地方没有 menu.lst 的话,grub4dos 会自己找到并使用 Linux 分区下的 menu.lst,这就是你的 图1。

Linux 的 menu.lst 里引导 windows 的方法是把引导交给 windows 分区的引导扇区,即
root (hd0,0)
chainloader +1
而不是跳过引导扇区,直接 chainloader /bootmgr
很不幸,windows 分区的引导扇区已经被改动了,chainloader +1 只会再次引导 grub4dos,你就陷入循环中了。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明

#6

帖子 wangdu2002 » 2009-09-02 16:22

又跟熊哥学习一点引导知识。 :em11
虽然数年内没有安装win7的打算,但是先了解下不是坏事,几年后现在的主板坏掉了,总得换新机器的。 :em04
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
newiz
帖子: 186
注册时间: 2008-04-03 22:04

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明

#7

帖子 newiz » 2009-09-02 17:10

我还是喜欢先win后u 重装win的话 livecd 修复grub 的方式
并不复杂的
wyq29
帖子: 1
注册时间: 2009-08-23 14:42

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明

#8

帖子 wyq29 » 2009-09-02 20:56

5楼才是正解啊!!

楼主 也是 只知其一 不知其二啊。。。。。。。。。。。 不适应软刷bios激活的win7.。。。。。。。。。
sukader
帖子: 31
注册时间: 2009-08-31 13:44

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明

#9

帖子 sukader » 2009-09-03 16:13

谢谢大家提醒阿,确实忘了说这个事了, :em06

我下的是win7 oem7600版本的版本 用的是win7loader3.0激活的,这个到处都是很好用呵呵,用了一段时间了感觉win7还是挺好用的。

现在图是不是挂了? 我这现在没显示出来阿,这图我自己作的,分辨率很高阿 1200*700的,挂论坛上这么小,哎,论坛要不是连接能直接贴图就好了,很不方便阿 。。
sukader
帖子: 31
注册时间: 2009-08-31 13:44

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明

#10

帖子 sukader » 2009-09-03 16:18

bbeikke 写了:
sukader 写了:
bbeikke 写了:试试你的方法,其他的方法不是死循环,就是进不了win7
其实我写的有点繁琐,重点不突出,其实我写这个文章的意思就是让大家明白这样一个关系就是
c:的menu.lst文件,c:的boot.ini文件还有/boot/grub的menu.lst文件之间的关系,这是最重要的,明白了这个配置就很容易了。 :em01
用你的这个终于可以进win7系统了,其他的方法我是什么系统都进不去,
只是这样子进去也把win 7的软刷OEM破解破坏了 :em06
最后还是进live CD用ubuntu的grub引导的。
你也真能折腾,支持折腾,折腾致死 :em04
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明 图已修复

#11

帖子 hubert_star » 2009-09-03 17:06

这不是典型的盗版win7的grub载入biso的手段嘛

呵呵,等正版吧,据我的经验,用以前的方式同时引导win7和ubuntu应该没有问题,试过一次rc版,之后引导变化了没有不知道,不过除了企业用户,一般人也用不到那个什么lock吧,好像只有它才会引起冲突
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me
头像
Ney
帖子: 112
注册时间: 2009-09-13 19:23

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明 图已修复

#12

帖子 Ney » 2009-09-20 8:25

其实
我没有看懂 :em06
----------

代码: 全选

萝莉有三好:清音、柔体、易推倒;御姐有三好:啤酒、洗澡、吃嫩草;女王有三妙:木马、蜡烛、皮鞭操;人妻有三情:爱情、亲情、婚外情;
无口有三套:眼罩、绷带、表情少;御妹有三巧:乖巧、灵巧、推的巧;女僕有三件:猫耳、眼镜、蝴蝶结;护士有三色:白色、粉色、绿灯色;
老师有三事:教室、房事、坐莲式;学生有三要:不要、还要、毓婷药;兄贵有三招:夜袭、胸推、吃泡泡;正太有三宝:天真、可爱、皮肤好。
kaida
帖子: 60
注册时间: 2008-11-21 19:39

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明 图已修复

#13

帖子 kaida » 2009-09-20 9:04

其实,我也没有看懂.
bpke
帖子: 1
注册时间: 2008-12-02 20:42

Re: win7与ubuntu的启动菜单的较完美较详细解决方案 附较详细图解说明 图已修复

#15

帖子 bpke » 2009-09-28 10:00

安装 win7+ubuntu9.04 方法两步:
1,先安装完WIN7
2,然后再安装UBUNTU9.04
安装ubuntu时,
分3个区分别是:/
/home
/swap
安装完重启自然就会有引导选项了。哪还有楼主那么多麻烦事啊!

注意 win7+ubuntu9.10 此方法不行。
回复