无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 21972|回复: 67

Q: 如何用grub4dos快速启动XP/Win7系统?

[复制链接]
发表于 2009-8-14 09:16:38 | 显示全部楼层 |阅读模式
A:要通过grub4dos启动NT系统,无论是Xp还是win7,都无法跳过微软自己的引导程序,也就是无法跳过ntldr或bootmgr直接引导xp或win7。但这并不意味着就没有什么快捷方式可选。我个人一直推荐的快捷方式就是使用NT的引导软盘,用grub4dos直接引导对应系统的引导软盘即可实现快捷引导NT系统。

xp引导软盘的做法:
建立一张软盘映像,将xp(或windows 2003的,兼容性更好)引导分区根目录下的ntldr、ntdetect.com、boot.ini(如果你需要显示菜单,也可以复制bootfont.bin)到软盘根目录下,快捷起见,我们一般情况下不需要显示boot.ini启动菜单,因此,将boot.ini中的timeout设置为0,default当然要指向默认要启动的系统。

然后用grub4dos如下启动这张软盘映像:
  1. title 直接启动XP
  2. map --mem /xp.img (fd0)
  3. map --hook
  4. root (fd0)
  5. chainloader /ntldr
复制代码
已知问题:上面这种方式启动,可能无法正常引导基于微软的ramdisk.sys的ramxp系统,解决办法:保证xp.img在硬盘上连续存放,然后将上面map命令中的--mem选项去掉。

vista/win7启动软盘做法:
新建一张软盘映像(命名为win7.img),将win7引导分区的bootmgr复制到软盘根目录,在软盘根目录下建立一个boot文件夹,将修改合适的BCD(如何修改,自己去学习bcdedit用法)文件复制到软盘boot文件夹下,视是否需要显示菜单及菜单语言配置情况,将en-US或zh-CN等语言文件夹复制到软盘boot文件夹下。用grub4dos启动:
  1. title 直接启动Win7
  2. map --mem /win7.img (fd0)
  3. map --hook
  4. root (fd0)
  5. chainloader /bootmgr
复制代码
发表于 2009-8-14 12:19:07 | 显示全部楼层
好文章,学习了~
回复

使用道具 举报

发表于 2009-8-14 13:15:27 | 显示全部楼层
保证xp.img在硬盘上连续存放,这个怎么做到?
回复

使用道具 举报

 楼主| 发表于 2009-8-14 13:37:38 | 显示全部楼层

@ aaaa:

Google搜索contig。
回复

使用道具 举报

发表于 2009-8-14 13:48:25 | 显示全部楼层
好文章,学习了~好文章,学习了~
回复

使用道具 举报

发表于 2009-8-14 13:56:02 | 显示全部楼层
关于GRUB启动NT5.*的NTLDR和NT6.*的BOOTMGR,

grub4dos压缩包自带的范例文件menu.lst写的很清楚,

不知道版主的范例跟grub4dos自带的范例应用有什么优势,可以应用在哪里?

[ 本帖最后由 Zokor 于 2009-8-14 13:57 编辑 ]
回复

使用道具 举报

发表于 2009-8-14 15:30:23 | 显示全部楼层
好方法啊,正在考虑PE3.0启动问题,有空试试。
回复

使用道具 举报

发表于 2009-8-14 17:21:37 | 显示全部楼层
太菜了!不知道可以用在那里
回复

使用道具 举报

发表于 2009-8-15 11:48:22 | 显示全部楼层
"保证xp.img在硬盘上连续存放" 能解析一下这句活吗?
回复

使用道具 举报

发表于 2009-8-15 15:19:30 | 显示全部楼层

有更简便的方法,只需一步操作即可!

通过grub4dos启动Xp或者是RamXP,只需要按本人此帖http://bbs.wuyou.net/forum.php?mod=viewthread&tid=144349&extra=page%3D1四楼第一步所述,如下图设置参数来操作即可一步到位。

1.JPG

原理很简单,主引导记录(MBR)是与操作系统无关的,所以完全可以利用grub4dos启动文件可改名的特性,直接用grub4dos的MBR来引导XP或RamXP系统的ntldr!我自己U盘上的RamXP从很久以前就从传统的NT引导改成这样的MBR了,目的是为了添加新启动项方便一点。
U盘或硬盘都行,如果是装在C盘的XP系统,写入PBR时要相应地选择C盘。
这里涉及一个非常基础的基础知识:主引导记录(MBR)是与操作系统无关的!它只认启动文件的名字!至于ntldr这个文件的内容是引导哪个系统的,MBR管不着!
一个最简单的试验就可以证明这一点:如果您的硬盘只在C盘装了一个XP系统,不妨用BOOTICE把硬盘的MBR换成grub4dos,参数就按上面两张图所示填写,重启后您会发现照样能启动。
回复

使用道具 举报

发表于 2009-8-15 15:26:03 | 显示全部楼层
无论是Xp还是win7,都无法跳过微软自己的引导程序,也就是无法跳过ntldr或bootmgr直接引导xp或win7。但这并不意味着就没有什么快捷方式可选。我个人一直推荐的快捷方式就是直接往启动介质(硬盘或U盘)的MBR写入 grub4dos,仅仅只需要把MBR所引导的文件名改为ntldr或bootmgr即可实现快捷引导NT系统。
回复

使用道具 举报

发表于 2009-8-15 22:24:22 | 显示全部楼层
楼主所示的方法,是通过grub4dos的PBR来引导XP或Win7; 而我在楼上所示方法是通过grub4dos的MBR来引导XP或Win7!

如果出这个题目给我做:如何通过grub4dos的PBR来引导XP或Win7? 我会拿出自己的其中一只装了RamXP的U盘根目录下的grub4dos启动文件grldr内置的菜单作为回答——

default 2
timeout 30
fontfile /boot/fonts.gz
splashimage /boot/leonliao.gz
clear
title  ---------------------------------------------------------
clear
title ☆欢迎使用小廖的Windows PE维护系统和Ghost恢复工具☆
title 【1】用键盘操作的 GHOST 11.5
kernel /boot/memdisk.gz c=80 h=2 s=36 floppy
initrd /boot/ghost11.5.img
title 【2】启动 Windows PE 系统(可上网)
chainloader /LDRXPE (hd0)+1
title 【3】纯净的 MS-DOS 7.1 系统
kernel /boot/memdisk.gz c=130 h=16 s=36 floppy
initrd /boot/MSDOS.img
title 【4】启动PQMAGIC 8.05分区魔术师繁体中文版
kernel /boot/memdisk.gz c=80 h=2 s=36 floppy
initrd /boot/pm805.IMG
title 【5】启动 RamXP-SP3 系统
rootnoverify (hd0,0)
chainloader /ntldr
title 【6】加入new.bin后自动运行Award bios flash 8.80刷主板BIOS
kernel /boot/memdisk.gz c=80 h=2 s=36 floppy
initrd /boot/Awdbiosflash.img
title 【7】重启计算机
reboot
title 【8】关闭计算机
halt
回复

使用道具 举报

 楼主| 发表于 2009-8-18 09:13:23 | 显示全部楼层

@ leonliao78:

您可能会错我顶楼的意了,我确认我讲的跟你讲的完全不是一回事儿。

我当然知道grldr可以直接启动ntldr/bootmgr,而且我知道grldr.mbr也有这个功能,而你只不过利用了grldr.mbr的这个功能再加上grldr.mbr启动文件改名的功能罢了。这种应用方法当然很巧妙,但很遗憾,这跟我要达到的目的完全不是一回事儿。

想象一下这种两种情况:

我先在机器上安装了xp,假设安装在(hd0,0),而我的grub4dos是通过xp的boot.ini加载grldr或grldr.mbr,那么这时候我启动xp肯定是通过(hd0,0)上的boot.ini,也就是XP的启动菜单。然后,出于对win7的兴趣,我又在机器上安装了一个win7(假设安装在了(hd0,4)),很显然,win7安装成功后,再启动机器时,你看到的启动菜单将是win7的bootmgr菜单,这时候,你可以直接启动win7,但如果你想启动xp,还需要选择win7菜单中的“旧的Windows启动项”,然后再进入xp的启动菜单(ntldr菜单),然后再选择NT菜单中的xp启动项来启动xp。所以,这时候我们启动xp要通过两个菜单。如果我想直接启动xp,跳过两个菜单的选择,该如何做?

上面的情况再进一步,如果我的机器上进一步安装了windows 2003和vista,那么我想通过一个菜单直接启动这四个操作系统而跳过任意一个二级菜单,那么我又该如何做?

对于上面第一种情况,leonliao78的方法还是可行的,但对于第二种情况,恐怕就只能用我的方法了。
回复

使用道具 举报

发表于 2009-8-18 12:33:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2009-8-18 22:02:01 | 显示全部楼层
即使在一块硬盘上装4个NT系统,仍然不需要建立软盘镜像就可以在一个菜单里选择启动其中任何一个系统,且不用进入2级菜单。如果您想把4个系统分别装在4个不同的分区,可以按以下三步来操作:

第一步:用Bootice把硬盘写入grub4dos的MBR;


第二步:把C盘根目录下的grldr内置菜单改成这样:

default 1
timeout 30
fontfile /fonts.gz
clear
title ---------------------------------------------------------
clear

title 【1】启动C盘的 windows xp
rootnoverify (hd0,0)
chainloader /XP

title 【2】启动D盘的 windows 2003
rootnoverify (hd0,4)
chainloader /2003

title 【3】启动E盘的 windows vista
rootnoverify (hd0,5)
chainloader /vista

title 【4】启动F盘的 windows 7
rootnoverify (hd0,6)
chainloader /7


第三步:
把启动XP系统的ntldr改名为XP放在C盘根目录下,把启动2003系统的ntldr改名为2003放在D盘根目录下,把启动vista系统的bootmgr改名为vista放在E盘根目录下,把启动windows 7系统的bootmgr改名为7放在F盘根目录下。4个系统自身的启动菜单(如boot.ini等)内的等待时间全改成0秒或1秒,启动的系统只保留本分区下相对应的系统一个即可,其他启动项目全删除。

[ 本帖最后由 leonliao78 于 2009-8-18 22:03 编辑 ]
回复

使用道具 举报

发表于 2009-8-18 22:36:42 | 显示全部楼层
原帖由 leonliao78 于 2009-8-18 22:02 发表
title 【1】启动C盘的 windows xp
rootnoverify (hd0,0)
chainloader /XP

title 【2】启动D盘的 windows 2003
rootnoverify (hd0,4)
chainloader /2003

title 【3】启动E盘的 windows vista
rootnoverify (hd0,5)
chainloader /vista

title 【4】启动F盘的 windows 7
rootnoverify (hd0,6)
chainloader /7

(hd0,0) (hd0,4) (hd0,5) (hd0,6)是不行的,只能
(hd0,0) (hd0,1) (hd0,2) (hd0,3)
因为ntldr/bootmgr不能直接从扩展分区启动并加载扩展分区上的boot.ini/bcd,ntldr/bootmgr只能放在主分区上
回复

使用道具 举报

发表于 2009-8-18 22:46:44 | 显示全部楼层
原帖由 Climbing 于 2009-8-18 09:13 发表
上面的情况再进一步,如果我的机器上进一步安装了windows 2003和vista,那么我想通过一个菜单直接启动这四个操作系统而跳过任意一个二级菜单,那么我又该如何做?


如果你装了xp/2003/vista/win7四个系统,建议直接用bootmgr作启动菜单(尤其是其中有windows开启了休眠功能时),有方法可以避免二级菜单:

比如你xp在(hd0,0) 2003在(hd0,1),就在(hd0,0)和(hd0,1)各放一个ntldr和boot.ini来启动xp和2003,boot.ini中只包含一个启动项

然后在bcd中建立两个ntldr类型的项分别指向(hd0,0)和(hd0,1)上的ntldr。

至于vista和win7,系统安装时会直接在bcd菜单上建立两个起动项的。

这样bcd菜单上就会有4个系统选项了

[ 本帖最后由 fujianabc 于 2009-8-18 22:47 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2009-8-19 14:31:58 | 显示全部楼层

回复 #17 fujianabc 的帖子

你的方法固然算是一种解决方案,但实际上也偷换了概念,例如,如果xp和2003不在主分区该如何,如果我只有一个主分区又该如何?

当然,我很清楚条条大路通罗马的道理,一个问题也并不总是只有一个解决方案,其实,我顶楼所说也不过是一个解决方案而已,而且,是目前看来个人感觉比较通用的、简易的解决方案。


关于15楼那位朋友的回复:我印象中你给我定了个什么君子协定,我本无意冒犯(如果一个人非要坚持自己的错误对我也没有什么损失),但我还是有一个建议:麻烦你在回答别人之前先让自己确认一下这个回答是否正确,至少你应该亲自试一下吧?更希望你在批评别人如何如何之前,也能够看清楚自己身上是否有同样的缺点。
回复

使用道具 举报

发表于 2009-8-19 17:57:01 | 显示全部楼层
我更倾向于把XP/WIN7的启动文件放在同一张软盘镜像上面,因为两者启动方式并不冲突.
也比较好管理,现在我办公室电脑也是使用差不多类似的方法..
嘿嘿.^_^关了机别人就不懂得如何用我的电脑了.
回复

使用道具 举报

发表于 2009-8-19 18:06:05 | 显示全部楼层
各位说的都是先启动硬盘上面的NTLDR或者BOOTMGR,

是不是反过来想就简单一点,

利用Pauly的Bootice直接写入Grub的PBR,启动Grub的GRLDR,利用Grub的菜单就可以直接选择Grub和Windows了,

或者不写PBR,直接重命名GRLDR为NTLDR或者Bootmgr,当然这个有点旁门左道了。
回复

使用道具 举报

发表于 2009-8-19 20:44:00 | 显示全部楼层
原帖由 Climbing 于 2009-8-19 14:31 发表
你的方法固然算是一种解决方案,但实际上也偷换了概念,例如,如果xp和2003不在主分区该如何,如果我只有一个主分区又该如何?

当然,我很清楚条条大路通罗马的道理,一个问题也并不总是只有一个解决方案,其 ...

你已经攻击了我两次(技术之外的人身攻击),我没找你麻烦是因为我不是你那样的人。
如果你觉得我在本帖上面那些话也算人身攻击,我就无话可说了。
回复

使用道具 举报

发表于 2009-8-19 20:45:03 | 显示全部楼层
如果按我以前的脾气,我会一直闹到你一进无忧就头疼,最后自动注销帐号为止。
回复

使用道具 举报

发表于 2009-8-19 20:46:32 | 显示全部楼层
同样都是前辈,楼主咋就不学学fujianabc大侠的风范?
回复

使用道具 举报

 楼主| 发表于 2009-8-20 16:44:09 | 显示全部楼层

回复 #21 leonliao78 的帖子

说话要讲证据,我什么时候人身攻击过你?还两次?同时说清楚你对人身攻击的定义。

老虎不发威,你当我是Hello Kitty,我在论坛混了这么多年,什么样的流氓无赖没有见识过,有本事你就放马过来,我倒要见识一下你能用什么手段逼得我自动注销用户。就你这种无赖,当然得不到fujianabc大侠那样的待遇,你以为你是谁啊?你也有资格评价别人?我呸!你也配!
回复

使用道具 举报

发表于 2009-8-20 23:55:57 | 显示全部楼层

回复 #24 Climbing 的帖子

对事不对人,是基本前提。如果说的话针对了对方的人,而不是正在讨论的事,就是人身攻击了,**没教你吗?
也难怪,没家教的孩子狗嘴里是吐不出象牙滴,急了连“有本事你就放马过来,我倒要见识一下”这种市井流氓的口头禅也蹦出来了,笑死我了,哈哈哈哈!
回复

使用道具 举报

发表于 2009-8-20 23:56:35 | 显示全部楼层
从今天开始,见你一次骂一次。直到你看见我就闪为止。呵呵!
回复

使用道具 举报

 楼主| 发表于 2009-8-21 08:53:08 | 显示全部楼层
一晚上没来(我在家无法上网),哪位版主将leonliao78禁言了呢?如果他没有进行人身攻击,我倒希望版主网开一面,放他一马,毕竟,他也有辩解的权利,也得给他一个改过自新的机会,而且,我本人感觉根本无需担心他。


@ #19 chenall 的帖子:

chenall兄的方法果然巧妙,我怎么就没有想到呢?


@ #29  zhxy9804的帖子:

NT的启动软盘方法当然不是我原创的,这个技术从NT出来就已经存在了,只不过有些人可能想不到用NT的启动软盘映像再加上grub4dos,可以实现快捷启动NT而已,我写这个帖子只是提醒,因为最近有太多人问与这个有关的问题。这种方法特别适用于用grub4dos作为启动管理软件(安装到mbr)并同时启动多个NT/vista/win7系统,而且,基本上没有什么限制,定制性很强,也可以实现快捷启动(无菜单倒计时启动)。
回复

使用道具 举报

发表于 2009-8-21 10:47:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2009-8-21 11:14:48 | 显示全部楼层

回复 #31 mazrmc 的帖子

bootmgr + boot\bcd

感觉应该就需要这两个,保险起见,我加上了boot\en-US目录。
回复

使用道具 举报

发表于 2009-8-21 12:20:21 | 显示全部楼层
用软盘似乎很难管理,还是倾向于GRUB引双系统,我的GRUB菜单大概一页放不下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-29 16:43

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表