当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : grub2引导多系统的若干问题
帖子发表于 : 2010-02-11 18:09 

注册: 2010-02-11 17:21
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
我的系统是win7 + winxp + ubuntu 9.10,安装也是这个顺序(win7是机器自带的)
装完xp只能进xp,不能进win7了,理所应当的。不管他,继续装ubuntu。用grub2引导,结果发现,引导菜单变成如下:
linux xxxxx
win vista loader (这个应该是ACER的系统恢复分区)
win7 loader
win xp loader

OK,看上去很不错,没问题。结果尝试进入xp 时发现,系统不是进xp而是ACER系统恢复。
这里说一下我的分区结构,是
ACER恢复分区 主分区
Win7 100M隐藏分区 主,活动分区
win7 分区 主分区
普通的分区 扩展分区
win XP分区 扩展分区
linux swap
/boot
/
/home
看了一下XP分区,发现没有bootloader,于是估计是bootloader写到了win7 的100M隐藏分区。
这中间尝试用easyBCD 2.0,可以正常引导 XP,但是无法引导Ubuntu,猜测还是 100M隐藏分区的毛病,于是干脆干掉了隐藏分区,用Win7修复MBR,现在分区变成了
ACER恢复分区 主分区
win7 分区 主,活动分区
普通的分区 扩展分区
win XP分区 扩展分区
linux swap
/boot
/
(/home这次装的时候没分)
现在 EasyBCD已经可以正确引导三个系统了。但是我还是想用Grub2引导,因为对之前Linux的分区不是太满意,于是顺便重装,结果发现Grub2仍然在引导XP的时候错误进入ACER系统恢复。由于我的XP是ACER的OEM盘,我也搞不清安装的时候到底把引导记录 写到哪里了,是MBR还是哪个主分区。现在只好上论坛来求教了,谢谢各位解答
忘了个重要的问题,下面是我的 grub.cfg关于windows的部分内容

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Vista (loader) (on /dev/sda1)" {
insmod ntfs
set root=(hd0,1)
search --no-floppy --fs-uuid --set daa41c49a41c2b11
chainloader +1
}
menuentry "Windows 7 (loader) (on /dev/sda2)" {
insmod ntfs
set root=(hd0,2)
search --no-floppy --fs-uuid --set aaa2d966a2d93791
chainloader +1
}
menuentry "Microsoft Windows XP Professional (on /dev/sda6)" {
insmod ntfs
set root=(hd0,6)
search --no-floppy --fs-uuid --set 1c309009308fe85a
drivemap -s (hd0) ${root}
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
在我看来,这个drivemap -s (hd0) ${root}看上去挺可疑的


PS:此外还有一个关于分区的问题
用win7自带磁盘工具看,Linux的三个分区swap /boot / 都是主分区, win7的分区也是主分区,这显然是不靠谱了,姑且不管
用AcronisDDS看, ACER, WIN7分区是主分区,过去的win7 100M隐藏分区也是主分区。 由于安装Ubuntu的时候,第一次只能分扩展分区,干掉隐藏分区第二次安装能分出一个主分区然后就不能分区了,看来AcronisDDS识别是正确的。但是我装的这个版本可能老点,把EX4认成了EX3,而且显示在linux 的swap之前, 还有大概7600MB的未分配空间,对这部分空间看上去还是能操作的。我想知道两个问题:1,ADDS对主分区的识别是否正确 2,这7600M是否真的存在,如果是,那是不是Ubuntu在划分分区时出的问题。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: grub2引导多系统的若干问题
帖子发表于 : 2010-02-11 18:28 
头像

注册: 2009-09-06 5:53
帖子: 4666
送出感谢: 6
接收感谢: 110
menuentry "Microsoft Windows XP Professional (on /dev/sda6)" {
insmod ntfs
set root=(hd0,6)
search --no-floppy --fs-uuid --set 1c309009308fe85a
drivemap -s (hd0) ${root}删除这行试试
chainloader +1
}


对用这两个命令看看
代码:
sudo fdisk -l
sudo fdisk -lu


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


最后由 onshoestring 编辑于 2010-02-11 18:39,总共编辑了 4 次

页首
 用户资料  
 
3 楼 
 文章标题 : Re: grub2引导多系统的若干问题
帖子发表于 : 2010-02-11 18:29 
头像

注册: 2008-06-23 15:19
帖子: 3049
地址: 北欧某国
系统: ���������
送出感谢: 21
接收感谢: 6
您好,首先说一下,您对问题的描述真是十分详细,这在我们论坛里是很少见的。
但是我不用win7,这个我帮不了您。
显示分区信息,建议使用 sudo fdisk /dev/sda -l 命令,我比较信任 fdisk 命令。


_________________
http://noie.name 网站改版中。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: grub2引导多系统的若干问题
帖子发表于 : 2010-02-11 18:43 
头像

注册: 2009-03-28 15:12
帖子: 7867
送出感谢: 2
接收感谢: 20
看清楚了。
grub2引导xp格式的逻辑分区上的引导扇区时,会去搜索并引导第一主活动分区,所以你用set root=hd0,6 再 chainloader 的,就启动为恢复模式了。

要不改回用BCD 引导,要不用bean大的burg,再不就用先进入win7再选xp的二层启动菜单。


_________________
Grub2 基础教程


页首
 用户资料  
 
5 楼 
 文章标题 : Re: grub2引导多系统的若干问题
帖子发表于 : 2010-02-11 18:45 

注册: 2010-02-11 17:21
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
onshoestring 写道:
menuentry "Microsoft Windows XP Professional (on /dev/sda6)" {
insmod ntfs
set root=(hd0,6)
search --no-floppy --fs-uuid --set 1c309009308fe85a
drivemap -s (hd0) ${root}删除这行试试
chainloader +1
}


对用这两个命令看看
代码:
sudo fdisk -l
sudo fdisk -lu


其实我也都有fdisk过,有看没有记,呵呵。先去删除那行试试,要是行的话因为更新grub的话grub.cfg还会变回来,记得还得改etc/default/grub下的内容,对这个没什么经验呀,没玩过grub2,都不了解。
先谢谢楼上几位的迅速解答

smallapple 写道:
看清楚了。
grub2引导xp格式的逻辑分区上的引导扇区时,会去搜索并引导第一主活动分区,所以你用set root=hd0,6 再 chainloader 的,就启动为恢复模式了。

要不改回用BCD 引导,要不用bean大的burg,再不就用先进入win7再选xp的二层启动菜单。

又看到了这位的回答,如果这是前人经验的结果,那看来我可以不用尝试去修改grub2了,看来是grub2本身的缺陷。那我还是老实先用BCD吧。


最后由 RealQT 编辑于 2010-02-11 18:48,总共编辑了 1 次

页首
 用户资料  
 
6 楼 
 文章标题 : Re: grub2引导多系统的若干问题
帖子发表于 : 2010-02-11 18:45 
头像

注册: 2009-03-28 15:12
帖子: 7867
送出感谢: 2
接收感谢: 20
分区的用sudo fdisk -l 贴出来看看。
不用管win7的,那个是SB。


_________________
Grub2 基础教程


页首
 用户资料  
 
7 楼 
 文章标题 : Re: grub2引导多系统的若干问题
帖子发表于 : 2010-02-11 18:48 
头像

注册: 2009-09-06 5:53
帖子: 4666
送出感谢: 6
接收感谢: 110
smallapple 写道:
看清楚了。
grub2引导xp格式的逻辑分区上的引导扇区时,会去搜索并引导第一主活动分区,所以你用set root=hd0,6 再 chainloader 的,就启动为恢复模式了。

要不改回用BCD 引导,要不用bean大的burg,再不就用先进入win7再选xp的二层启动菜单。

这个好奇怪啊

上面那个${root}内容是不是还是hd0,如果是hd0,那么drivemap -s (hd0) ${root}这句什么也没干?
小苹果说说这句是什么意思?


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


最后由 onshoestring 编辑于 2010-02-11 18:54,总共编辑了 1 次

页首
 用户资料  
 
8 楼 
 文章标题 : Re: grub2引导多系统的若干问题
帖子发表于 : 2010-02-11 18:54 
头像

注册: 2009-03-28 15:12
帖子: 7867
送出感谢: 2
接收感谢: 20
那个drivemap 的在这没用的,是双硬盘从第二硬盘启动才有作用。
grub2不能正确识别逻辑分区上xp格式的引导扇区,从逻辑分区上root 再chainloader 就跑到主分区去了。win7格式的引导扇区就可以chainloader 了。应该算是grub2的bug吧。

那个${root}是上面的root的结果,也就是 (hd0,6)

drivemap -s (hd0) ${root}就是把 (hd0,6) 映射为 (hd0),-s 就是set root 的意思。


_________________
Grub2 基础教程


页首
 用户资料  
 
9 楼 
 文章标题 : Re: grub2引导多系统的若干问题
帖子发表于 : 2010-02-11 18:59 
头像

注册: 2009-09-06 5:53
帖子: 4666
送出感谢: 6
接收感谢: 110
引用:
那个${root}是上面的root的结果,也就是 (hd0,6)
光看${root}知道root是个变量,没看上边给变量赋值,向小苹果学习了。


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


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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