当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 73 篇帖子 ]  前往页数 1, 2, 3, 4, 5  下一页
作者 内容
1 楼 
 文章标题 : 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-07 22:14 

注册: 2010-02-04 10:21
帖子: 23
送出感谢: 0 次
接收感谢: 0 次
各位大侠,帮我看下我这样为什么grub2无法引导逻辑分区上的windows 7
首先,主分区winxp;逻辑分区sda5为win 7,sda6为MAC OS X,sda7为linux的/boot,sda8为linux的swap,sda9为linux的/,sda10为veket;
经过修改的grub.cfg:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "启动 Windows XP" {
insmod ntfs
set root=(hd0,1)
chainloader +1
}
menuentry "启动 Window 7" {
insmod ntfs
set root=(hd0,5)
chainloader +1
}
menuentry "启动 MAC OS X" {
insmod hfsplus
set root=(hd0,6)
search --no-floppy --fs-uuid --set ffed24af195107a2
insmod vbe
do_resume=0
if [ /var/vm/sleepimage -nt10 / ]; then
if xnu_resume /var/vm/sleepimage; then
do_resume=1
fi
fi
if [ $do_resume == 0 ]; then
xnu_uuid ffed24af195107a2 uuid
if [ -f /Extra/DSDT.aml ]; then
acpi -e /Extra/DSDT.aml
fi
xnu_kernel /mach_kernel boot-uuid=${uuid} rd=*uuid
if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
xnu_mkext /System/Library/Extensions.mkext
else
xnu_kextdir /System/Library/Extensions
fi
if [ -f /Extra/Extensions.mkext ]; then
xnu_mkext /Extra/Extensions.mkext
fi
if [ -d /Extra/Extensions ]; then
xnu_kextdir /Extra/Extensions
fi
if [ -f /Extra/devtree.txt ]; then
xnu_devtree /Extra/devtree.txt
fi
if [ -f /Extra/splash.jpg ]; then
insmod jpeg
xnu_splash /Extra/splash.jpg
fi
if [ -f /Extra/splash.png ]; then
insmod png
xnu_splash /Extra/splash.png
fi
if [ -f /Extra/splash.tga ]; then
insmod tga
xnu_splash /Extra/splash.tga
fi
fi
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/10_linux ###
menuentry "启动 Ubuntu" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod reiserfs
set root=(hd0,7)
search --no-floppy --fs-uuid --set 844db357-c613-4216-8205-5250b10555ae
linux /vmlinuz-2.6.31-19-generic root=UUID=f885904e-5349-4b64-9487-3565030f2478 ro quiet splash
initrd /initrd.img-2.6.31-19-generic
}
menuentry "启动Ubuntu (修复模式)" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
insmod reiserfs
set root=(hd0,7)
search --no-floppy --fs-uuid --set 844db357-c613-4216-8205-5250b10555ae
linux /vmlinuz-2.6.31-19-generic root=UUID=f885904e-5349-4b64-9487-3565030f2478 ro single
initrd /initrd.img-2.6.31-19-generic
}

### END /etc/grub.d/10_linux ###


### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "启动 Veket" {
set root=(hd0,10)
linux /vmlinuz root=/dev/ram0 PMEDIA=hd
initrd /initrd.gz
}


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-07 22:42 
头像

注册: 2009-09-06 5:53
帖子: 4666
送出感谢: 6
接收感谢: 110
用grub2不行的,试试bean的burg。


_________________
电子书下载:
鸟哥的Linux私房菜 基础学习篇 第三版 pdf
鸟哥的Linux私房菜 服务器架设篇 第三版 pdf


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-07 22:44 

注册: 2010-02-04 10:21
帖子: 23
送出感谢: 0 次
接收感谢: 0 次
ls的当真?


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-07 22:48 
头像

注册: 2009-09-06 5:53
帖子: 4666
送出感谢: 6
接收感谢: 110
david678 写道:
ls的当真?

win7那个逻辑分区pbr没有引导程序,那个引导程序装到主分区xp的pbr了。


_________________
电子书下载:
鸟哥的Linux私房菜 基础学习篇 第三版 pdf
鸟哥的Linux私房菜 服务器架设篇 第三版 pdf


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 8:38 
头像

注册: 2009-03-28 15:12
帖子: 7867
送出感谢: 2
接收感谢: 20
grub2可以引导逻辑分区的win7的,不过要确定逻辑分区有写入正确的引导代码,还有BCD上指向的是该逻辑分区。


_________________
Grub2 基础教程


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 9:38 

注册: 2010-02-04 10:21
帖子: 23
送出感谢: 0 次
接收感谢: 0 次
楼上可否详细的说明一下?


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 10:43 
头像

注册: 2009-03-28 15:12
帖子: 7867
送出感谢: 2
接收感谢: 20
david678 写道:
楼上可否详细的说明一下?

viewtopic.php?f=139&t=253576&hilit=bootsect+%2Fnt60&start=15


_________________
Grub2 基础教程


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 11:18 
头像

注册: 2009-06-14 20:14
帖子: 73
送出感谢: 0 次
接收感谢: 0 次
首先你要明确:这不是你的menu.lst的问题。

可以解决,首先看你的情况当初应当是先装的xp,然后再装的win7,这样的话win7的引导文件bootmgr及boot文件夹和xp的那些引导文件都是在xp的分区中,所以我推测你的menu.lst中引导xp的代码实际上会让你进入一个win7的选择菜单,供你选择win7还是xp,这样你可以进入win7。

假如你想让grub直接引导win7,就是让你的menu.lst中的win7引导部分真正发挥作用,不知道当前你选择进入win7是否提示你bootmgr is missing。
如果是这样的,那么,那么你就需要将xp分区中的win7引导文件全部转移到win7分区去,我估计你的win7逻辑分区的引导扇区应当是有引导代码的,所以这样就可以进入win7了,不过还是会出来一个菜单,你可以在win7中用bcdedit将引导xp的菜单项去掉。
假如不行的话,那么就可能有两个原因:1.逻辑分区而非主分区的问题。2:win7分区引导扇区的问题。
这需要看具体情况,你给的信息不详细。

还有一点要提醒你,假如你将xp分区的win7引导文件剪切走了,xp分区没有win7的引导文件了,那么你的xp将无法进入,有两个方法:
1.复制不要剪切
2.剪切后在linux中用dd命令将16个扇区的xp引导扇区内容重新植入xp分区的前16个扇区。


_________________
其实我是不懂装懂的…………………………


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 12:05 

注册: 2010-02-04 10:21
帖子: 23
送出感谢: 0 次
接收感谢: 0 次
ls,你可能没看到我用的是grub2,grub2用的是grub.cfg修改启动项。
7楼和你的想法应该一样的,多谢两位, :em11 我现在正在试验一下。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 13:19 
头像

注册: 2009-09-06 5:53
帖子: 4666
送出感谢: 6
接收感谢: 110
你用bean的burg可以直接引导ntldr和bootmgr
ntldr /ntldr
ntldr /bootmgr
不用改pbr和bcd。
http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=240837

引用:
win7的引导文件包括bootmgr和boot整个文件夹。
先把 bootmgr 和 boot目录复制到win7系统盘下,再进入win7,假设win7系统盘盘符为D:
bcdedit /store D:\boot\bcd /set {bootmgr} device partition=D:
再用
bootsect /nt60 D:
写引导代码。
小苹果说的这个当时我试了没成功,后来小苹果把这个又修正了。
如果能从win7分区启动,那么还要做这个:
bootsect /nt52 c:


_________________
电子书下载:
鸟哥的Linux私房菜 基础学习篇 第三版 pdf
鸟哥的Linux私房菜 服务器架设篇 第三版 pdf


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 13:37 

注册: 2010-02-04 10:21
帖子: 23
送出感谢: 0 次
接收感谢: 0 次
按照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?


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 13:54 
头像

注册: 2009-09-06 5:53
帖子: 4666
送出感谢: 6
接收感谢: 110
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?

呵呵,当时我做的时候也是这个现像。
后来再做这个:bootsect /nt52 c: 之后win7就进不去了。

还有个办法就是把win7先装到c:,然后再用ghost备份出来,恢复到d:。
其实你用bean的burg很方便,什么都不改,只把grub2换成burg。


_________________
电子书下载:
鸟哥的Linux私房菜 基础学习篇 第三版 pdf
鸟哥的Linux私房菜 服务器架设篇 第三版 pdf


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 14:03 
头像

注册: 2009-03-28 15:12
帖子: 7867
送出感谢: 2
接收感谢: 20
bcd没改好。要直接启动xp应该如ls说的 bootsect /nt52 c: 这个C盘是winxp下的c盘,不是Win7下的C盘。


_________________
Grub2 基础教程


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 15:47 
头像

注册: 2009-06-14 20:14
帖子: 73
送出感谢: 0 次
接收感谢: 0 次
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


_________________
其实我是不懂装懂的…………………………


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 无法用grub2引导逻辑分区上的windows 7
帖子发表于 : 2010-02-08 15:47 
头像

注册: 2009-03-28 15:12
帖子: 7867
送出感谢: 2
接收感谢: 20
忽然发现一个很奇怪的现象,grub2 的chainloader +1 不能引导第一 逻辑分区(hd05)上的bootmgr ,但(hd0,6)bootmgr上的就没问题。
用grub4dos的chainloader +1就都可以。

不知哪个高手能解释下?


_________________
Grub2 基础教程


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 73 篇帖子 ]  前往页数 1, 2, 3, 4, 5  下一页

当前时区为 UTC + 8 小时


在线用户

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


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

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

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