无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 9891|回复: 17
打印 上一主题 下一主题

win7pe和RIS PXE多启动分析

[复制链接]
跳转到指定楼层
1#
发表于 2010-4-7 20:16:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注:此文主要给使用pxe启动PE ghost装os的朋友参考,适合小规模装机使用,不是初级教程,如果你对pxe启动还不是很了解, 可以先搜索论坛了解相关设置。
* 映射网络驱动器脚本参考了chenall的pe
* wselect 下载http://home.mnet-online.de/horst.muc/w32dial.htm
* ris-linux 下载http://oss.netfarm.it/guides/pxe.php

原文来自http://jamesdai2002.spaces.live.com/,
e-mail: jamesdai2002@hotmail.com


公司一直用XPPE和RIS给PC安装os, 随着PC硬件的不断更新,发现xp pe也老了,经常需要更新硬盘控制器和网卡驱动,非常麻烦,于是增加了一个Win7 PE, 放在公司服务器上(因为同时有很多个pe/ris在服务器上pxe启动,所以启动菜单也是必须的).

1. PE image制作
       无忧论坛上有很多网友制作的现成的pe, 都带有桌面和应用软件,系统也做了一些精简,下载了一些都发现不太合适,有的没网卡驱动,有的太花哨了一点,不实用,还是用微软提供的aik tools来做,图形桌面对于装os也不是必须的,改用wselect menu来代替。

安装win7 AIK中文版本,copype.cmd x86 c:\winpe_x86  生成winpe.wim
原版的win7pe共160M,中文字体有点大,大概有40M, 用imagex  /apply c:\winpe_x86\winpe.wim 1 i: 解压到I:盘, 替换掉其中的几个大字库。
修改windows\system32\startnet.cmd, 增加下面的内容(%%里面的内容可用实际的地址和名称替换)
:映射网络驱动器
if "%n%"=="400" goto :服务器不通
net use P:
[url=]\\%PXE_SERVER%\%SHARE_NAME%[/url] %SHARE_PASS% /user:%SHARE_USER%  2>NUL
net use P:
[url=]\\%PXE_SERVER%\%SHARE_NAME%[/url] %SHARE_PASS% /user:%SHARE_USER%@%COMPUTERNAME%  2>NUL
if exist %ExtProgramFiles%\ext_run.cmd goto :装载外部配置文件
set/an+=1 >nul
goto :映射网络驱动器


:装载外部配置文件
if exist %ExtProgramFiles%\ext_run.cmd call %ExtProgramFiles%\ext_run.cmd


重新用  imagex  /capture /boot /compress maximun  c:\winpe_x86\mype.wim "pe"   制作成新的pe, 大约120M

2.  Wselect Menu制作。
微软原版的win 7 PE启动后,自动加载startnet.cmd,  其中包含wpeinit.exe, 加载网卡驱动,然后map一个网络驱动器,成功后运行网络盘上的ext_run.cmd
在ext_run.cmd中包含wselect制作的menu(类似wbat), 只是运行在windows cmd下面。

P:
cd %ExtProgramFiles%

:menu
wselect pemenu.txt "PE选择菜单,使用键盘上下键和回车键选择:" ""

if  %errorlevel%==1 goto :item1
if  %errorlevel%==2 goto :item2
if  %errorlevel%==3 goto :item3
if  %errorlevel%==4 goto :item4
if  %errorlevel%==5 goto :item5
if  %errorlevel%==6 goto :item6
if  %errorlevel%==7 goto :item7
exit



3. BootMgr的pxe启动
A.  bootmgr是vista/win7的引导工具, 要想bootmgr实现多个pe的引导,必须使用bootmgr的菜单,如果同时用pxelinux或者grub4dos, 就变成双重菜单,很不方便,需要使用ultraedit一类的工具修改一些字符串以满足启动多个pe的需要。
以vista自带的bootmgr为例, bootmgr使用校验和,数字签名来保护程序本身不被修改,bootmgr.exe在0x130有一个校验和,修改完成后需要重新计算(如果校验和为112233,这此次需修改成332211)。
数字签名无法破解,幸好可以通过配置文件关闭检查,bcdedit  {bootmgr} -set nointegritychecks Yes

B. 当PXE启动加载bootmgr时,缺省会和boot server(也就是wds server)通信,端口为udp 4011,     pxe客户端会发送请求包到4011, 等待一个boot menu的配置, 如果boot server没有回应,会发送8个dhcp request  packet, 每个2s, 会延迟约16s,如果16秒后服务器仍未响应,则加载tftproot下boot\bcd配置文件,为避免16秒的延迟,需要在tftp server运行一个daemon程序(可下载ris linux 0.4改写),根据请求的字符串,发送一个配置文件路径和名称。
通过修改bootmgr中PXEclient字符串, 可使客户端发送的字符串不同,回应的bcd文件也可以不同,实现不用的bootmgr文件对应不同的bcd文件(当然直接修改bootmgr里面的boot\bcd字符串也可以, 不过有延迟)
pxeboot.0(PXEBoot.com改名)-->bootmgr.exe--->boot\bcd----->win7pe.wim
pxeboo1.0(PXEBoot.com改名)-->bootmg1.exe(修改pexclient字符串)--->boot\pxew7pe01(这个名称由ris-linux发送)--->w7pe01.wim
pxeboo2.0(PXEBoot.com改名)-->bootmg2.exe(修改pexclient字符串)--->boot\pxexppe01(这个名称由ris-linux发送)-->startrom.0(可加载pe1.x或者ris, 优点是使用相对路径,ntldr可以放到任意目录下)

120M WIN7 PE相比XP PE还是大很多,不过由于tftp传输效率的提高,实际加载和启动时间差别不是很大,大约1分钟左右。

win7和XP相比对网络的利用率提高了很多,同样100M的网络,使用windows文件共享copy文件,win7的网络利用率在95%以上,XP只有70%,当然Win7PE也不是万能的,才用了几天就发现一个dell pc的网卡驱动没有,还好ms提供了命令可以直接添加驱动,就手工添加一下了。


2#
发表于 2010-4-7 23:26:24 | 只看该作者
支持一下,我就用现成的。网卡驱动多集成点。

你研究一下网卡驱动能否外置。
回复

使用道具 举报

3#
发表于 2010-4-8 10:59:30 | 只看该作者
16秒延时的问题能提供个工具解决吗?目前正研究PXE启动的win7 pe,谢谢。
回复

使用道具 举报

4#
发表于 2010-4-8 11:59:30 | 只看该作者
win7pe的网卡驱动还是太少了
回复

使用道具 举报

5#
发表于 2010-4-10 16:07:51 | 只看该作者
顶一下,HaneWin DHCP里面如何加载boormgr再启动w7pe01.wim这类文件呢?
回复

使用道具 举报

6#
 楼主| 发表于 2010-4-11 20:04:10 | 只看该作者

回复 #5 leebaker 的帖子

基本设置可以参考这个http://bbs.wuyou.net/forum.php?mod=viewthread&tid=106538

pxe启动文件可以从http://nufans.net/upload/WinPE/PXE_PE2_Climbing.rar下载

H:\TFTP
│  bcdedit.exe
│  bootmgr.exe

└─Boot
    │  bcd
    │  boot.sdi
    │  pxeboot.0
    │
    └─Fonts
            wgl4_boot.ttf

将你自己的win7.wim文件改名winpe.wim放在boot目录下, bcd是启动配置文件,可以用bcdedit修改。
回复

使用道具 举报

7#
发表于 2010-4-12 15:36:56 | 只看该作者
谢谢提供PXE-WIN7PE启动所需的文件,启动成功了,嘿...







[ 本帖最后由 yigeren 于 2010-4-12 15:39 编辑 ]
回复

使用道具 举报

8#
发表于 2010-4-12 16:24:45 | 只看该作者
我也成功了.谢谢楼主!
用了一个83m的winpe2,然后加载外置程序由u盘负责

[ 本帖最后由 leebaker 于 2010-4-12 16:29 编辑 ]
回复

使用道具 举报

9#
发表于 2010-4-12 21:19:42 | 只看该作者
本帖的关键是网卡的驱动,
PXE启动成功并不说明什么问题。
做到PXE启动轻而易举,而兼容所有网卡驱动的PE却很难做
回复

使用道具 举报

10#
 楼主| 发表于 2010-4-13 21:03:25 | 只看该作者
[quote]原帖由 buger 于 2010-4-8 10:59 发表

[ 本帖最后由 jamesdai2002 于 2010-9-4 22:12 编辑 ]
回复

使用道具 举报

11#
发表于 2010-4-14 09:14:13 | 只看该作者
这个比较强,可以随时更新网卡驱动,楼主能否做个成品出来,造福无忧大众。
回复

使用道具 举报

12#
发表于 2010-4-15 11:57:08 | 只看该作者
支持樓主,謝謝分享。
回复

使用道具 举报

13#
发表于 2010-4-16 06:20:03 | 只看该作者
从wdsnbp.com启动就没有16秒延迟了...
不过wdsnbp.com加载时候contacting  server 1x.1x.1x(gateway:0.0.0.0)...这个时候几乎要等14秒。好像也差不多了...
回复

使用道具 举报

14#
发表于 2010-4-18 15:13:20 | 只看该作者
测试成功,用楼上的附件后,PXE 启动 win7 PE 没有明显的延迟了,感觉大概2,3秒就开始TFTP下文件了。
回复

使用道具 举报

15#
发表于 2010-4-18 15:25:56 | 只看该作者
支持一下 多多研究启动
回复

使用道具 举报

16#
发表于 2010-6-29 12:54:21 | 只看该作者

回复 #10 jamesdai2002 的帖子

老大你这是用pxelinux还是用grub4dos做的?如何做,能把几个菜单文件发给我看看嘛?我的邮箱是lp188@126.com
回复

使用道具 举报

17#
发表于 2010-6-29 14:29:35 | 只看该作者
其实最适合用网络安装的就是windows的home server,以前的2003的home server,从硬盘无法安装,在安装程序启动后,会检测usb和1394设备,只要有就拒绝安装
回复

使用道具 举报

18#
发表于 2011-4-25 14:18:01 | 只看该作者
楼主的16S怎么解决的?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-6 20:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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