无忧启动论坛

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

[20120629更新8pe] 解决 pxe 启动 nt6.x 的 16s 延时问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-23 20:32:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
附件压缩包中的 pxeboot.7pe 修改自 wdsnbp.com ,用它来启动 \boot\pxeboot.n12 可解决 pxe 启动 win7pe 的 16s 延时问题。可以修改 0x7512 处的字符串来改变 pxeboot.n12 路径及文件名。
grldr 调用示例:
  1. pxe keep
  2. chainloader --force (pd)/BOOT/pxeboot.7pe
  3. boot
复制代码
以grldr为启动文件的pxe启动过程是:
grldr-->pxeboot.7pe-->pxeboot.n12/bcd-->bootmgr(.exe)-->boot.sdi/boot.wim-->winload.exe。

另根据5楼 buger 测试,如果BCD改了名的,还要修改 0x760F 处的相应字符串。

[2012-06-29] 更新:win8pe PXE 启动文件

以下内容回复不看见(吐槽):

附件包括文件:bcd、pxeboot.8pe、pxeboot.n12、w8pe.sdi (boot.sdi, 960k, 作者:joakim )
文件路径:\w8pe\
wim文件名:\w8pe\w8pe.wim

grldr 引导:
  1. chainloader --force (pd)/w8pe/pxeboot.8pe
复制代码
路径修改位置:

pxeboot.8pe:

0x77EE~7809  BCD 全路径文件名;路径文件名任意,必须以\0x0结束,共28个字符长度可用。
0x7843~7859  pxeboot.n12 全路径文件名;路径文件名任意,必须以\0x0结束,共23个字符长度可用。

pxeboot.n12 :

0x5A88~5A9C bootmgr.exe 全路径文件名;路径文件名任意,必须以\0x0结束,共21个字符长度可用。

[ 本帖最后由 canmao 于 2012-6-29 15:12 编辑 ]

pxeboot.7pe.zip

10.63 KB, 下载次数: 340, 下载积分: 无忧币 -2

pxeboot.8pe.7z

102.45 KB, 下载次数: 156, 下载积分: 无忧币 -2

2#
发表于 2011-4-23 22:09:51 | 只看该作者
hhh333的pe存在这个问题看来有方法解决了。up
回复

使用道具 举报

3#
发表于 2011-4-24 09:22:58 | 只看该作者
感谢分享。下来看看...
回复

使用道具 举报

4#
发表于 2011-4-24 11:21:06 | 只看该作者
感谢分享,马上试用。
回复

使用道具 举报

5#
发表于 2011-4-24 11:55:54 | 只看该作者
问题解决。
测试出错。读取BOOT\BCD 出现错误0XC000000F。引导到pxeboot.n12这部分出现个X64,然后就出错。机器是支持64位的。怎样让选项67不找64位的WIM?


  066   Boot Server Host Name            {this is the IP address of the WDS server}
       067   Bootfile Name                            boot\\x64\\wdsnbp.com\000  
                                                       boot\\x86\\wdsnbp.com\000

问题解决。原因是我的BOOT\BCD是改名了的,改成了\BOOT\BC5,需要在0X7610的位置将BOOT\BCD作修改。测试完全没有延时,选定菜单项后直接就开始load pe.wim了,感谢楼主解决这个老问题。

[ 本帖最后由 buger 于 2011-4-24 12:42 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2011-4-24 12:50:01 | 只看该作者

回复 #4 buger 的帖子

显示 Architecture: x64(或x86),是正常的。
回复

使用道具 举报

7#
发表于 2011-4-24 13:16:22 | 只看该作者
下面这个怎么改?

pxeboot.rar

8.31 KB, 下载次数: 122, 下载积分: 无忧币 -2

回复

使用道具 举报

8#
 楼主| 发表于 2011-4-24 14:52:58 | 只看该作者

回复 #7 zhaohj 的帖子

这个貌似等同 pxeboot.n12 的功能用于装载 bcd 和 bootmgr 的。应该用 pxeboot.7pe 来装载它。以grldr为启动文件的pxe启动过程是:
grldr-->pxeboot.7pe-->pxeboot.n12(pxeboot.0)-->bcd/bootmgr(.exe)-->boot.sdi/boot.wim-->winload.exe。
回复

使用道具 举报

9#
发表于 2011-4-24 15:16:33 | 只看该作者
是的,启动方式是:grldr-->pxeboot.7pe-->pxeboot.0-->bcd/bootmgr(.exe)-->boot.sdi/boot.wim-->winload.exe
能否把pxeboot.7pe-->pxeboot.n12合并?
------------------------------
实际上直接chainloader --force /boot/pxeboot.0也行,只不过有16秒延时,以前是用python来解决的。
回复

使用道具 举报

10#
 楼主| 发表于 2011-4-24 16:07:08 | 只看该作者
python 方法应该是服务器端运行一个守护进程的方式吧? 坛里以前有过,但后来好像删掉了。我曾经在网上搜了很长时间也没找到,能否教我?

这个方法是参考微软这篇文章启动7pe时,偶然发现 wdsnbp.com 启动时也有16s延时。但它延时后,bootmgr.exe就不再延时了。于是动了邪念,结果居然成了。呵呵,欺负wdsnbp.com只有30k。
现在只是瞎猫碰上的,具体的机制还不清楚。我曾尝试pxeboot.7pe装载pxeboot.n12后,在pxeboot.n12获得控制时,把内存中的pxeboot.n12代码提取出来与原文件比较,没有发现有任何改变。
回复

使用道具 举报

11#
发表于 2011-4-24 16:35:24 | 只看该作者
能上传原版的wdsnbp.com吗?我对比一下看看改动了啥

wdsnbp.com与pxeboot.com有大量重复的代码,我想都有对DHCP/PXE 验证,如果能干掉pxeboot.com中的验证,就只要一个文件就可以了。

如果无法干掉pxeboot.com中的验证,通过续尾法也可以合并成一个文件。

[ 本帖最后由 zhaohj 于 2011-4-24 16:54 编辑 ]
回复

使用道具 举报

12#
 楼主| 发表于 2011-4-24 17:29:40 | 只看该作者
其实就在win7安装光盘中:\sources\boot.wim\2\Windows\Boot\PXE\ 下。sp0 和 sp1 都一样。

关键在0x24FA。其他都可有可无。

wdsnbp.zip

10.63 KB, 下载次数: 85, 下载积分: 无忧币 -2

回复

使用道具 举报

13#
发表于 2011-6-29 00:09:09 | 只看该作者
我修改0x7512处的路径为\BOOT\PE\PXEMG.0结果我查看TFTP文件下载日志里面就没有下载这个PXEMG.0文件,报错提示是:TFTP download failed,是不是我路径修改的方法不对啊?方
回复

使用道具 举报

14#
发表于 2011-6-29 01:20:04 | 只看该作者
漂亮~
這是最簡單又最難找出的方法
回复

使用道具 举报

15#
发表于 2012-6-28 11:29:11 | 只看该作者
@canmao:
win8pe也能破解下,用win7pe的pxe启动文件无法引导win8pe
回复

使用道具 举报

16#
 楼主| 发表于 2012-6-28 14:27:12 | 只看该作者

回复 #15 zhaohj 的帖子

抽空我试试。。。。。
回复

使用道具 举报

17#
发表于 2012-6-28 15:23:49 | 只看该作者
我把文件传给你:win8pe(rp)pxe启动文件

PXE.rar

18.79 KB, 下载次数: 55, 下载积分: 无忧币 -2

回复

使用道具 举报

18#
发表于 2012-6-28 17:45:09 | 只看该作者
这个真的很有必要,win8再过几个月就开始普及了。鼎力支持。
回复

使用道具 举报

19#
发表于 2012-6-29 09:04:06 | 只看该作者
好消息,win7pe的pxe启动文件完全可以启动WIN8PE,只要把win8的bootmgr.exe替换win7的就可以了。
但有个前提,boot.sdi需要原版的,不能用300k精简版。
而且,win8的bootmgr.exe可以引导win7pe。

一下批处理生成bc7(即bcd),放在\w7pe下,boot.sdi也改名为w7pe.sdi放在\w7pe下,需要bcdedit.exe支持
echo off
set d01=Windows7 PE by one1
set f01=ramdisk=[boot]\w7pe\W7pe.WIM,{ramdiskoptions}
set d02=Windows7 PE by one2
set f02=ramdisk=[boot]\w7pe\W7pe1.WIM,{ramdiskoptions}
del bc7
bcdedit /createstore bc7
bcdedit /store bc7 /create {bootmgr} /d "Windows Boot Manager"
bcdedit /store bc7 /set {bootmgr} timeout 10
rem bcdedit /store bc7 /set {bootmgr} graphicsmodedisabled yes
bcdedit -store bc7 /set {bootmgr} locale zh-CN
rem 数字签名
bcdedit /store bc7 /set {bootmgr} nointegritychecks yes

bcdedit /store bc7 /create {ramdiskoptions}
bcdedit /store bc7 /set {ramdiskoptions} ramdisksdidevice boot
bcdedit /store bc7 /set {ramdiskoptions} ramdisksdipath \w7pe\w7pe.sdi
rem TFTP传输块大小
bcdedit /store bc7 /set {ramdiskoptions} ramdisktftpblocksize 12288
rem TFTP窗口大小
bcdedit /store bc7 /set {ramdiskoptions} ramdisktftpwindowsize 8192
for /f "tokens=1,2 delims={}" %%i in ('Bcdedit -store bc7 -create /d "%d01%" /application osloader ') do SET GUID1=%%j
bcdedit -store bc7 /set {%GUID1%} systemroot  \windows
bcdedit -store bc7 /set {%GUID1%} path  \windows\system32\boot\winload.exe
bcdedit -store bc7 /set {%GUID1%} locale zh-CN
bcdedit -store bc7 /set {%GUID1%} winpe  yes
bcdedit -store bc7 /set {%GUID1%} detecthal yes
bcdedit -store bc7 /set {%GUID1%} device  %f01%
bcdedit -store bc7 /set {%GUID1%} osdevice  %f01%
bcdedit  -store bc7 /displayorder {%GUID1%} /addlast
for /f "tokens=1,2 delims={}" %%i in ('bcdedit -store bc7 -create /d "%d02%" /application osloader ') do SET GUID1=%%j
bcdedit -store bc7 /set {%GUID1%} systemroot  \windows
bcdedit -store bc7 /set {%GUID1%} path \windows\system32\boot\winload.exe
bcdedit -store bc7 /set {%GUID1%} locale zh-CN
bcdedit -store bc7 /set {%GUID1%} winpe  yes
bcdedit -store bc7 /set {%GUID1%} detecthal yes
bcdedit -store bc7 /set {%GUID1%} device  %f02%
bcdedit -store bc7 /set {%GUID1%} osdevice  %f02%
bcdedit  -store bc7 /displayorder {%GUID1%} /addlast
pause
bcdedit /enum all /store bc7
pause

[ 本帖最后由 zhaohj 于 2012-6-29 11:33 编辑 ]
回复

使用道具 举报

20#
 楼主| 发表于 2012-6-29 14:19:00 | 只看该作者
更新 Win8 rp PXE启动文件。详见一楼
回复

使用道具 举报

21#
发表于 2012-6-29 17:42:22 | 只看该作者
厉害,这么快就搞好了。
测试ok!
回复

使用道具 举报

22#
发表于 2012-7-6 12:46:10 | 只看该作者
什么东东?
回复

使用道具 举报

23#
发表于 2012-7-21 17:07:27 | 只看该作者
恭喜楼主研究成功,谢谢分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-19 20:55

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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