无法用grub2引导逻辑分区上的windows 7

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53

Re: 无法用grub2引导逻辑分区上的windows 7

#16

帖子 onshoestring » 2010-02-08 16:42

tiyuanmaster 写了:
david678 写了:按照7楼提供的想法,我试验了一下,不行啊。
在grub2选择xp后依然有两个选择菜单,xp和win 7
在grub2选择win7也有两个选择菜单,xp和win 7


7楼提供的想法如下:
win7的引导文件包括bootmgr和boot整个文件夹。
先把 bootmgr 和 boot目录复制到win7系统盘下,再进入win7,假设win7系统盘盘符为D:

bcdedit /store D:\boot\bcd /set {bootmgr} device partition=D:

再用
bootsect /nt60 D:
写引导代码。


我在xp用easybcd把win 7 启动项删除后,当在grub2选择"启动 Windows 7"就直接进入xp,这样一来两个grub选项(一个winxp,一个win 7)就执行同样的命令,有没有办法选择“启动winxp”就进入xp,选择“启动 win 7”就进入win7?
按照我说的方法,选择xp后是会有xp和win 7两个选择菜单的,因为此时xp分区的引导扇区实际上还是win7写入的引导内容,如ls说的用bootsect /nt52 c:之后就可以将xp分区的引导扇区内容恢复成与ntldr兼容的,这样应该就不会让你再选择而直接进入xp了。

不要把bcd中的win7项删除,而是删除xp那项,这样可能就能够直接进入win7了。你的grub.cfg中的win7项实际上是要通过先加载win7所在的逻辑分区的引导扇区继而再加载bootmgr从而进入win7系统,但我不确定所加载的bootmgr文件应当放在主分区还是win7所在的逻辑分区,所以才建议你复制,不过你可以尝试把bootmgr只放在一个分区里,xp或win7分区,反正你还有linux可以进去,剪切了可以再放回去,假如还不能,请把错误信息提示说明。 :em06
呵呵肯定你没这样做过,复制bootmgr,/boot改过bcd,bootsect /nt60 d:,bootsect /nt52 c:
结果是能进xp,进不去win7,没有错误信息,就是黑屏。
上次由 onshoestring 在 2010-02-08 16:57,总共编辑 1 次。
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53

Re: 无法用grub2引导逻辑分区上的windows 7

#17

帖子 onshoestring » 2010-02-08 16:44

smallapple 写了:忽然发现一个很奇怪的现象,grub2 的chainloader +1 不能引导第一 逻辑分区(hd05)上的bootmgr ,但(hd0,6)bootmgr上的就没问题。
用grub4dos的chainloader +1就都可以。

不知哪个高手能解释下?
:em20 小苹果还要找高手?
小苹果,我记得你是单装的win7吧,没有xp win7双系统?
为什么你们不用bean的grub呢,很方便用。
gurb2看来要bean,billbear,6pt来试试了。
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: 无法用grub2引导逻辑分区上的windows 7

#18

帖子 smallapple » 2010-02-08 16:58

onshoestring 写了:
smallapple 写了:忽然发现一个很奇怪的现象,grub2 的chainloader +1 不能引导第一 逻辑分区(hd05)上的bootmgr ,但(hd0,6)bootmgr上的就没问题。
用grub4dos的chainloader +1就都可以。

不知哪个高手能解释下?
:em20 小苹果还要找高手?
小苹果,我记得你是单装的win7吧,没有xp win7双系统?
看来要bean,billbear,6pt来试试了。
我把bootmgr 和 boot目录剪下,分别放在D盘和E盘,然后 bootsect /nt60 D: 和 bootsect /nt60 E: 再修改D盘和E盘的bcd,用grub2的
set root=hd0,5
chainloader +1
出现bootmgr is missing
set root=hd0,6
chaniloader +1
正常进入win7
用grub4dos启动用
root (hd0,4)
chainloader +1
和root (hd0,5)
chainloader +1
都可以进入win7
用bootlace.com在/sda5写入grldr引导代码,用grub2的chainloader +1 直接黑屏。
怀疑grub2的chainloader +1不能加载第一逻辑分区的引导代码。不知道加载到什么地方的信息了。
没第三个windwos的逻辑分区,不知道第三个逻辑分区能引导不。

以前是用grub4dos引导第一逻辑分区的win7,一直很正常,不晓得grub2的有这毛病。 :em02
david678
帖子: 23
注册时间: 2010-02-04 10:21

Re: 无法用grub2引导逻辑分区上的windows 7

#19

帖子 david678 » 2010-02-08 17:03

小苹果在7楼提供的方法和onshoestring在10楼的补充我试了,还没看到小苹果在13楼的改正,后来就进入不了win7. :em06
后来尝试了onshoestring提供的bean的burg,觉得不错,就没有验证小苹果在13的改正的信息。
不过还是建议大家使用bean提供的burg,这样会比较好。 :em01
不过bean提供的burg的方法怎样用jpg格式修改启动时的背景?
头像
tiyuanmaster
帖子: 73
注册时间: 2009-06-14 20:14
联系:

Re: 无法用grub2引导逻辑分区上的windows 7

#20

帖子 tiyuanmaster » 2010-02-08 17:42

smallapple 写了:我把bootmgr 和 boot目录剪下,分别放在D盘和E盘,然后 bootsect /nt60 D: 和 bootsect /nt60 E: 再修改D盘和E盘的bcd,用grub2的
set root=hd0,5
chainloader +1
出现bootmgr is missing
set root=hd0,6
chaniloader +1
正常进入win7
用grub4dos启动用
root (hd0,4)
chainloader +1
和root (hd0,5)
chainloader +1
都可以进入win7
用bootlace.com在/sda5写入grldr引导代码,用grub2的chainloader +1 直接黑屏。
怀疑grub2的chainloader +1不能加载第一逻辑分区的引导代码。不知道加载到什么地方的信息了。
没第三个windwos的逻辑分区,不知道第三个逻辑分区能引导不。

以前是用grub4dos引导第一逻辑分区的win7,一直很正常,不晓得grub2的有这毛病。 :em02
win7没有试过,不过我试过xp,也是用grub2,因为windows下对逻辑分区正常格式化后都会自动写入引导代码,所以我没有用bootsect再写入,

set root=(hd0,5)
chainloader +1
正常进入xp系统
set root=(hd0,6)
chainloader +1
正常进入xp系统

我的xp是在(hd0,1)中而且我的(hd0,5),(hd0,6)下没有任何ntldr等引导文件,文件都在(hd0,0)中,据此推测,从xp逻辑分区引导系统会到主分区去寻找ntldr而不是在本分区根目录。
但win7却能从(hd0,6)根目录查找bootmgr来引导系统,不知是因为win7本身的不同,还是使用了bootsect命令使得原来逻辑分区原来的引导扇区内容发生了改变。可惜我的电脑有win7但是没有逻辑分区,无法实验 :em06
其实我是不懂装懂的…………………………
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53

Re: 无法用grub2引导逻辑分区上的windows 7

#21

帖子 onshoestring » 2010-02-08 18:23

tiyuanmaster 写了:
smallapple 写了:我把bootmgr 和 boot目录剪下,分别放在D盘和E盘,然后 bootsect /nt60 D: 和 bootsect /nt60 E: 再修改D盘和E盘的bcd,用grub2的
set root=hd0,5
chainloader +1
出现bootmgr is missing
set root=hd0,6
chaniloader +1
正常进入win7
用grub4dos启动用
root (hd0,4)
chainloader +1
和root (hd0,5)
chainloader +1
都可以进入win7
用bootlace.com在/sda5写入grldr引导代码,用grub2的chainloader +1 直接黑屏。
怀疑grub2的chainloader +1不能加载第一逻辑分区的引导代码。不知道加载到什么地方的信息了。
没第三个windwos的逻辑分区,不知道第三个逻辑分区能引导不。

以前是用grub4dos引导第一逻辑分区的win7,一直很正常,不晓得grub2的有这毛病。 :em02
win7没有试过,不过我试过xp,也是用grub2,因为windows下对逻辑分区正常格式化后都会自动写入引导代码,所以我没有用bootsect再写入,

set root=(hd0,5)
chainloader +1
正常进入xp系统
set root=(hd0,6)
chainloader +1
正常进入xp系统

我的xp是在(hd0,1)中而且我的(hd0,5),(hd0,6)下没有任何ntldr等引导文件,文件都在(hd0,0)中,据此推测,从xp逻辑分区引导系统会到主分区去寻找ntldr而不是在本分区根目录。
但win7却能从(hd0,6)根目录查找bootmgr来引导系统,不知是因为win7本身的不同,还是使用了bootsect命令使得原来逻辑分区原来的引导扇区内容发生了改变。可惜我的电脑有win7但是没有逻辑分区,无法实验 :em06
如果是正常安装的话:bootmgr只会在激活的主分区,不可能在逻辑分区。
头像
tiyuanmaster
帖子: 73
注册时间: 2009-06-14 20:14
联系:

Re: 无法用grub2引导逻辑分区上的windows 7

#22

帖子 tiyuanmaster » 2010-02-08 18:43

onshoestring 写了:如果是正常安装的话:bootmgr只会在激活的主分区,不可能在逻辑分区。
呵呵,正常安装的话是这样的,不过这不是要测试通过chainloader逻辑分区来启动win7吗?
这样就有必要知道需不需要将bootmgr和boot文件夹移动到逻辑分区下,反正xp是不需要移动ntldr的
其实我是不懂装懂的…………………………
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: 无法用grub2引导逻辑分区上的windows 7

#23

帖子 smallapple » 2010-02-08 21:12

找到问题所在了。
grub2不能兼容用bootsect /nt60写入的代码,用chainloder +1 后只会寻找主活动分区,再引导 bootmgr,
如果分区是用经win7格过的,其引导代码可以由grub2用chainloader +1引导。也就是说如果安装win7时,在安装的逻辑分区选择格式化再安装的,直接把主分区上的 bootmgr 和 boot目录移动到安装win7的逻辑分区,就可以由grub2引导逻辑分区上的win7,由新版本的gparted 格出的 ntfs 格式也可以由grub2用chainloader +1引导bootmgr的。
如果是由其他第三方分区工具格式化的后安装的,再用bootsect /nt60 写入引导,就不能引导逻辑分区下的bootmgr。

bootrec /fixboot 也不能支持写入逻辑分区的引导代码。
头像
tiyuanmaster
帖子: 73
注册时间: 2009-06-14 20:14
联系:

Re: 无法用grub2引导逻辑分区上的windows 7

#24

帖子 tiyuanmaster » 2010-02-09 10:01

smallapple 写了:找到问题所在了。
grub2不能兼容用bootsect /nt60写入的代码,用chainloder +1 后只会寻找主活动分区,再引导 bootmgr,
如果分区是用经win7格过的,其引导代码可以由grub2用chainloader +1引导。也就是说如果安装win7时,在安装的逻辑分区选择格式化再安装的,直接把主分区上的 bootmgr 和 boot目录移动到安装win7的逻辑分区,就可以由grub2引导逻辑分区上的win7,由新版本的gparted 格出的 ntfs 格式也可以由grub2用chainloader +1引导bootmgr的。
如果是由其他第三方分区工具格式化的后安装的,再用bootsect /nt60 写入引导,就不能引导逻辑分区下的bootmgr。

bootrec /fixboot 也不能支持写入逻辑分区的引导代码。
不知smallapple试验过没有?还是只是推测?但是我在只有xp和9.10的系统上试验过,xp装在了第一个主分区(hd0,1),此外还有(hd0,5),(hd0,6)两个逻辑分区,逻辑分区里没有任何引导文件和系统文件
直接
root (hd0,5)
chainloader +1
或者
root (hd0,6)
chainloader +1
都能成功进入xp系统
据此推测win7系统,从正常格式化的逻辑分区引导系统而并不需要把bootmgr等文件拷贝到逻辑分区下,而是保留在主活动分区下就能从逻辑分区引导进入系统。
以上只是我根据xp的经验的推测,没有在win7情况验证过,如果小苹果试验过不是这样的那就是我错了,呵呵…………
其实我是不懂装懂的…………………………
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: 无法用grub2引导逻辑分区上的windows 7

#25

帖子 smallapple » 2010-02-09 10:21

tiyuanmaster 写了:
smallapple 写了:找到问题所在了。
grub2不能兼容用bootsect /nt60写入的代码,用chainloder +1 后只会寻找主活动分区,再引导 bootmgr,
如果分区是用经win7格过的,其引导代码可以由grub2用chainloader +1引导。也就是说如果安装win7时,在安装的逻辑分区选择格式化再安装的,直接把主分区上的 bootmgr 和 boot目录移动到安装win7的逻辑分区,就可以由grub2引导逻辑分区上的win7,由新版本的gparted 格出的 ntfs 格式也可以由grub2用chainloader +1引导bootmgr的。
如果是由其他第三方分区工具格式化的后安装的,再用bootsect /nt60 写入引导,就不能引导逻辑分区下的bootmgr。

bootrec /fixboot 也不能支持写入逻辑分区的引导代码。
不知smallapple试验过没有?还是只是推测?但是我在只有xp和9.10的系统上试验过,xp装在了第一个主分区(hd0,1),此外还有(hd0,5),(hd0,6)两个逻辑分区,逻辑分区里没有任何引导文件和系统文件
直接
root (hd0,5)
chainloader +1
或者
root (hd0,6)
chainloader +1
都能成功进入xp系统
据此推测win7系统,从正常格式化的逻辑分区引导系统而并不需要把bootmgr等文件拷贝到逻辑分区下,而是保留在主活动分区下就能从逻辑分区引导进入系统。
以上只是我根据xp的经验的推测,没有在win7情况验证过,如果小苹果试验过不是这样的那就是我错了,呵呵…………
如果引导放在主活动分区,那就不必折腾用逻辑分区引导的问题。那纯属没事找事型的。

要用逻辑分区引导win7的目的就是要把双系统中的xp和win7引导分开,分别用grub菜单引导。用win7格过的分区的引导代码,是win7兼容格式的,用grub2可直接引导当前分区下的bootmgr,用bootsect 写入的引导代码是xp兼容格式的,只会去寻找主活动分区。
你要有疑问,自己格个分区,再用grub2试试就知道了。

如果不能把双系统的win7引导分开,直接修改主分区的引导为xp,用逻辑分区引导win7就不成功,你可以再看看16楼的结果。
xbzzs
帖子: 1
注册时间: 2009-04-05 18:30

Re: 无法用grub2引导逻辑分区上的windows 7

#26

帖子 xbzzs » 2010-04-19 15:36

smallapple 写了:
tiyuanmaster 写了:
smallapple 写了:找到问题所在了。
grub2不能兼容用bootsect /nt60写入的代码,用chainloder +1 后只会寻找主活动分区,再引导 bootmgr,
如果分区是用经win7格过的,其引导代码可以由grub2用chainloader +1引导。也就是说如果安装win7时,在安装的逻辑分区选择格式化再安装的,直接把主分区上的 bootmgr 和 boot目录移动到安装win7的逻辑分区,就可以由grub2引导逻辑分区上的win7,由新版本的gparted 格出的 ntfs 格式也可以由grub2用chainloader +1引导bootmgr的。
如果是由其他第三方分区工具格式化的后安装的,再用bootsect /nt60 写入引导,就不能引导逻辑分区下的bootmgr。

bootrec /fixboot 也不能支持写入逻辑分区的引导代码。
不知smallapple试验过没有?还是只是推测?但是我在只有xp和9.10的系统上试验过,xp装在了第一个主分区(hd0,1),此外还有(hd0,5),(hd0,6)两个逻辑分区,逻辑分区里没有任何引导文件和系统文件
直接
root (hd0,5)
chainloader +1
或者
root (hd0,6)
chainloader +1
都能成功进入xp系统
据此推测win7系统,从正常格式化的逻辑分区引导系统而并不需要把bootmgr等文件拷贝到逻辑分区下,而是保留在主活动分区下就能从逻辑分区引导进入系统。
以上只是我根据xp的经验的推测,没有在win7情况验证过,如果小苹果试验过不是这样的那就是我错了,呵呵…………
如果引导放在主活动分区,那就不必折腾用逻辑分区引导的问题。那纯属没事找事型的。

要用逻辑分区引导win7的目的就是要把双系统中的xp和win7引导分开,分别用grub菜单引导。用win7格过的分区的引导代码,是win7兼容格式的,用grub2可直接引导当前分区下的bootmgr,用bootsect 写入的引导代码是xp兼容格式的,只会去寻找主活动分区。
你要有疑问,自己格个分区,再用grub2试试就知道了。

如果不能把双系统的win7引导分开,直接修改主分区的引导为xp,用逻辑分区引导win7就不成功,你可以再看看16楼的结果。
用你的方法一次性成功了~~~我是这么改的,分享下详细过程
我的C盘xp,D盘win7,还有个Ubuntu9.10
1.win7的引导文件包括bootmgr和boot整个文件夹。
先把 bootmgr 和 boot目录复制到win7系统盘下,再进入win7,假设win7系统盘盘符为D:

2.以管理员身份运行cmd
运行
bcdedit /store D:\boot\bcd /set {bootmgr} device partition=D:

然后用easyboot打开D:\boot\bcd 删除win7启动菜单中xp项

3.再用
bootsect /nt60 D:
写引导代码。

4.
bootsect /nt52 C:
修复xp的启动

5.编辑grub2的grub.cfg,添加

menuentry "boot windows xp" {
insmod ntfs
root (hd0,1)
chainloader +1
}

menuentry "boot Windows 7" {
insmod ntfs
root (hd0,2)
chainloader +1
}
头像
peachcolor
帖子: 898
注册时间: 2006-05-20 14:03

Re: 无法用grub2引导逻辑分区上的windows 7

#27

帖子 peachcolor » 2010-04-19 16:26

纠结贴 :em20
头像
sddzcuigc
帖子: 55
注册时间: 2009-03-08 12:24

Re: 无法用grub2引导逻辑分区上的windows 7

#28

帖子 sddzcuigc » 2011-03-23 9:51

我正好要用grub2引导逻辑分区的Win7,看了以上文字后,我补充几个问题:
条件:先安装XP、再装Win7、再装Ubuntu9.10以后版本(grub2引导的linux系统),分区软件Acronics
主分区C:XP
逻辑一区:D:Win7
逻辑二区:Linux
逻辑三区:Swap
现象:
1、法一:由于全部由光盘安装,安装完grub2后可以识别win7 loader,win7 loader里面有xp 和Win7,这样是二级菜单,此时用Grub2引导ubuntu和win7 loader(nt6.0 loader);法二:此时也可以选择进入Win7,用easybcd重建MBR,即把Win7引导方式写入MBR,覆盖掉原GRUB2,然后用easybcd重新添加linux grub启动项,将ubuntu找回来,此时是用Win7的nt6.0 loader单级菜单引导三系统(xp win7 grub/grub2)。
2、按法一:将C盘的Boot文件夹及bootmgr等复制到D盘,恢复C盘boot.ini文件,删除C盘Boot文件夹及bootmgr等,在linux下执行update-grub后识别三者菜单,重启后grub2可以顺利引导XP、Ubuntu,但是进入Win7时显示a disk read error accured错误。(此时我怀疑是逻辑分区导致的问题)
3、按法一:用Acronics转换第一逻辑分区为主分区,启动时grub无法引导,显示unknown file system,//
按法二:若此时,不用grub2引导,而是用Win7自身的nt6.0 loader引导三系统,后果是将要进入到Win7桌面后黑屏,显示Win7不是正版,但是可以启动任务管理器,无法运行任何桌面相关进程。(我考虑到是分区软件的先天不足,于是更换DiskGenius)
4、按法一:DiskGenius转换第一逻辑分区为主分区,启动时grub无法引导,显示unknown file system,//
按法二:若此时,不用grub2引导,而是用win7自身的nt6.0 loader引导三系统,成功进入Win7。

综3、4说明,grub2不识别转换主分区后的系统分区。Acronics进行的转化方式,如写逻辑区引导或主分区引导的方式与DiskGenius有区别。
上次由 sddzcuigc 在 2011-03-23 10:42,总共编辑 1 次。
我的QQ是553052416花月痕,欢迎加我为好友,一起解决问题。或者一起打KOF。
头像
sddzcuigc
帖子: 55
注册时间: 2009-03-08 12:24

Re: 无法用grub2引导逻辑分区上的windows 7

#29

帖子 sddzcuigc » 2011-03-23 10:14

smallapple 写了:找到问题所在了。
grub2不能兼容用bootsect /nt60写入的代码,用chainloder +1 后只会寻找主活动分区,再引导 bootmgr,
如果分区是用经win7格过的,其引导代码可以由grub2用chainloader +1引导。也就是说如果安装win7时,在安装的逻辑分区选择格式化再安装的,直接把主分区上的 bootmgr 和 boot目录移动到安装win7的逻辑分区,就可以由grub2引导逻辑分区上的win7,由新版本的gparted 格出的 ntfs 格式也可以由grub2用chainloader +1引导bootmgr的。
如果是由其他第三方分区工具格式化的后安装的,再用bootsect /nt60 写入引导,就不能引导逻辑分区下的bootmgr。

bootrec /fixboot 也不能支持写入逻辑分区的引导代码。

如果第三方软件格式化后,都不可以的话,那么应该怎样修复呢???找找有没有办法吧,小苹果。
我的QQ是553052416花月痕,欢迎加我为好友,一起解决问题。或者一起打KOF。
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: 无法用grub2引导逻辑分区上的windows 7

#30

帖子 smallapple » 2011-03-23 10:28

sddzcuigc 写了:
smallapple 写了:找到问题所在了。
grub2不能兼容用bootsect /nt60写入的代码,用chainloder +1 后只会寻找主活动分区,再引导 bootmgr,
如果分区是用经win7格过的,其引导代码可以由grub2用chainloader +1引导。也就是说如果安装win7时,在安装的逻辑分区选择格式化再安装的,直接把主分区上的 bootmgr 和 boot目录移动到安装win7的逻辑分区,就可以由grub2引导逻辑分区上的win7,由新版本的gparted 格出的 ntfs 格式也可以由grub2用chainloader +1引导bootmgr的。
如果是由其他第三方分区工具格式化的后安装的,再用bootsect /nt60 写入引导,就不能引导逻辑分区下的bootmgr。

bootrec /fixboot 也不能支持写入逻辑分区的引导代码。

如果第三方软件格式化后,都不可以的话,那么应该怎样修复呢???找找有没有办法吧,小苹果。
我只发现用win7格式化的或用win7的 bootrec /fixboot 写入引导扇区的或用 gparted 格式出来的ntfs 格式分区可以直接当前逻辑分区的bootmgr,如果不支持,可以改用 burg 引导,或用 grub2引导进 grub4dos再chainloader /bootmgr 进入引导。
如果使用软激的,改由逻辑分区引导会让软激失效。
回复