当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : (待解决!)Easybcd原理及Add Entry的一些问题!(图不知怎么看不见)
帖子发表于 : 2011-03-25 14:29 
头像

注册: 2009-03-08 12:24
帖子: 55
送出感谢: 0 次
接收感谢: 0 次
原贴
viewtopic.php?f=139&t=256243&start=72
引导学习与测试
测试环境:Virtualbox4.04、系统盘XPCSDN原版ISO、Windows7_tiny7_rev1太阳鸟论坛修正版ISO、Ubuntu10.04LTS原版ISO、深山红叶PE工具箱V32经典版ISO、Easybcd2.02、Bootice7.8经典版、Bcdedit.exe(提取自Win7的/windows/system32目录)、bootsect.exe(提取自Easybcd的/bin目录)、bootrec.tar(包含bootrec.exe和bootrec.dll)、fixboot.exe(提取自Xp的安装盘)。
测试过程:
1、用Virtualbox创建20GB大小的新虚拟硬盘,光盘安装XP至虚拟硬盘,进入PE,用Acronics进行分区,主分区C:5GB、逻辑一区D:8GB、空白分区7GB,此时重启后,引导为Xp默认的nt52 loader即ntldr并写入MBR(主引导记录),同时,所有分区的boot sector(引导扇区)的类型,即PBR(分区引导记录)类型,都被默认写入ntldr类型。
2、光盘安装Win7至逻辑一区,此时,引导被Win7的nt60 loader即bootmgr接管,并写入MBR和主分区的PBR,即此时C盘的PBR类型为bootmgr,但未更改逻辑分区的PBR类型,即此时D盘的PBR类型仍为ntldr类型。重启后,nt60 loader会自动识别XP,并建立“以前版本的Windows”项菜单。
3、光盘并以默认方式安装Ubuntu至空白分区(即不进行任何配置修改,在这种情况下,Ubuntu会自动分为一个Ext4分区和一个Swap分区,grub2会被安装进MBR)。重启后,grub2会自动识别Win7的nt60 loader并建立该项菜单。
4、经过以上步骤,grub2可以成功生成以下引导菜单,并成功引导进入各系统。
grub2------Ubuntu
------nt60 loader(bootmgr)------nt52 loader(ntldr)------Xp
------Win7
5、此时,进入Win7,安装Easybcd,添加ubuntu的启动项,配置并保存BCD信息。注:添加完启动项后,一定要正常关闭Win7才能使启动项生效。为了不至于重复和循环,此处选择把Win7启动管理器bootmgr写入MBR,见图1 :em05 ,覆盖原来的grub2。
附件:
0重写MBR功能.png

附件:
4删除BCD及重建boot功能.png

附件:
9Gurb4dos启动项功能.png

6、经过以上步骤,bootmgr可以成功生成以下引导菜单,并成功引导进入各系统。
bootmgr------ntldr-----Xp
------Win7
------grub2------Ubuntu
------bootmgr------ntldr------Xp
------Win7
7、此时可以进入Ubuntu编辑掉grub2的多余启动项,生成单级启动菜单。
*8、测试,[color=#FF0000]未在Ubuntu环境中安装grub1情况下:进入Win7添加三个neo linux启动项,如下表,测试结果也如图示。
附件:
1依次用Add New Entry添加3个linux方式启动项.png

附件:
2添加后.png

附件:
3添加后view settings.png

附件:
0重启后.png

附件:
1未勾选.png

附件:
2勾选.png

附件:
3grub2的三引导菜单.png

然后通过第3项进入ubuntu卸载grub2及grub-pc,安装grub1,后两项均可成功引导进入ubuntu。问题(目前未解决中)是:
<1>、如果只有第3项可以进入Ubuntu的原因是因为:grub2还存在于linux分区,那为何grub2未成功卸载?
<2>、如果只有第3项可以进入Ubuntu的原因是因为:Easybcd建立了grub2引导,却为何只有grub2才能进入ubuntu,而同样由Easybcd建立的grub1却未成功引导进入ubuntu。如果是menu.lst的问题,那又应该怎样修改呢?
附件:
8grub1和grub2并存奇怪现象.png
[/color]

*9、测试尝试用grub1单级引导多系统:进入Ubuntu编辑menu.lst,加入xp及win7及ubuntu的启动信息如下
title Xp
root (hd0,0)
chainloader +1
boot

title Win7
root (hd0,4) //因为Win7在/dev/sda5分区,即E盘
chainloader +1
boot

title Linux
root (hd0,5)
kernel /vmlinuz root=/dev/sda6 ro
然后update-grub(不知道对于grub1这一步是否必须)。
1)重启后选择进入XP,直接回到bootmgr,原因很简单,因为C盘作为主分区,PBR已经改为bootmgr类型,ntldr已被bootmgr接管;进入PE,用bootice把XP的PBR改回ntldr,重启后,由ntldr引导进入XP。
2)选择进入Win7,提示A disk read error accured,因为Win7所在的E盘的PBR类型为ntldr;然后到XP下用bootice把E盘的PBR改为bootmgr,重启后,再次选择进入Win7,提示bootmgr is missing,原因是E盘没有boot文件夹和bootmgr文件;再次到XP下复制boot文件夹及bootmgr文件至E盘根目录,这下可以终于进入bootmgr并引导进入Win7了,进入Win7后用Easybcd备份一份BCD信息,进入Easybcd选择不显示bootmgr启动选择菜单,以便接下来MBR被grub1接管。
附件:
5用boot_info_script查看用Bootice修改E盘PBR前后对比.png

3)选择进入Ubuntu,启动正常,但不出现ubuntu的前期logo,整个启动过程是文字界面;在Ubuntu下运行grub install /dev/sda将grub1写入MBR。
重启后即得到由grub1引导的单级引导菜单。

*10、测试,在步骤9的“1)”中,弃用bootice,使用“WindowsXP故障处理器”中的fixboot.exe(这个文件居然无法提取出来),可以用fixboot.exe fix /N2命令重置Xp所在NTFS格式盘上的PBR为ntldr类型。在步骤9的“2)”中,弃用bootice,提取Easybcd/bin目录下的bootsect.exe及bcdedit.exe,可以用bootsect.exe /nt60 E: 命令将Win7所在分区的PBR改为bootmgr类型(注:这里也可以用bootsect.exe /nt52 C:重建XP所在分区的PBR为ntldr类型),用bcdedit.exe /store E:\boot\bcd /set {bootmgr} device partition=E: 命令,可以把bootmgr所在分区定义为E盘(但实际测试时,根本没必要这个命令,根本没碰到bcd被识别为在C:的情况,不知为何呀),然后就可以顺利进入Win7了。
附件:
6是否真正地更新了PBR类型.png

附件:
7Bootedit store前后对比.png

*11、测试,在grub1建立引导的基础上,升级为grub2。进入Ubuntu,apt-get install grub2,接着update-grub,接着grub-install /dev/sda,启动后无法进入Win7,显示"A disk read error occured",说明grub2无法引导逻辑一区上建立的Win7,验证了smallapple所说的现象。
附件:
install grub前后PBR对比.png

*12、测试,忽略步骤10,直接进行步骤11,也就是用bootice替代手工修改Win7分区的PBR,结果启动手可以顺利引导进入win7。通过步骤11和12的对比,说明bootice重建PBR和bootsect重建分区PBR是不等价的,bootice重建的PBR兼容性更好


_________________
我的QQ是553052416花月痕,欢迎加我为好友,一起解决问题。或者一起打KOF。


最后由 sddzcuigc 编辑于 2011-03-25 19:08,总共编辑了 3 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上Win7的解决方法-用bootice重建Win7分区PBR
帖子发表于 : 2011-03-25 15:41 
头像

注册: 2009-03-08 12:24
帖子: 55
送出感谢: 0 次
接收感谢: 0 次
然后通过第3项进入ubuntu卸载grub2及grub-pc,安装grub1,后两项均可成功引导进入ubuntu。问题(目前未解决中)是:
<1>、如果只有第3项可以进入Ubuntu的原因是因为:grub2还存在于linux分区,那为何grub2未成功卸载?
<2>、如果只有第3项可以进入Ubuntu的原因是因为:Easybcd建立了grub2引导,却为何只有grub2才能进入ubuntu,而同样由Easybcd建立的grub1却未成功引导进入ubuntu。如果是menu.lst的问题,那又应该怎样修改呢?


请高手帮助解答一下呀 :em01


_________________
我的QQ是553052416花月痕,欢迎加我为好友,一起解决问题。或者一起打KOF。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上Win7的解决方法-用bootice重建Win7分区PBR
帖子发表于 : 2011-03-25 15:49 
头像

注册: 2009-03-08 12:24
帖子: 55
送出感谢: 0 次
接收感谢: 0 次
问题其实可以概括为,能否通过easybcd引导进入没有安装grub/grub2的ubuntu系统呢?
同时又可以概括为,easybcd建立虚拟mbr文件的原理是什么呢?
所有的引导均为mbr-pbr-loader-os类型的吗,那么ubuntu分区的pbr是什么呢?


_________________
我的QQ是553052416花月痕,欢迎加我为好友,一起解决问题。或者一起打KOF。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上Win7的解决方法-用bootice重建Win7分区PBR(问题未解决中)
帖子发表于 : 2011-03-25 16:26 
头像

注册: 2009-03-08 12:24
帖子: 55
送出感谢: 0 次
接收感谢: 0 次
附件:
MBR.png
MBR.png [ 98.16 KiB | 被浏览 4260 次 ]



_________________
我的QQ是553052416花月痕,欢迎加我为好友,一起解决问题。或者一起打KOF。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译