无忧启动论坛

标题: 双硬盘双系统用Grub for DOS 的引导问题 [打印本页]

作者: samuel_lin    时间: 2010-4-26 09:57
标题: 双硬盘双系统用Grub for DOS 的引导问题
本人的电脑安装两个SATA硬盘,第一个硬盘上安装了WIN7,现在在第二个硬盘上用Ghost安装了XP。我已将第一个硬盘的MBR写成Grub启动,
Menu.lis如下:
title XP
find --set-root /ntldr
chainloader /ntldr
title Win7
find --set-root /bootmgr
chainloader /bootmgr

现在选择WIN7能正常启动,而XP无法启动。
麻烦那位高手帮忙看一下是否我还要做什么操作:
1,第二个硬盘现在的MBR是 Win NT5.x,是否要改成Grub?
2,XP 的boot.ini :default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS,
   是否要改成rdisk(1)?
3,如果用XORLDR编定菜单的话 在启动分区那一项选择不了第二个硬盘又该如何设置?

本人是个菜鸟如何有些问题问得不太清楚请多海涵。
作者: Climbing    时间: 2010-4-26 11:55
第二个硬盘上的ghost xp是如何安装的?
作者: samuel_lin    时间: 2010-4-26 11:57
在Win7下直接用ghost安装的
作者: xianglang    时间: 2010-4-26 11:57
将你的BOOT.INI文件贴上来看看……
作者: xianglang    时间: 2010-4-26 11:58
还有不能启动,是怎么个不能法,出错信息是什么?
作者: samuel_lin    时间: 2010-4-26 12:01
Boot.ini:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

选择XP的时候没有任何提示,直接重启了
作者: xianglang    时间: 2010-4-26 12:02
按照我用VPC里做两个硬盘启动PE的经验来看,可能是因为XP之类不支持从第二硬盘启动的缘故——如果你的BOOT.INI正确的话。试试用下面的语句,看能不能成功启动XP:

title  WinXP from 2nd HDD \n\n 启动第二硬盘上的 WinXP
  map (hd0) (hd1)
  map (hd1) (hd0)
  map --hook
  rootnoverify (hd0,0)
  chainloader --force /NTLDR
作者: xianglang    时间: 2010-4-26 12:04
原帖由 samuel_lin 于 2010-4-26 12:01 发表
Boot.ini:

timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin ...


试试将BOOT.INI中有关multi(0)disk(0)rdisk(0)partition(1)\WINDOWS 改成 multi(0)disk(1)rdisk(0)partition(1)\WINDOWS试试,看以不能成功。
作者: Pauly    时间: 2010-4-26 12:51
的确是需要把 hd1 map 为 hd0 方可启动,而 xorldr 则需要0.35 以上版本
作者: samuel_lin    时间: 2010-4-26 13:48
按照我用VPC里做两个硬盘启动PE的经验来看,可能是因为XP之类不支持从第二硬盘启动的缘故——如果你的BOOT.INI正确的话。试试用下面的语句,看能不能成功启动XP:

title  WinXP from 2nd HDD \n\n 启动第二硬盘上的 WinXP
  map (hd0) (hd1)
  map (hd1) (hd0)
  map --hook
  rootnoverify (hd0,0)
  chainloader --force /NTLDR

老狼大哥谢谢了!按照你这个方法可以引导进XP了。
不过boot.ini保留原来Default就行了,更换disk(1),反而会提示找不到引导。

顺便问一名,如果我XP是装在同一个硬盘的另一个分区,是否Muen.lst就按我一开始那样编就可以了?
作者: xianglang    时间: 2010-4-26 14:01
修改为DISK(1),是在G4D中不做MAP处理的情况之下。

如果安装在同一个硬盘不同分区,象你那样直接写就可以了,不过得看BOOT.INI中的分区,有没有改成你XP所在的分区。

[ 本帖最后由 xianglang 于 2010-4-26 14:03 编辑 ]
作者: Climbing    时间: 2010-4-26 14:03
原帖由 <i>samuel_lin</i> 于 2010-4-26 11:57 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=1939643&ptid=162816" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
在Win7下直接用ghost安装的
<br />

在win7下用ghost只是将克隆文件恢复到硬盘上,这时候克隆系统并没有安装开始,你恢复完克隆后,是如何启动那个克隆系统进入安装过程的。

如果我估计不错,应该是在BIOS启动菜单中直接选择第二硬盘启动的,这样的话,第二硬盘就变成了第一硬盘,而在grub4dos中你直接从第二硬盘启动本来当作第一硬盘的系统,当然会是失败的。而前面的答复中map (hd0) (hd1) 及map (hd1) (hd0)就是将第二硬盘与第一硬盘逻辑上互换的过程。

另外,将boot.ini中的rdisk(0)改成rdisk(1)应该也可以启动,不过还需要改一下注册表,删除HKLM\SYSTEM\mounteddevice中的所有键值。
作者: samuel_lin    时间: 2010-4-26 14:21
#12 你好,删除HKLM\SYSTEM\mounteddevice中的所有键值,你指的是在win7的注册表中删吗?还是进XP删?
作者: Climbing    时间: 2010-4-26 14:40
标题: 回复 #13 samuel_lin 的帖子
这种问题不需要问,你解决的是xp的启动问题,你删除win7的注册表干什么?
作者: samuel_lin    时间: 2010-4-26 15:08
标题: 回复 #14 Climbing 的帖子
不好意思!其实我是想问你说: 另外,将boot.ini中的rdisk(0)改成rdisk(1)应该也可以启动,不过还需要改一下注册表,删除HKLM\SYSTEM\mounteddevice中的所有键值。
你指在哪个系统删。
作者: Climbing    时间: 2010-4-26 15:14
无论在哪个系统删除,只要删掉就好,删除之后,再使用rdisk(1)启动时,就不能用grub4dos的map命令交换磁盘了。
作者: yaojy    时间: 2010-4-26 15:33
我认为改rdisk(1)也不一定可以,从XP的启动特性看,它的启动文件必须在第一启动设备的活动主分区上。
作者: fang316    时间: 2010-4-26 16:03

会不会是名字错了 menu.lst
作者: samuel_lin    时间: 2010-4-26 16:18
标题: 回复 #18 fang316 的帖子
不好意思!只是我打上来问的时候打错了。实际文件没错的是menu.lst.
作者: xianglang    时间: 2010-4-26 20:03
存放在FAT和NTFS格式的磁盘里的文件,G4D是不区分大小写的。
作者: Climbing    时间: 2010-4-27 13:45
一直没见到楼主修改rdisk(1)及删除注册表后的报告。当然,如果启动不成功,你可以考虑将ntldr、boot.ini、ntdetect.com复制到第一硬盘活动分区再试试。
作者: samuel_lin    时间: 2010-4-27 15:48
标题: 回复 #21 Climbing 的帖子
你好!
我刚才测试了一下修改rdisk(1)及删除注册表后依然无法引导XP,依然直接重启。
而用后一种方法将ntldr、boot.ini、ntdetect.com复制到第一硬盘活动分区并修改rdisk(1),不删除注册表,是可以正常引导XP了。
不过我种方法跟我之前还不知道有Grub的时候(本人刚学Grub不到一个星期),直接编bootbcd的加入XP的启动项方法就一样了,没办法做到系统文件完全独立.
我的初衷是想将两个硬盘的系统文件完全独立开,万一我win7被破坏了依然可以运行XP。(前面map的方法应该就是我想要的)
等会我会再试一下用XORDL编定菜单测试。

谢谢各位的悉心指导,我会继续测试学习^_^
作者: yaojy    时间: 2010-4-27 16:09
原帖由 Climbing 于 2010-4-27 13:45 发表
一直没见到楼主修改rdisk(1)及删除注册表后的报告。当然,如果启动不成功,你可以考虑将ntldr、boot.ini、ntdetect.com复制到第一硬盘活动分区再试试。

虽然将这些启动文件复制到第一硬盘活动分区可以实现XP启动,
但似乎有违楼主的初衷。
作者: Climbing    时间: 2010-4-28 10:04
之所以要复制到win7分区,是因为ntldr只认第一硬盘的活动分区上的boot.ini,这是ntldr的问题,不是grub4dos的问题。当然,做这个测试只是有益的探索,事实上,使用前面的map命令交换磁盘的方式就已经完美解决楼主的问题了。

如果不想复制文件,可以将ntldr那几个文件放到一个软盘映像中(NT软盘启动盘),然后将这个软盘映像放在xp所在分区,使用grub4dos加载这个软盘映像并进一步加载xp即可。


  1. title boot xp from NT boot floppy
  2. find --set-root /ntboot.img
  3. map --mem /ntboot.img (fd0)
  4. root (fd0)
  5. chainloader /ntldr
复制代码

作者: yeweidavid    时间: 2010-5-14 15:35
在这里学习了,很好,以后要常来
作者: pengjun88    时间: 2011-7-15 17:14
标题: 经验帖啊
经验帖啊经验帖啊经验帖啊




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3