无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 13278|回复: 44
打印 上一主题 下一主题

[求助] (已解决)pxe引导,win7或win8的pxeboot.n12为引导文件,如何启动G4D?

[复制链接]
跳转到指定楼层
1#
发表于 2012-10-28 22:27:49 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
pxe引导,win7或win8的pxeboot.n12为引导文件,如何启动G4D?
搜索了一段时间,一片茫然,不得要领,真心求教
BCD如何配置,才能引导GRLDR?--此句说错了,改为:
如何配置,才能启动G4D
网上基本上是讲如何引导PE,我不想引导PE,只想引导G4D!
有了G4D,引导什么无所谓,所以谢绝回复如何引导PE
--------------
有表述不清楚的,请包涵,想解决技术问题,不想吵架

[ 本帖最后由 hnzz110 于 2012-11-3 04:23 编辑 ]
45#
发表于 2012-11-4 16:59:42 | 只看该作者

回复 #29 不点 的帖子

上载在什么地方,我下来试一试!


###应该是grub4dos-0.4.5c-2012-11-01.7z.zip,在论坛中找到了,谢谢!

[ 本帖最后由 hhh333 于 2012-11-4 21:37 编辑 ]
回复

使用道具 举报

44#
发表于 2012-11-3 16:27:10 | 只看该作者
今天有空再次测试光盘引导的问题,一次成功。
win8的bios光盘引导文件是etfsboot.com,使用oscdimg.exe来生成光盘:
如我把要合成的文件全部放在boot下,bin下放oscdimg.exe
@echo off
path %path%;"%~dp0bin"
oscdimg.exe -n -m -o -b%~dp0boot/boot/etfsboot.com %~dp0boot %~dp0win8pe.iso

也可以写成同时支持uefi的,太复杂!

[ 本帖最后由 zhaohj 于 2012-11-3 16:54 编辑 ]

Snap0.jpg (39.33 KB, 下载次数: 87)

Snap0.jpg

Snap1.jpg (36.28 KB, 下载次数: 76)

Snap1.jpg
回复

使用道具 举报

43#
发表于 2012-11-3 08:31:47 | 只看该作者
pxe 传输慢,那是 pxe BIOS 的问题,从 grub4dos 的角度无法解决。
回复

使用道具 举报

42#
 楼主| 发表于 2012-11-3 04:22:20 | 只看该作者
问题完美解决,感谢zhaohj、不点耐心细致的帮助以及超高的工作效率!
可以结贴了,标题改为已解决。
----
还有一个问题,就是PXE文件传输速度,似乎转到grldr后,win8pxe高速传输没有了。
当时提出“win8的pxeboot.n12为引导文件,如何启动G4D?”,就是受此贴启发:

求教wim启动的正确方法和ramdisktftpblocksize 如何配置???(http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1

希望G4D更完美!
回复

使用道具 举报

41#
发表于 2012-11-2 21:28:26 | 只看该作者
那就清楚了。grub4dos 没问题,可以访问光盘。

只是由于这个光盘是 UDF 格式,规范是 iso-13346,这个不被 grub4dos 支持。

你只要提取微软的引导代码,让它引导 bootmgr,然后,bootmgr 就可以引导 grldr 了。不要使用 iso-13346 ,而使用兼容性好的 ISO9660 格式。
回复

使用道具 举报

40#
发表于 2012-11-2 13:55:47 | 只看该作者
按你上面说的截几个图:

Snap1.jpg (11.58 KB, 下载次数: 76)

Snap1.jpg

Snap2.jpg (159.67 KB, 下载次数: 75)

Snap2.jpg

Snap3.jpg (68.38 KB, 下载次数: 89)

Snap3.jpg
回复

使用道具 举报

39#
发表于 2012-11-2 12:54:00 | 只看该作者
从你给的信息可以知道,光盘已经被识别出来了。

你用 ls (cd)/ 应该可以列出光盘文件。

也可以

geometry (cd)

看看 cd 设备是否被识别出来。



cat --hex (cd)16+16

看看这个 cd 是不是 iso9660 格式的。

[ 本帖最后由 不点 于 2012-11-2 13:02 编辑 ]
回复

使用道具 举报

38#
发表于 2012-11-2 11:36:33 | 只看该作者
cat 命令列出 0000:7C00 处的4个扇区,换成扇区序列是(md)0x3e+4
dd if=(md)0x3e+4 of=(hd0,4)/1.txt bs=512 count=4

[ 本帖最后由 zhaohj 于 2012-11-2 11:44 编辑 ]

Snap0.jpg (44.81 KB, 下载次数: 81)

Snap0.jpg

1.rar

1.24 KB, 下载次数: 14, 下载积分: 无忧币 -2

回复

使用道具 举报

37#
发表于 2012-11-2 10:54:32 | 只看该作者
原帖由 zhaohj 于 2012-11-2 09:09 发表
用原版的win8光盘,修改bcd,加入grldr及menu.lst到光盘
可以启动grldr,但菜单出不来。ls ()/ 也没文件显示。
不知win8的光盘文件怎么生成的,我想是光盘模式问题,grldr不支持。


这太好了,说明光盘也没问题了。遇到的问题说明 bootmgr 没有把光盘的 BIOS 盘号传给 grldr。进入 grldr 之后,用 cat 命令列出 0000:7C00 处的 4 个扇区,看看其内容是什么。总之,这个问题不难解决。

另,我pxeboot.n12直接转硬盘的ntldr不成功。这很奇怪,转不到硬盘上。


这不奇怪的。要想让 ntldr 启动成功,必须在 0000:7C00 放置 ntldr 所在分区的引导扇区,pxe 上的 bootmgr 可能没有真正打算启动 ntldr,所以,它也就不能启动 ntldr。
回复

使用道具 举报

36#
发表于 2012-11-2 09:09:43 | 只看该作者
用原版的win8光盘,修改bcd,加入grldr及menu.lst到光盘
可以启动grldr,但菜单出不来。ls ()/ 也没文件显示。
不知win8的光盘文件怎么生成的,我想是光盘模式问题,grldr不支持。

另,我pxeboot.n12直接转硬盘的ntldr不成功。这很奇怪,转不到硬盘上。

[ 本帖最后由 zhaohj 于 2012-11-2 10:18 编辑 ]
回复

使用道具 举报

35#
发表于 2012-11-2 08:08:40 | 只看该作者
pxe启动文件pxeboot.n12(最好是win8的pxe引导文件,可以通吃,对应版本bootmgr.exe)配置文件bcd:
(21楼下载)
makebc8.cmd:

echo off
set d01=Windows8 PE (w8pe.wim)  by one1
set f01=ramdisk=[boot]\w8pe\W8pe.WIM,{ramdiskoptions}
......
set d04=Grub4dos
set f04=\grldr
del bc8
bcdedit /createstore bc8

bcdedit -store bc8 /create {bootmgr} /d "windows bootmgr Manager"
bcdedit -store bc8 /set {bootmgr} timeout 10
rem bcdedit -store bc8 /set {bootmgr} graphicsmodedisabled yes
bcdedit -store bc8 /set {bootmgr} locale zh-CN
rem 数字签名
bcdedit /store bc8 /set {bootmgr} nointegritychecks yes

bcdedit -store bc8 /create {ramdiskoptions}
bcdedit -store bc8 /set {ramdiskoptions} ramdisksdidevice boot
bcdedit -store bc8 /set {ramdiskoptions} ramdisksdipath \w8pe\w8pe.sdi
rem TFTP传输块大小,千兆网可改成8192
bcdedit -store bc8 /set {ramdiskoptions} ramdisktftpblocksize 2048
rem 窗口大小
bcdedit -store bc8 /set {ramdiskoptions} ramdisktftpwindowsize 8192

for /f "tokens=1,2 delims={}" %%i in ('Bcdedit -store bc8 -create /d "%d01%" /application osloader ') do SET GUID1=%%j
bcdedit -store bc8 /set {%GUID1%} systemroot  \windows
bcdedit -store bc8 /set {%GUID1%} path  \windows\system32\boot\winload.exe
bcdedit -store bc8 /set {%GUID1%} locale zh-CN
bcdedit -store bc8 /set {%GUID1%} winpe  yes
bcdedit -store bc8 /set {%GUID1%} detecthal yes
bcdedit -store bc8 /set {%GUID1%} device  %f01%
bcdedit -store bc8 /set {%GUID1%} osdevice  %f01%
bcdedit -store bc8 /displayorder {%GUID1%} /addlast
......
for /f "tokens=1,2 delims={}" %%i in ('Bcdedit -store bc8 -create /d "%d04%" /application bootsector ') do SET GUID1=%%j
bcdedit -store bc8 /set {%GUID1%} device boot
bcdedit -store bc8 /set {%GUID1%} PATH %f04%
bcdedit -store bc8 /displayorder {%GUID1%} /addlast

pause
bcdedit /enum all /store bc8
pause

[ 本帖最后由 zhaohj 于 2012-11-2 08:23 编辑 ]
回复

使用道具 举报

34#
发表于 2012-11-2 06:01:47 | 只看该作者

回复 #33 hnzz110 的帖子

15楼的代码肯定不行。你需要仔细看 25 楼以后的讨论。

特别请注意:看我的帖子,不要用我的代码。

我的代码是错的、不准确的。这是因为我对于 pxe 启动方面的知识以及微软的 BCD 的相关配置参数都几乎完全不了解。所以,当你看我的帖子的时候,你不要特别留意我所提供的具体代码,而主要看我的精神实质,看我的哲学,看我的思维方式。

至于说具体的 BCD 配置代码应该如何写,需要 zhaohj 帮你搞定。
回复

使用道具 举报

33#
 楼主| 发表于 2012-11-2 03:20:34 | 只看该作者
问题依旧,郁闷:
下载grub4dos-0.4.5c-2012-11-01,提取grldr,重命名为grldr.0,用15楼方法生成BCD文件
使用Tftpd32配置服务器,在XP、windows7下测试均失败,出错信息如下:
Rcvd DHCP Discover Msg for IP 0.0.0.0, Mac D8:D3:85:18:76:3F [02/11 02:51:09.765]
Client requested address 0.0.0.79 [02/11 02:51:09.765]
DHCP: proposed address 192.168.0.11 [02/11 02:51:09.765]
2756 Request 2 not processed [02/11 02:51:09.765]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac D8:D3:85:18:76:3F [02/11 02:51:13.781]
Previously allocated address 192.168.0.11 acked [02/11 02:51:13.781]
2756 Request 2 not processed [02/11 02:51:13.781]
Connection received from 192.168.0.11 on port 2070 [02/11 02:51:13.781]
Read request for file <pxeboot.n12>. Mode octet [02/11 02:51:13.781]
Using local port 1125 [02/11 02:51:13.781]
<pxeboot.n12>: sent 50 blks, 25358 bytes in 0 s. 0 blk resent [02/11 02:51:13.859]
Connection received from 192.168.0.11 on port 2071 [02/11 02:51:13.859]
Read request for file <bootmgr.exe>. Mode octet [02/11 02:51:13.875]
Using local port 1126 [02/11 02:51:13.875]
<bootmgr.exe>: sent 1275 blks, 652528 bytes in 2 s. 0 blk resent [02/11 02:51:15.968]
Connection received from 192.168.0.11 on port 14311 [02/11 02:51:16.296]
Read request for file <\Boot\BCD>. Mode octet [02/11 02:51:16.296]
OACK: <tsize=8192,> [02/11 02:51:16.296]
Using local port 1127 [02/11 02:51:16.296]
Peer returns ERROR <TFTP Aborted> -> aborting transfer [02/11 02:51:16.296]
Connection received from 192.168.0.11 on port 14312 [02/11 02:51:16.296]
Read request for file <\Boot\BCD>. Mode octet [02/11 02:51:16.296]
OACK: <tsize=8192,> [02/11 02:51:16.296]
Using local port 1128 [02/11 02:51:16.296]
Connection received from 192.168.0.11 on port 14313 [02/11 02:51:16.375]
Read request for file <\hiberfil.sys>. Mode octet [02/11 02:51:16.390]
File <\hiberfil.sys> : error 2 in system call CreateFile 系统找不到指定的文件。 [02/11

02:51:16.390]
Connection received from 192.168.0.11 on port 2072 [02/11 02:51:16.390]
Read request for file <\grldr.0>. Mode octet [02/11 02:51:16.390]
Using local port 1130 [02/11 02:51:16.390]
WARNING : Last block #17 not acked for file <\Boot\BCD> [02/11 02:51:31.296]
<\Boot\BCD>: sent 16 blks, 8192 bytes in 15 s. 6 blks resent [02/11 02:51:31.296]
TIMEOUT waiting for Ack block #66  [02/11 02:51:31.484]
回复

使用道具 举报

32#
发表于 2012-11-1 23:10:20 | 只看该作者
刚才在上网本实机又试了一下,WIN7的BOOTMGR不但可以直接启动GRLDR而不必经过GRLDR.MBR,而且将GRLDR放在GRUB目录下,而在BCD中指定GRLDR的目录,BOOTMGR仍然可以启动GRLDR成功——由此可见,只要修改GRLDR.MBR或者WEE63中找寻GRLDR的相关目录,就可以将GRLDR或者是BOOTMGR、NTLDR等放在指定的目录下,而不必将GRLDR、NTLDR等一定放在根目录下,从而达到根目录清爽的目的。
回复

使用道具 举报

31#
发表于 2012-11-1 18:01:35 | 只看该作者

回复 #30 zhaohj 的帖子

前面 xianglang 已经测试过,说是可以的。

另外还有一项测试,就是光盘上的 bootmgr 能否直接加载光盘上的 grldr 的问题。zhaohj 是否也有时间给以测试呢?

如果这个测试也 OK 了,那么 grldr 就是左右逢源了,与主要的启动软件都能够 “互操作”了。

[ 本帖最后由 不点 于 2012-11-1 18:02 编辑 ]
回复

使用道具 举报

30#
发表于 2012-11-1 17:50:55 | 只看该作者
不点大效率太高了,竟然一次成功!
---------------------------
另外,硬盘上我没有测试,那硬盘启动引导bootmgr也可以直接转grldr,无需grldr.mbr中转?
回复

使用道具 举报

29#
发表于 2012-11-1 17:35:31 | 只看该作者
上载了。试试看,问题应该都解决了。
回复

使用道具 举报

28#
发表于 2012-11-1 16:10:39 | 只看该作者
用{ntldr} 或 /application bootsectot 都可以

Snap1.jpg (23.25 KB, 下载次数: 79)

Snap1.jpg
回复

使用道具 举报

27#
发表于 2012-11-1 15:37:10 | 只看该作者

回复 #26 zhaohj 的帖子

成功了,很棒!贡献大大的。

pxe 丢失的问题,属于 grldr 的问题,我稍后即可解决。

现在你只需要确定究竟有多少个 apptype 以及多少个 /application 参数可以成功加载 grldr 进入命令行(暂时不管 PXE 是否丢失)。

[ 本帖最后由 不点 于 2012-11-1 15:41 编辑 ]
回复

使用道具 举报

26#
发表于 2012-11-1 15:26:35 | 只看该作者
bcdedit /create [{<id>}] /d <description> [-application <apptype> |
    /inherit [<apptype>] | /inherit DEVICE | /device]
----------------------------------
已知标识符如下所示{<id>}:

BOOTAPP     启动应用程序。这些类型也应用于启动管理器、
            内存诊断应用程序、Windows OS 加载器和恢复
            应用程序。
BOOTMGR     启动管理器。
BOOTSECTOR  启动扇区应用程序。
CUSTOMTYPES 自定义类型。
DEVOBJECT   设备对象附加选项。
FWBOOTMGR   固件启动管理器
MEMDIAG     内存诊断应用程序
NTLDR       以前的 Windows OS 版本附带的 OS 加载器
OSLOADER    Windows Vista OS 加载器
RESUME      恢复应用程序
-----------------------------------------
application <apptype> 可以是下列类型之一:

                                BOOTSECTOR
                                OSLOADER
                                RESUME
                                STARTUP


---------------------------------------
测试:
使用{ntldr}标识符,确实可以引导grldr,但pxe丢失;
使用 /application BOOTSECTOR也一样,可以引导grldr,但pxe丢失;

------------------------
/application startup是real-mode application
可以使用参数pxesoftreboot,相当于pxe keep
但很不幸,测试黑屏。

关于bcd参数详见:http://www.geoffchappell.com/notes/windows/boot/bcd/elements.htm

[ 本帖最后由 zhaohj 于 2012-11-1 15:44 编辑 ]
回复

使用道具 举报

25#
发表于 2012-11-1 12:00:07 | 只看该作者
我从这里 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=160830

抄来一段代码:

  1. @echo off
  2. set TP=%~DP0
  3. bcdedit /createstore %TP%bcd
  4. bcdedit /store %TP%bcd /create {ntldr} /d "Windows XP sp2"
  5. bcdedit /store %TP%bcd /set {ntldr} device partition=c:
  6. bcdedit /store %TP%bcd /set {ntldr} path \ntldr
  7. rem bcdedit /store %TP%bcd /displayorder {ntldr} /addlast
  8. bcdedit /store %TP%bcd /create /d "GRUB for DOS" /application bootsector >log.txt
  9. for /f "tokens=1,2,3,4* delims= " %%i in (log.txt) do set id=%%k
  10. bcdedit /store %TP%bcd /set %id% device partition=C:
  11. bcdedit /store %TP%bcd /set %id% path \grldr.mbr
  12. bcdedit /store %TP%bcd
复制代码


注意,其他项目没有太大用处,把焦点放在 ntldr 上。

我只改动了一处,把 path \ntldr 改成了 path \grldr:

  1. bcdedit /store %TP%bcd /create {ntldr} /d "Windows XP sp2"
  2. bcdedit /store %TP%bcd /set {ntldr} device partition=c:
  3. bcdedit /store %TP%bcd /set {ntldr} path \grldr
  4. rem bcdedit /store %TP%bcd /displayorder {ntldr} /addlast
复制代码


我不太懂这方面的知识,但相信 zhaohj 可以借鉴这段代码,并把它用于 pxe 启动的情况。
回复

使用道具 举报

24#
发表于 2012-11-1 10:25:18 | 只看该作者
pxeboot.bcd 是 pxeboot.n12 改名而来
w8bcd         是 bootmgr.exe 改名而来,修改了pxeboot.bcd文件引导w8bcd(bootmgr.exe改名)。
mybcd.cmd是为了修改不同的BCD参数重新生成bcd,是批处理。
tftp无所谓,哪个都行
回复

使用道具 举报

23#
发表于 2012-11-1 10:13:57 | 只看该作者
grldr.pd 的任务,还是由 yaya 来完成比较合适。但不知 yaya 是否对 pxe 感兴趣。

目前我觉得让 bootmgr 在 PXE 环境下直接启动 grldr 是能够实现的。

zhaohj 在 21楼说的有些简单了,我还没能看明白其过程。你需要再详细一些,因为我不曾接触 PXE ,不明白来龙去脉,比如说,我不知道 pxeboot.bcd 是不是微软的。

tftp 服务器用 tftpd 吗?

你最好能做个极小的虚拟机镜像,让我直接能开始工作。我的主要手段是变换不同的 BCD 参数,让它加载完整的 grldr 文件。
回复

使用道具 举报

22#
发表于 2012-11-1 09:58:44 | 只看该作者
现在yaya已经提供grldr.mbr、grldr.pbr、grldr.bin(光盘)引导文件,都是物理介质上的。
grldr.pd是否中转必须的?
回复

使用道具 举报

21#
发表于 2012-11-1 09:33:45 | 只看该作者
虚拟机就不提供了,太大。
把下面文件释放到tftp下
测试:pxe引导grldr,grldr引导w8pe/pxeboot.bcd。
mybcd.cmd修改一下,把pxelinux.0替换成grldr.0,重新生成bcd(我测试黑屏)

[ 本帖最后由 zhaohj 于 2012-11-2 08:23 编辑 ]

tftp.part1.rar

495 KB, 下载次数: 45, 下载积分: 无忧币 -2

tftp.part2.rar

256.25 KB, 下载次数: 45, 下载积分: 无忧币 -2

回复

使用道具 举报

20#
发表于 2012-11-1 08:28:15 | 只看该作者
能不能教一教,给我一个环境?让我来测试一下。

如果能够给个现成的虚拟机镜像更好。
回复

使用道具 举报

19#
 楼主| 发表于 2012-11-1 05:14:42 | 只看该作者
为了检验,下载了本论坛中的10.22日版本的G4D,查看pxeboot.n12、bootmgr.exe、boot.sdi等文件,时间都是‎2012‎年‎7‎月‎26‎日,从微软msdn上下载最新文件对比,目前没有发现最新版本,
结果,出错信息是一致的。(前面记录的鸟文出错信息,存在拼写错误,抱歉)

想要的效果是PXE启动,win8相关文件直接引导G4D,想验证互相引导的便利性和正确性,不想利用第三方软件周转

......
回复

使用道具 举报

18#
发表于 2012-10-31 09:52:26 | 只看该作者
16楼使用的 grldr 太旧了。bootmgr 也可能太旧了。
回复

使用道具 举报

17#
发表于 2012-10-31 09:05:26 | 只看该作者
grldr(grldr.0)太大,用pxelinux.0中转成功的例子:

Snap1.jpg (71.27 KB, 下载次数: 89)

Snap1.jpg
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-12 22:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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