无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
12
返回列表 发新帖
楼主: hnzz110
打印 上一主题 下一主题

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

[复制链接]
31#
发表于 2012-11-1 18:01:35 | 只看该作者

回复 #30 zhaohj 的帖子

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

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

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

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

使用道具 举报

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等一定放在根目录下,从而达到根目录清爽的目的。
回复

使用道具 举报

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]
回复

使用道具 举报

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

回复 #33 hnzz110 的帖子

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

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

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

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

使用道具 举报

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 编辑 ]
回复

使用道具 举报

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 编辑 ]
回复

使用道具 举报

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。
回复

使用道具 举报

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, 下载次数: 96)

Snap0.jpg

1.rar

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

回复

使用道具 举报

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

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

也可以

geometry (cd)

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



cat --hex (cd)16+16

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

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

使用道具 举报

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

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

Snap1.jpg

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

Snap2.jpg

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

Snap3.jpg
回复

使用道具 举报

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

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

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

使用道具 举报

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更完美!
回复

使用道具 举报

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

使用道具 举报

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, 下载次数: 96)

Snap0.jpg

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

Snap1.jpg
回复

使用道具 举报

45#
发表于 2012-11-4 16:59:42 | 只看该作者

回复 #29 不点 的帖子

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


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

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-5 08:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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