无忧启动论坛

标题: Q: 如何用grub4dos快速启动XP/Win7系统? [打印本页]

作者: Climbing    时间: 2009-8-14 09:16
标题: Q: 如何用grub4dos快速启动XP/Win7系统?
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
复制代码

作者: tegl    时间: 2009-8-14 12:19
好文章,学习了~
作者: aaaa    时间: 2009-8-14 13:15
保证xp.img在硬盘上连续存放,这个怎么做到?
作者: Climbing    时间: 2009-8-14 13:37
标题: @ aaaa:
Google搜索contig。
作者: nhj074    时间: 2009-8-14 13:48
好文章,学习了~好文章,学习了~
作者: Zokor    时间: 2009-8-14 13:56
关于GRUB启动NT5.*的NTLDR和NT6.*的BOOTMGR,

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

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

[ 本帖最后由 Zokor 于 2009-8-14 13:57 编辑 ]
作者: cmdy268    时间: 2009-8-14 15:30
好方法啊,正在考虑PE3.0启动问题,有空试试。
作者: dongyou2007    时间: 2009-8-14 17:21
太菜了!不知道可以用在那里
作者: icons    时间: 2009-8-15 11:48
"保证xp.img在硬盘上连续存放" 能解析一下这句活吗?
作者: leonliao78    时间: 2009-8-15 15:19
标题: 有更简便的方法,只需一步操作即可!
通过grub4dos启动Xp或者是RamXP,只需要按本人此帖http://bbs.wuyou.net/forum.php?mod=viewthread&tid=144349&extra=page%3D1四楼第一步所述,如下图设置参数来操作即可一步到位。



原理很简单,主引导记录(MBR)是与操作系统无关的,所以完全可以利用grub4dos启动文件可改名的特性,直接用grub4dos的MBR来引导XP或RamXP系统的ntldr!我自己U盘上的RamXP从很久以前就从传统的NT引导改成这样的MBR了,目的是为了添加新启动项方便一点。
U盘或硬盘都行,如果是装在C盘的XP系统,写入PBR时要相应地选择C盘。
这里涉及一个非常基础的基础知识:主引导记录(MBR)是与操作系统无关的!它只认启动文件的名字!至于ntldr这个文件的内容是引导哪个系统的,MBR管不着!
一个最简单的试验就可以证明这一点:如果您的硬盘只在C盘装了一个XP系统,不妨用BOOTICE把硬盘的MBR换成grub4dos,参数就按上面两张图所示填写,重启后您会发现照样能启动。
作者: leonliao78    时间: 2009-8-15 15:26
无论是Xp还是win7,都无法跳过微软自己的引导程序,也就是无法跳过ntldr或bootmgr直接引导xp或win7。但这并不意味着就没有什么快捷方式可选。我个人一直推荐的快捷方式就是直接往启动介质(硬盘或U盘)的MBR写入 grub4dos,仅仅只需要把MBR所引导的文件名改为ntldr或bootmgr即可实现快捷引导NT系统。
作者: leonliao78    时间: 2009-8-15 22:24
楼主所示的方法,是通过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
作者: Climbing    时间: 2009-8-18 09:13
标题: @ 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的方法还是可行的,但对于第二种情况,恐怕就只能用我的方法了。
作者: mazrmc    时间: 2009-8-18 12:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: leonliao78    时间: 2009-8-18 22:02
即使在一块硬盘上装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 编辑 ]
作者: fujianabc    时间: 2009-8-18 22:36
原帖由 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只能放在主分区上
作者: fujianabc    时间: 2009-8-18 22:46
原帖由 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 编辑 ]
作者: Climbing    时间: 2009-8-19 14:31
标题: 回复 #17 fujianabc 的帖子
你的方法固然算是一种解决方案,但实际上也偷换了概念,例如,如果xp和2003不在主分区该如何,如果我只有一个主分区又该如何?

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


关于15楼那位朋友的回复:我印象中你给我定了个什么君子协定,我本无意冒犯(如果一个人非要坚持自己的错误对我也没有什么损失),但我还是有一个建议:麻烦你在回答别人之前先让自己确认一下这个回答是否正确,至少你应该亲自试一下吧?更希望你在批评别人如何如何之前,也能够看清楚自己身上是否有同样的缺点。
作者: chenall    时间: 2009-8-19 17:57
我更倾向于把XP/WIN7的启动文件放在同一张软盘镜像上面,因为两者启动方式并不冲突.
也比较好管理,现在我办公室电脑也是使用差不多类似的方法..
嘿嘿.^_^关了机别人就不懂得如何用我的电脑了.
作者: Zokor    时间: 2009-8-19 18:06
各位说的都是先启动硬盘上面的NTLDR或者BOOTMGR,

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

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

或者不写PBR,直接重命名GRLDR为NTLDR或者Bootmgr,当然这个有点旁门左道了。
作者: leonliao78    时间: 2009-8-19 20:44
原帖由 Climbing 于 2009-8-19 14:31 发表
你的方法固然算是一种解决方案,但实际上也偷换了概念,例如,如果xp和2003不在主分区该如何,如果我只有一个主分区又该如何?

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

你已经攻击了我两次(技术之外的人身攻击),我没找你麻烦是因为我不是你那样的人。
如果你觉得我在本帖上面那些话也算人身攻击,我就无话可说了。
作者: leonliao78    时间: 2009-8-19 20:45
如果按我以前的脾气,我会一直闹到你一进无忧就头疼,最后自动注销帐号为止。
作者: leonliao78    时间: 2009-8-19 20:46
同样都是前辈,楼主咋就不学学fujianabc大侠的风范?
作者: Climbing    时间: 2009-8-20 16:44
标题: 回复 #21 leonliao78 的帖子
说话要讲证据,我什么时候人身攻击过你?还两次?同时说清楚你对人身攻击的定义。

老虎不发威,你当我是Hello Kitty,我在论坛混了这么多年,什么样的流氓无赖没有见识过,有本事你就放马过来,我倒要见识一下你能用什么手段逼得我自动注销用户。就你这种无赖,当然得不到fujianabc大侠那样的待遇,你以为你是谁啊?你也有资格评价别人?我呸!你也配!
作者: leonliao78    时间: 2009-8-20 23:55
标题: 回复 #24 Climbing 的帖子
对事不对人,是基本前提。如果说的话针对了对方的人,而不是正在讨论的事,就是人身攻击了,**没教你吗?
也难怪,没家教的孩子狗嘴里是吐不出象牙滴,急了连“有本事你就放马过来,我倒要见识一下”这种市井流氓的口头禅也蹦出来了,笑死我了,哈哈哈哈!
作者: leonliao78    时间: 2009-8-20 23:56
从今天开始,见你一次骂一次。直到你看见我就闪为止。呵呵!
作者: Climbing    时间: 2009-8-21 08:53
一晚上没来(我在家无法上网),哪位版主将leonliao78禁言了呢?如果他没有进行人身攻击,我倒希望版主网开一面,放他一马,毕竟,他也有辩解的权利,也得给他一个改过自新的机会,而且,我本人感觉根本无需担心他。


@ #19 chenall 的帖子:

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


@ #29  zhxy9804的帖子:

NT的启动软盘方法当然不是我原创的,这个技术从NT出来就已经存在了,只不过有些人可能想不到用NT的启动软盘映像再加上grub4dos,可以实现快捷启动NT而已,我写这个帖子只是提醒,因为最近有太多人问与这个有关的问题。这种方法特别适用于用grub4dos作为启动管理软件(安装到mbr)并同时启动多个NT/vista/win7系统,而且,基本上没有什么限制,定制性很强,也可以实现快捷启动(无菜单倒计时启动)。
作者: mazrmc    时间: 2009-8-21 10:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: Climbing    时间: 2009-8-21 11:14
标题: 回复 #31 mazrmc 的帖子
bootmgr + boot\bcd

感觉应该就需要这两个,保险起见,我加上了boot\en-US目录。
作者: yichya    时间: 2009-8-21 12:20
用软盘似乎很难管理,还是倾向于GRUB引双系统,我的GRUB菜单大概一页放不下。
作者: mazrmc    时间: 2009-8-21 14:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: fujianabc    时间: 2009-8-21 15:29
虚拟软盘方式启动后要修改bcd菜单就比较麻烦了,先要挂载虚拟软驱,用bcdedit命令时还要用store参数指定bcd文件路径
作者: pz    时间: 2009-8-21 16:56
原帖由 mazrmc 于 2009-8-21 10:47 发表
19楼的chenall大侠,能否提供软盘镜像下载?win7启动所需文件搞不清楚都需要哪些

我也希望chenall大侠能够提供做好的软盘镜像下载,毕竟有不少人对win7启动不熟。
作者: mazrmc    时间: 2009-8-21 17:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: pz    时间: 2009-8-21 17:26
winxp的软盘好做。但我的机器上没装vista及win7,想做个合盘的暂时还没办法。
作者: pz    时间: 2009-8-21 17:30
哪位老兄能提供一下Vista中的bootmgr和boot目录内的相关文件?
作者: fujianabc    时间: 2009-8-21 23:43
原帖由 mazrmc 于 2009-8-21 17:11 发表
软盘可以自己做,并不通用。
Winxp需要四个文件boot.ini,bootfont.bin,ntdetect.com,ntldr;
Vista需要bootmgr和boot目录,boot目录内仅保留bcd文件(也可以保留en-US和zh-CN二个目录)

还有一个关键文件
\boot\Fonts\chs_boot.ttf
这个是字体文件,没有菜单不能显示中文,这个文件有3M多,软盘放不下
作者: icons    时间: 2009-8-22 22:58
我是这样编辑的,大家看看有什么可以改进?
title   启动 Windows 7 系统
find --set-root /bootmgr
chainloader /bootmgr
boot

title   启动 Windows XP 内存系统
find --set-root /ntldr
chainloader /ntldr
作者: chenall    时间: 2009-8-23 00:34
我的软盘上的文件列表.所有文件的总大小1.07MB,使用一个1.44MB的镜像就放得下了.
::启动WINDOWS 2000/XP/2003所需的文件
boot.ini
bootfont.bin
NTDETECT.COM
ntldr
::启动WINDOWS 7所需的文件(只有两个)(VISTA系列的应该也可以直接使用的,未测试,因为我只装了WINDOWS 7)
bootmgr
boot\BCD

因为BCD里面只有一个启动WINDOWS 7的菜单,所以显示中文就没有必要了.加载了BOOTMGR就直接启动WINDOWS 7,如果真想显示中文菜单那至少也再增加4MB左右的文件.反正我是觉得没有必要所以就不用了.

另外NTLDR和BOOTMGR由于是通过GRUB4DOS来加载的,所以还可以使用GZ压缩一下.

[ 本帖最后由 chenall 于 2009-8-23 00:38 编辑 ]
作者: chenall    时间: 2009-8-23 00:36
原帖由 icons 于 2009-8-22 22:58 发表
我是这样编辑的,大家看看有什么可以改进?
title   启动 Windows 7 系统
find --set-root /bootmgr
chainloader /bootmgr
boot

title   启动 Windows XP 内存系统
find --set-root /ntldr
chainloade ...


使用find --set-root 有可能会找到其它地方的启动文件,不太好.

建议把菜单文件放到img文件里面,再调用,省去find --set-root的过程.菜单中直接使用相对路径.
因为知道是虚拟到一个软盘上启动的,所以也可以直接chainloader (fd0)/ntldr
作者: yahzy    时间: 2009-8-23 03:09
标题: 好文章来学习了~~~
好文章来学习了~~~
作者: Climbing    时间: 2009-8-24 09:09
标题: 回复 #44 chenall 的帖子
chenall说的不错,win7只需要bootmgr + boot\bcd,xp如果不需要显示菜单,也不需要bootfont.bin。

另外,如果win7需要软改,也可以加上软改的grldr。

下面是我做的带软改的nt + win7启动软盘,注意:boot.ini和bcd文件都需要你根据实际情况进行定义,为避免软改的grldr与标准的grldr发生冲突,我将其更名为smldr(softmod loader)。

http://nufans.net/upload/micro$oft/win7/softmod.xyf/win.gz


  1. title Windows 7 on (hd0,1) - Fast
  2. ls /boot/win.gz || find --set-root /boot/win.gz
  3. map --mem /boot/win.gz (fd0)
  4. map --hook
  5. root (fd0)
  6. chainloader /smldr
  7. savedefault

  8. title Windows XP Professional on (hd0,0) - Fast by win.gz
  9. ls /boot/win.gz || find --set-root /boot/win.gz
  10. map --mem /boot/win.gz (fd0)
  11. map --hook
  12. root (fd0)
  13. chainloader /ntldr
  14. savedefault
复制代码

作者: yjd    时间: 2009-8-24 10:23
原帖由 chenall 于 2009-8-19 17:57 发表
我更倾向于把XP/WIN7的启动文件放在同一张软盘镜像上面,因为两者启动方式并不冲突.
也比较好管理,现在我办公室电脑也是使用差不多类似的方法..
嘿嘿.^_^关了机别人就不懂得如何用我的电脑了.



插上自带启动U盘。使用grub4dos去引导^_^
作者: yjd    时间: 2009-8-24 10:31
这里讨论的多系统。应该都是安装在主分区上吧?

ms系统貌似只能启动主分区系统
作者: Climbing    时间: 2009-8-24 11:23
标题: 回复 #49 yjd 的帖子
跟主分区、逻辑分区无关吧?不信你试试。
作者: fujianabc    时间: 2009-8-24 14:57
原帖由 yjd 于 2009-8-24 10:31 发表
这里讨论的多系统。应该都是安装在主分区上吧?

ms系统貌似只能启动主分区系统

系统可以装在逻辑分区上,ntldr+boot.ini/bootmgr+bcd不能放在逻辑分区上
作者: Climbing    时间: 2009-8-24 15:18
标题: 回复 #51 fujianabc 的帖子
事实上,bootmgr+bcd是可以放在逻辑分区上的。

在win7的硬盘安装方法中,有一种方法就是将win7的安装光盘随意解压到硬盘上的任意分区(包括逻辑分区)根目录下,然后进入grub4dos,chainloader相应分区的bootmgr,就可以直接启动进入win7的安装程序,跟从光盘启动安装应该完全一样,所以,至少win7的bootmgr是可以从逻辑分区启动的,而且,它会在当前分区boot目录下查找bcd文件。

而ntldr当然也可以用类似的方法通过grub4dos从逻辑分区加载并启动,但它只能从第一硬盘的激活分区去查找boot.ini及其他启动文件。
作者: keygen    时间: 2009-8-25 21:29
原帖由 fujianabc 于 2009-8-21 15:29 发表
虚拟软盘方式启动后要修改bcd菜单就比较麻烦了,先要挂载虚拟软驱,用bcdedit命令时还要用store参数指定bcd文件路径

有个很好的工具bcdtool,作者jianliulin

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=146397
作者: fujianabc    时间: 2009-8-25 21:52
原帖由 Climbing 于 2009-8-24 15:18 发表
事实上,bootmgr+bcd是可以放在逻辑分区上的。

在win7的硬盘安装方法中,有一种方法就是将win7的安装光盘随意解压到硬盘上的任意分区(包括逻辑分区)根目录下,然后进入grub4dos,chainloader相应分区的boo ...

我的确没试过bootmgr查找逻辑分区的bcd,但我试过ntldr不能找到逻辑分区上的boot.ini
就你这么说来,看来bootmgr+bcd能够直接放到逻辑分区上了

原帖由 keygen 于 2009-8-25 21:29 发表

有个很好的工具bcdtool,作者jianliulin

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=146397

这个工具目前不能随便指定其他bcd文件。现在能够修改任意bcd的gui工具还是easybcd最好用,而且是免费软件。
作者: keygen    时间: 2009-8-26 17:42
原帖由 fujianabc 于 2009-8-25 21:52 发表

我的确没试过bootmgr查找逻辑分区的bcd,但我试过ntldr不能找到逻辑分区上的boot.ini
就你这么说来,看来bootmgr+bcd能够直接放到逻辑分区上了


这个工具目前不能随便指定其他bcd文件。现在能够修改任意 ...

easybcd要用到NET Framework  ,不爽。
作者: fujianabc    时间: 2009-8-26 19:32
原帖由 keygen 于 2009-8-26 17:42 发表

easybcd要用到NET Framework  ,不爽。

现在谁的系统中没装.net framework?

如果是在winpe下,建议还是用bcdedit,几个图形界面的bcd工具都不太适合在winpe下使用
作者: x.Nichdlas    时间: 2009-9-4 16:38
之前看这帖一直没明白帖子的意思(愚钝啊~~) 今天偶然在nufans.net看到c大对一个案例的回帖 说的正是这个解决方案 有案例就好理解了 于是回来再翻此帖~

确实是不错的方法 受用了!
作者: 天使的魔翼    时间: 2009-9-6 17:01
原帖由 Climbing 于 2009-8-18 09:13 发表
您可能会错我顶楼的意了,我确认我讲的跟你讲的完全不是一回事儿。

我当然知道grldr可以直接启动ntldr/bootmgr,而且我知道grldr.mbr也有这个功能,而你只不过利用了grldr.mbr的这个功能再加上grldr.mbr启动 ...




呵呵~~~~~他完全没明白C大说的意思;和你讲的完全是两回事嘛。

我感觉C大是否做出实例来:
以C 大大的能力,完全可以做出完美的IMG文件出来,XP/WIN2003的IMG好说的,可是WIN7/WIN2008很难搞定;C大研究得很深,应该以C大的技术可以做出自动判断的WIN7/2008启动IMG出来。
作者: go2    时间: 2009-9-7 06:59
C版,#47
title Windows 7 on (hd0,1) - Fast
ls /boot/win.gz || find --set-root /boot/win.gz
map --mem /boot/win.gz (fd0)
map --hook
root (fd0)
chainloader /smldr
savedefault


我不知你有没试过
chainloader /smldr
这样启动动。我试过用Grub启动软改的grldr并不能成功。
只能chainloader (hd0,X)+1或直接chainloader /bootmgr

前者启动到软改后的win7,而后者只能启动未破解的win7

[ 本帖最后由 go2 于 2009-9-7 07:03 编辑 ]
作者: 天使的魔翼    时间: 2009-9-7 14:03
原帖由 go2 于 2009-9-7 06:59 发表
C版,#47

我不知你有没试过这样启动动。我试过用Grub启动软改的grldr并不能成功。
只能chainloader (hd0,X)+1或直接chainloader /bootmgr

前者启动到软改后的win7,而后者只能启动未破解的win7



能启动未破解WIN7的最好,这样一来,可以在GRUB里引导一个小东西,将自己的电脑虚拟成品牌机,一样能激活使用,以免后面更新或出新版后,又得找来找去的。
作者: eshlan    时间: 2009-9-17 12:16
我也是这么做的,不过在boot菜单添加了很多项,以防万一:
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
C:\esldr="搜寻易宗系统启动管理器(硬盘优先)"
C:\tboot="以TBOOT文件启动苹果操作系统"
C:\$WIN_NT$.~BT\BOOTSECT.DAT="启动 C 盘的 NT 安装程序"
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="启动第1个分区的 NT 系统" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="启动第2个分区的 NT 系统" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="启动第3个分区的 NT 系统" /noexecute=optin /fastdetect


esldr是编辑的搜索各个我会常用的ldr
default 0
timeout 1
fontfile (fd0)/gfont
splashimage (fd0)/gimage
title 0.搜寻  CDLDR.BIN    find /YIZONG/CDLDR.BIN
        fallback 1
        find --set-root --ignore-floppies /YIZONG/CDLDR.BIN
        configfile /YIZONG/CDLDR.BIN
title 1.搜寻  udldr        find /udldr
        fallback 2
        find --set-root --ignore-floppies /udldr
        configfile /udldr
title 2.搜寻  mdldr        find /mdldr
        fallback 3
        find --set-root --ignore-floppies /mdldr
        configfile /mdldr
title 3.搜寻  hdldr        find /hdldr
        fallback 4
        find --set-root --ignore-floppies /hdldr
        configfile /hdldr
title 4.搜寻  grldr        find /grldr
        fallback 5
        find --set-root --ignore-floppies /grldr
        configfile /grldr
title 5.搜寻  menu.lst     find /menu.lst
        fallback 6
        find --set-root --ignore-floppies /menu.lst
        configfile /menu.lst
title 6.命令行             commandline
commandline
作者: Climbing    时间: 2009-9-18 08:37
标题: 回复 #59 go2 的帖子
呵呵,我当然试过,而且,肯定能够成功我才发到这里。

据我推测,你用的软改程序应该是软改程序的老版本,老版本使用的grub4dos是很低的版本(这些版本可能不支持被直接chainloader),而作者后来又出了新版,基于最新版的grub4dos,我不能提供下载,不过去DRL或者类似的论坛应该可以找到。
作者: pseudo    时间: 2009-11-14 11:55
标题: winnt.xpe不能放在a:盘?
我把setupldr.bin(合并了dedetect.com),winnt.xpe做成一个a.img,先加载为fd0,chainloader (fd0)/setupldr.bin企图由它启动光盘上的pe,发现只认光盘上的winnt.xpe,光盘没有此文件,即使fd0有也不行。
这与楼主
建立一张软盘映像,将xp(或windows 2003的,兼容性更好)引导分区根目录下的ntldr、ntdetect.com、boot.ini(如果你需要显示菜单,也可以复制bootfont.bin)到软盘根目录下
有什么不同?我理解winnt.xpe相当于boot.ini,也应可以放在软盘。
作者: fujianabc    时间: 2009-11-14 18:44
原帖由 pseudo 于 2009-11-14 11:55 发表
我把setupldr.bin(合并了dedetect.com),winnt.xpe做成一个a.img,先加载为fd0,chainloader (fd0)/setupldr.bin企图由它启动光盘上的pe,发现只认光盘上的winnt.xpe,光盘没有此文件,即使fd0有也不行。
这与 ...

你先用原版的setupldr.bin+ntdetect.com+winnt.sif放到软盘上再试一下,顺便贴一下你的winnt.sif的内容
作者: pseudo    时间: 2009-11-14 19:29
标题: 回复 #64 fujianabc 的帖子
老毛桃911不管版,setupldr.bin和ntdetect.com在fd0的wxpe目录,winnt.xpe在fd0根目录:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\WXPE\SYSTEM32\"
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=MiniPE\WinPE.IS_"
如果光盘有winnt.xpe就正常。
现在有种感觉:winnt.xpe必须与WinPE.IS_在同一个盘上。

[ 本帖最后由 pseudo 于 2009-11-14 19:32 编辑 ]
作者: fujianabc    时间: 2009-11-14 19:50
原帖由 pseudo 于 2009-11-14 19:29 发表
老毛桃911不管版,setupldr.bin和ntdetect.com在fd0的wxpe目录,winnt.xpe在fd0根目录:
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\WXPE\SYSTEM32\"
OsLoadOptions="/minint /fastdetect /rdexportas ...

我刚才用原版2003 sp1的setupldr.bin+ntdetect.com以及一个winnt.sif放到软盘上试了一下。从软盘启动的setupldr.bin完全可以读取fd0上的winnt.sif的,比如以下代码
  1. [SetupData]
  2. BootDevice = "ramdisk(0)"
  3. BootPath = "\i386\system32"
  4. OsLoadOptions = "/minint /fastdetect /rdexportascd /rdpath=multi(0)disk(0)rdisk(0)partition(1)\pe.is_"
复制代码
就可以从软盘启动setupldr.bin然后加载硬盘上的winpe镜像

至于你从软盘启动加载不了光盘上的镜像,这很正常,因为setupldr.bin要依靠bios来读取光盘。如果你不是从光盘启动,setupldr.bin访问不了光盘的

如果你是从光盘上的虚拟软盘启动的setupldr.bin,想要加载光盘上的镜像,你就要考虑winnt.sif中光盘上文件的路径怎么写了,在硬盘上写成例如multi(0)disk(0)rdisk(0)partition(1)的形式,光驱的arc路径则比较麻烦了

[ 本帖最后由 fujianabc 于 2009-11-14 19:54 编辑 ]
作者: chenall    时间: 2009-11-14 20:01
看了SETUPLDR.BIN应该就是以下这些东西了。
硬盘
multi(0)disk(0)rdisk(0)partition(0)
光盘
multi(0)disk(0)cdrom(0)
软盘
multi(0)disk(0)fdisk(0)
PXE启动
net(0)
内存盘
ramdisk(0)
作者: ichiro    时间: 2009-11-15 15:10
好帖,学习了!~~~~~~~~~
作者: wjgyz740526    时间: 2009-11-16 14:10
我看见有人是这么做的

title         Windows NT/2K/XP/VISTA
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr || find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /ntldr || chainloader /bootmgr
作者: pseudo    时间: 2009-11-16 18:18
标题: 回复 #69 wjgyz740526 的帖子
这个写法很有可能出自我写的合盘菜单:)
http://bbs.wuyou.net/forum.php?m ... p;page=1#pid1694357
作者: pseudo    时间: 2009-11-16 18:28
原帖由 fujianabc 于 2009-11-14 19:50 发表
我刚才用原版2003 sp1的setupldr.bin+ntdetect.com以及一个winnt.sif放到软盘上试了一下。从软盘启动的setupldr.bin完全可以读取fd0上的winnt.sif的,比如以下代码[SetupData]
BootDevice = "ramdisk(0)"
B ...

谢谢,明白了
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=MiniPE\WinPE.IS_"
这个写法winnt.xpe必须与WinPE.IS_在同一个盘上,否则要指明ARC路径。现在是光盘路径怎么写的问题了。
原帖由 chenall 于 2009-11-14 20:01 发表
...光盘
multi(0)disk(0)cdrom(0)
...

我把老毛桃911原版光盘iso作为VMware客户机的光盘启动。发现如果将
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=MiniPE\WinPE.IS_"
改为
OsLoadOptions="/minint /fastdetect /rdexportascd /rdpath=multi(0)disk(0)cdrom(0)\MiniPE\WinPE.IS_"
其它不变,启动就失败。提示找不到multi(0)disk(0)cdrom(0)\MINIPE\WINPE.IS_。
常见的都是位于硬盘的写法multi(0)disk(0)rdisk(0)partition(1),或者省略。光盘不省略的话该怎么写呢?
作者: fujianabc    时间: 2009-11-16 19:30
说实话,multi(0)disk(0)cdrom(0)这种写法可能不是用于pc平台的,以前看见过的光驱arc路径都是很奇怪的写法,里面有不确定的参数
作者: fujianabc    时间: 2009-11-16 20:33
原帖由 friend8179 于 2009-11-16 19:33 发表
zhe这个值是CDROM(159)?

启动iso格式的PE在注册表中SYSTEM\CurrentControlSet\Control\SystemBootDevice

此处看到的键值

后来在时空上也看到各位讨论,和啥有关来着忘记了

159(0x9f)是bios中给光驱分配的盘号,就像软驱是0,第一硬盘是128 (0x80)一样。

但最关键的是,光驱这个盘号不是通用的,各个主板不同,比如vmware的bios分的是159(0x9f),但其他主板不一定是这个数字。

这个号码在grub下用geometry (cd)可以查看到

[ 本帖最后由 fujianabc 于 2009-11-16 20:55 编辑 ]




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