(待解决!)Easybcd原理及Add Entry的一些问题!(图不知怎么看不见)

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
头像
sddzcuigc
帖子: 55
注册时间: 2009-03-08 12:24
送出感谢: 0
接收感谢: 0

(待解决!)Easybcd原理及Add Entry的一些问题!(图不知怎么看不见)

#1

帖子 sddzcuigc » 2011-03-25 14:29

原贴
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、测试,未在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][/b][/size]
*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兼容性更好
上次由 sddzcuigc 在 2011-03-25 19:08,总共编辑 3 次。
我的QQ是553052416花月痕,欢迎加我为好友,一起解决问题。或者一起打KOF。
头像
sddzcuigc
帖子: 55
注册时间: 2009-03-08 12:24
送出感谢: 0
接收感谢: 0

Re: 无法用grub2引导逻辑分区上Win7的解决方法-用bootice重建Win7分区PBR

#2

帖子 sddzcuigc » 2011-03-25 15:41

然后通过第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。
头像
sddzcuigc
帖子: 55
注册时间: 2009-03-08 12:24
送出感谢: 0
接收感谢: 0

Re: 无法用grub2引导逻辑分区上Win7的解决方法-用bootice重建Win7分区PBR

#3

帖子 sddzcuigc » 2011-03-25 15:49

问题其实可以概括为,能否通过easybcd引导进入没有安装grub/grub2的ubuntu系统呢?
同时又可以概括为,easybcd建立虚拟mbr文件的原理是什么呢?
所有的引导均为mbr-pbr-loader-os类型的吗,那么ubuntu分区的pbr是什么呢?
我的QQ是553052416花月痕,欢迎加我为好友,一起解决问题。或者一起打KOF。
头像
sddzcuigc
帖子: 55
注册时间: 2009-03-08 12:24
送出感谢: 0
接收感谢: 0

Re: 无法用grub2引导逻辑分区上Win7的解决方法-用bootice重建Win7分区PBR(问题未解决中)

#4

帖子 sddzcuigc » 2011-03-25 16:26

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

回到 “启动和引导”