无忧启动论坛

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

PXE局域网启动PE方法汇总

[复制链接]
跳转到指定楼层
1#
发表于 2010-4-3 12:19:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PXE局域网启动PE方法汇总
参考Climbing的[原创]PXE服务器架设及无盘天使相关文章http://bbs.znpc.net/viewthread.php?tid=4610&;highlight=pxe
PXE服务器架设指南及PXE启动WinPE(含PE2.0)解决方案总结: http://bbs.znpc.net/viewthread.php?tid=3662
主机可以采用tftpd32或者Hanewin dhcp,客户机要求支持PXE启动。以tftpd32为例,主要有以下几个方法。
grldr采用最新版的,http://nufans.net/grub4dos/tinybit/,它可以优先检测PXE服务器根目录下是否存在menu.lst配置文件,如果存在,就直接加载,如果不存在再搜索\menu.lst\default配置文件。
1、grldr+startrom.0+PE映像
主机需要这几个文件:tftpd32.exe,tftpd32.ini,grldr,menu.lst,startrom.0,ntldr,ntdect.com,winnt.sif及winpe的映像文件。ntldr中的路径可以用winhex暴力修改指向ntdetect.com,winnt.sif需要指向winpe的映像文件,路径和文件名都要相符合, ISO格式的内核需要加/rdexportascd参数。winpe的映像可以是iso,img,ima,sdi,dsk格式的,但是只能是winpe的内核,不能是压缩格式的。如果不需要多启菜单,grldr,menu.lst可以省略,tftpd32的启动文件可以直接选择startrom.0。
启动过程:主机tftpd32→客户机PXE→[grldr→menu.lst菜单]→startrom.0→ntldr→ntdetect.com→winnt.sif→winpe映像。
menu.lst是默认的PXE启动配置菜单,可以这样写:
timeout 3
default 0
title WINPE by lrbin50(startrom.0-winpe.ima)
pxe keep
chainloader --force (pd)/startrom.0
boot
提取lrbin50的pe20090727.iso的内核winpe.img映像,把部分程序内置到winpe.ima启动后有部分外置程序.

2、grldr+PE映像
主机需要tftpd32.exe,grldr,menu.lst及winpe的映像文件。winpe的映像可以使gz,iso,img,ima,sdi,dsk格式,iso可以是原版winpe光盘。karyonix的firadisk驱动类似windrv的wdsys,把firadisk.ima用map --mem (pd)/firadisk.ima (fd0)这一句加载到虚拟软驱后,在PE中就可以看到用grub4dos创建的所有虚拟磁盘,所以能够加载外置程序。shao的winvblock也可以。
启动过程:主机tftpd32→客户机PXE→grldr→menu.lst菜单→winpe映像里的启动文件。
menu.lst是默认的PXE启动配置菜单,可以这样写:
timeout 3
default 0

title tongyong WINPE by Uepon(TonPE_net.iso+firadisk)
map --mem  (pd)/TonPE_net.iso (0xff)
map --hook
chainloader (0xff)
boot

title tongyong WINPE by Uepon(TonPE.iso+firadisk)
map --mem (pd)/winvblock.ima (fd0)
map --mem  (pd)/TonPE.iso (0xff)
map --hook
chainloader (0xff)
boot

title WINPE by lrbin50(PE20090727_net.iso+firadisk)
map --mem  (pd)/PE20090727_net.iso (0xff)
map --hook
chainloader (0xff)
boot

title WINPE by lrbin50(PE20090727.iso+firadisk)
map --mem (pd)/winvblock.ima (fd0)
map --mem  (pd)/PE20090727.iso (0xff)
map --hook
chainloader (0xff)
boot

title WINPE by Nictense(TangoPE.iso+firadisk)
map --mem  (pd)/TangoPE.iso (0xff)
map --hook
chainloader (0xff)
boot

title boot from hard disk
root (hd0,0)
chainloader +1
boot

title command line
commandline

title reboot
reboot

title halt
halt
grldr以光盘仿真模式启动原版映像测试:
①益丰家园Uepon的通用PE1.94版,内核是xp sp2的tongpe.iso,有外置程序。原版156M启动,带网络的170M内存启动。
②自由天空lrbin50的pe20090727.iso,配合firadisk驱动,能够加载所有的外置程序。原版160M启动,带网络的176M内存启动。
③Nictense的全内置TangoPE.iso,内核是XP SP3,有外置程序。最小176M启动。
有些PE测试出现WINPE.IS_不能加载,错误代码16,可能是因为内存不够导致的。

3、pxelinux.0+startrom.0+winpe映像:
主机需要这几个文件:tftpd32.exe,tftpd32.ini,pxelinux.0,\pxelinux.cfg\default,menu.c32,startrom.0,ntldr,ntdect.com,winnt.sif及winpe的映像文件。
pxelinux.0等文件可以syslinux3.86压缩包里提取,官方下载地址http://www.kernel.org/pub/linux/utils/boot/syslinux/
ntldr中的路径可以用winhex暴力修改指向ntdetect.com,winnt.sif需要指向winpe的映像文件,路径和文件名都要相符合,ISO格式的内核需要加/rdexportascd参数。winpe的映像可以是iso,img,ima,sdi,dsk格式的,但是只能是winpe的内核,不能是压缩格式的。如果不需要多启菜单,pxelinux.0,\pxelinux.cfg\default,menu.c32可以省略,tftpd32的启动文件可以选择startrom.0。
启动过程:主机tftpd32→客户机PXE→[pxelinux.0→\pxelinux.cfg\default菜单→menu.c32]→startrom.0→ntldr→ntdetect.com→winnt.sif→winpe映像。
\pxelinux.cfg\default是默认的PXE启动配置菜单,菜单可以这样写:
UI menu.c32
prompt 0
allowoptions 0
timeout 30
menu title PXE boot from pxelinux
label WINPE by lrbin50(startrom.0)
menu deafult
kernel startrom.0
lrbin50制作的WINPE 2009 SATA版提取的内核winpe.img映像,把部分程序内置到winpe.ima启动后有部分外置程序。参见http://bbs.wuyou.net/forum.php?mod=viewthread&tid=160720&;highlight=pxe

4、pxelinux+memdisk+winpe映像
主机需要tftpd32.exe,tftpd32.ini,pxelinux.0,\pxelinux.cfg\default,menu.c32,memdisk及winpe的映像文件。
memdisk支持iso,img,zip,gz格式,在syslinux3.86压缩包里可以提取,官方下载http://www.kernel.org/pub/linux/utils/boot/syslinux/
启动过程:主机tftpd32→客户机PXE→pxelinux.0→\pxelinux.cfg\default菜单→menu.c32→memdisk→winpe磁盘映像。
启动ISO后没有外置程序,不过可以把外置程序放在其他盘上,在系统启动前插入电脑,这样就能加载。还有个办法就是利用shao编写的winvblock驱动,能够把memdisk仿真的磁盘带入Windows。2010.5.30日karyonix发布的firadisk0.0.1.20驱动也支持memdisk磁盘仿真了。
\pxelinux.cfg\default是默认的PXE启动配置菜单,菜单可以这样写:
UI menu.c32
prompt 0
allowoptions 0
timeout 30
menu title pxelinux boot from PXE

label WINPE by uepon(TonPE_net.iso+firadisk inside)
kernel memdisk  raw iso initrd=TonPE_net.iso

label WINPE by uepon(TonPE.iso)
kernel memdisk  raw iso initrd=TonPE.iso

label WINPE by lrbin(PE20090727_net.iso+firadisk inside)
kernel memdisk raw iso initrd=PE20090727_net.iso

label WINPE by lrbin(PE20090727.iso)
kernel memdisk raw iso initrd=PE20090727.iso

label WINPE by Nictense(TangoPE.iso)
kernel memdisk raw iso initrd=TangoPE.iso

label WINPE(startrom)
menu deafult
kernel startrom.0

label Boot from hard disk
localboot 0x80

总结下:
1、PXE多引导管理器可以选择grub4dos或者pxelinux。2010.6.23日,grub4dos在PXE网络启动方面有了重大更新:优先检测PXE服务器根目录下是否存在menu.lst配置文件,如果存在,就直接加载,如果不存在再搜索\menu.lst\default配置文件,加载速度比以前快多了。如果多启菜单复杂,而且有不同格式(gz,iso,img,ima,sdi,dsk),强大的grub4dos绝对是你不二的选择。
2、利用startrom.0加载ntldr不能启动原版的WINPE光盘映像,只能启动WINPE的内核,而且内核映像不能被压缩,启动后没有外置程序。如果想启动外置程序,需要把外置程序放到其他地方,或者加入到内核做成内置映像,但做成内置的又会加大启动的内存消耗。这种方式需要修改ntldr,winnt.sif文件,还有可能需要修改内置映像文件,而img文件的扩容(用Winimage)也是很费事的事情。
3、官方的memdisk支持ISO启动,不过启动后没有外置程序,如果想要加载外置程序,可以利用shao编写的winvblock驱动,把memdisk仿真的磁盘带入Windows,或者使用全内置的PE。2010.5.30日karyonix发布的firadisk0.0.1.20驱动也支持memdisk磁盘仿真了。
4、grub4dos能够直接启动原版的WINPE光盘映像,PE的内核可以是img,iso或dsk的磁盘映像格式,dsk的磁盘映像需要windrv大师的无盘天使wdsys.sys的驱动。这种方式可以直接把成品的WINPE光盘拿来使用,避免DIY PE的重复劳动,配合karyonix大师提供的firadisk驱动http://nufans.net/grub4dos/FiraDisk/,能够加载所有的外置程序,但由于仿真磁盘的内存消耗,PXE启动比本地直接启动需要更大内存支持。在firadisk出来之前,要想加载PE的外置程序,要么就是把外置转成内置,加入到winpe.img中,要么就是把外置拷贝到其他地方来实现加载。然而2009年8月firadisk横空出世,一切都改变了,PE不再需要重复的DIY,grub4dos在不点大师的改进下,早在2007-11-18开始支持用ISO仿真CDROM http://bbs.znpc.net/viewthread.php?tid=4227&;extra=page%3D2,原版光盘映像可以直接用grub4dos加载,因此TFTPD32+FIRADISK+GRLDR+WINPE的启动方式是强烈推荐的PXE启动PE方式。而内外双修,占用内存小启动快,支持本地、网络、USB多重启动的PE必然成为未来PE的主导。
5、grldr和pxelinux互相引导:
pxelinux可以启动grldr,但是名字必须改成pxelinux要求的grldr.0的格式。或者引导grub.exe,但是要加keeppxe参数。
label Boot from grub4dos
kernel grldr.0
#kernel grub.exe --config-file=(pd)/menu.lst keeppxe
从grub4dos中进入pxelinux:
pxe keep
chainloader --raw (pd)/pxelinux.0
#chainloader --force (pd)/pxelinux.0
chainloader参数--raw,用于一次性装载文件,是bean对grldr的pxe功能的改进。

grldr启动的支持文件模板。

http://www.everbox.com/f/Tebbr6F6aCMNxkVGOnkZo2kj8H
http://pan.baidu.com/share/link?shareid=155749&uk=2298763057

[ 本帖最后由 liuzhaoyzz 于 2013-1-3 16:53 编辑 ]
2#
发表于 2010-4-3 12:21:36 | 只看该作者
原帖由 liuzhaoyzz 于 2010-4-3 12:19 发表
PXE局域网启动PE方法汇总
liuzhaoyzz@wuyou
参考Climbing的[原创]PXE服务器架设及无盘天使相关文章http://bbs.znpc.net/viewthread.php?tid=4610&highlight=pxe
PXE服务器架设指南及PXE启动WinPE(含PE2.0) ...

感谢楼主,学习了!
回复

使用道具 举报

3#
发表于 2010-4-3 12:28:05 | 只看该作者
学习了。多谢分享
很久不用了,都用u盘
回复

使用道具 举报

4#
发表于 2010-4-3 13:00:13 | 只看该作者
楼主最好重新排下版式,全糊在一起,这样读起来太累了

我平时用的是startrom加载ntldr
回复

使用道具 举报

5#
发表于 2010-4-3 13:08:30 | 只看该作者
现在正在学习PXE启动,楼主的帖子功德无量...
回复

使用道具 举报

6#
发表于 2010-4-3 17:17:35 | 只看该作者

介绍一下0PE、CSPE的网启技术

n年前0PE就是支持本地、网络、USB多重启动的PE。

1. “pxelinux.0查找到/menu.lst/default一系列菜单文件的速度比grub4dos流畅,如果不点把grldr的菜单/menu.lst/default放在第一个
查找就好了。”
    grub4dos流畅查找菜单问题,0PE最早给出有效方案,目前已被推广。

2. “chenall的CSPE中提取的cspe.gz启动到命令行,没有system.wim。”
    正确使用CSPE,会有system.wim的。

3. “grub4dos能够直接启动原版的WINPE光盘映像,它要求PE的内核是img或dsk的磁盘映像格式,内核是iso的就不能启动(原因不明)”
    用0PE可启动其它WINPE光盘映像,包括iso核心的老毛桃911PE,不知道是否属于此范畴。

4. “在firadisk出来之前,要想加载PE的外置程序,要么就是把外置转成内置,加入到winpe.img中,要么就是把外置拷贝到其他地方来实
现加载。”
    0PE、CSPE(MicroPE)是最早使用firadisk的PE。在firadisk出来之前,也实现了“直接PXE”特性。不需要转内置、拷贝。

参考:一种U启、网启两用,内置外置自由的部署

点评

P大厉害,标记。  详情 回复 发表于 2018-10-20 21:23
回复

使用道具 举报

7#
发表于 2010-4-3 17:57:41 | 只看该作者
精品不能错过,感谢楼主分享!
回复

使用道具 举报

8#
 楼主| 发表于 2010-4-3 18:05:29 | 只看该作者
感谢pseudo大师的指点,cspe我没有用原版来make成iso的,只是提取了,所以没有外置,如果makeiso或者使用本身的网启,肯定有外置的。grub4dos启动iso的我只是拿手头的几个PE简单的测试了下,不知道为什么iso内核的不能启动, 0PE、CSPE有直接PXE的特性,也看过你很早写的那个关于直接PXE构想的帖子,可是我对于0PE的复杂真的有点发怵,0PE、CSPE的许多构思很独到,很值得研究。
回复

使用道具 举报

9#
发表于 2010-4-3 21:01:01 | 只看该作者
作为PXE多引导管理器,pxelinux.0调用/menu.lst/default菜单 很好,可以专门用来启动多个网启pe。

一般情况下网启基于xp、2k3的pe用pxelinux.0+startrom.0+winpe映像就行了。对于0PE的启动文件GRLDR不知道是什么打造的非常特别:既可以用grub4dos直接调用,也可以当做pxelinux.0作为网启启动文件,还可以当成startrom.0放在/menu.lst/default菜单被pxelinux.0调用(必须把grldr改名成grldr.0)

一般般的LDRXPE(以老毛桃的pe为例)只能被grub4dos直接调用,作为网启用不知道怎么改造LDRXPE,然后被startrom.0调用

pxelinux.0如果在主分区,startrom.0在逻辑分区,启动逻辑分区上的winpe不知道怎么写菜单?
回复

使用道具 举报

10#
发表于 2010-4-3 21:19:31 | 只看该作者
谢谢,原来只是使用,真未深究,这次又学到很多,太感谢了。
回复

使用道具 举报

11#
发表于 2010-4-4 21:13:11 | 只看该作者
这两天正恶补pxelinux。。。,进来学习一下
回复

使用道具 举报

12#
发表于 2010-4-5 14:44:02 | 只看该作者
感谢楼主,正需要着``
回复

使用道具 举报

13#
发表于 2010-4-26 19:23:52 | 只看该作者
也正在学习pxe,补充下知识,以前为索尼老本,不带光驱,不支持U盘的,1.8寸硬盘做系统,很是费力,用网启就方便多了
回复

使用道具 举报

14#
发表于 2010-4-27 17:35:21 | 只看该作者
太深了,看不懂,做个记号
回复

使用道具 举报

15#
发表于 2010-4-27 18:03:40 | 只看该作者
好东西,找了好久了~~~
回复

使用道具 举报

16#
发表于 2010-4-27 21:56:41 | 只看该作者
局域网还是用PXE方便,正需要,收下了,谢谢楼主的分享
回复

使用道具 举报

17#
发表于 2010-4-28 00:35:47 | 只看该作者
要是PXE启动PE,能够解决压缩WINPE.IM_不出错这个问题就好了。
回复

使用道具 举报

18#
发表于 2010-4-28 01:11:46 | 只看该作者
PXE还没用过,没环境
回复

使用道具 举报

19#
 楼主| 发表于 2010-4-28 16:20:26 | 只看该作者
原帖由 xianglang 于 2010-4-28 00:35 发表
要是PXE启动PE,能够解决压缩WINPE.IM_不出错这个问题就好了。


你说的是直接用startrom.0直接加载winpe.im_的情况吧?感觉grldr+firadisk就是替代startrom.0+winpe.im_的方式,用这种方式,winpe.im_是可以压缩的呀。
回复

使用道具 举报

20#
发表于 2010-4-28 17:33:34 | 只看该作者
是啊。grldr+firadisk可能需要的内存比较大,256MB内存的可能不行,而且firadisk好象也不太稳定。
回复

使用道具 举报

21#
 楼主| 发表于 2010-4-28 20:21:38 | 只看该作者
是呀,grldr+firadisk模式需要的内存是比一般大点。不过如果PE的体积小点的话,256MB应该能运行了,上面列举的几个PE160MB以下内存都可以启动,PE本身也都是40M以下的。哎,没办法了,大点就大点吧,好歹控制在256M之内能够启动PE就算不错了。最主要是的把外置程序也加载了起来,方便呀,总比把个PE搞得七零八落的好。

[ 本帖最后由 liuzhaoyzz 于 2010-4-29 17:36 编辑 ]
回复

使用道具 举报

22#
发表于 2010-4-30 18:44:40 | 只看该作者
我把ghost版win7pe2003去掉win7gho,直接用网启加载了,结果 在进入开始菜单的几个分区软件时,就直接进入dos工具箱了,不知道是什么原因
回复

使用道具 举报

23#
 楼主| 发表于 2010-5-3 21:20:48 | 只看该作者
2010.5.2日,grub4dos在PXE网络启动方面有了重大更新:优先检测PXE服务器根目录下是否存在menu.lst配置文件,如果存在,就直接加载,如果不存在再搜索\menu.lst\default配置文件,加载速度比以前快多了,这下grub4dos在网络启动速度方面和pxelinux有得比了!
这个功能由chenall修改,还是测试版,密切关注正式版发布。
http://bbs.znpc.net/viewthread.php?tid=2931&extra=page%3D1&page=10

测试版下载:
http://nufans.net/grub4dos/tinybit/
http://code.google.com/p/grub4dos-chenall/
http://code.google.com/p/grub4dos-chenall/downloads/list?can=2&q=&sort=-uploaded&colspec=Filename%20Summary%20Uploaded%20Size%20DownloadCount
再次感谢chenall的努力和付出!

[ 本帖最后由 liuzhaoyzz 于 2010-5-18 21:57 编辑 ]
回复

使用道具 举报

24#
发表于 2010-5-21 23:49:24 | 只看该作者
2010.5.2日,chenall更新了grub4dos的PXE功能,优先检测PXE服务器根目录下是否存在menu.lst配置文件,如果存在,就直接加载


很抱歉,不凑巧,这个文件 menu.lst 的名称已经于今天(2010-05-21) 被迫更改了。改成了 main.lst。
回复

使用道具 举报

25#
发表于 2010-5-21 23:58:14 | 只看该作者
谢谢!好资料教程!学习中
回复

使用道具 举报

26#
 楼主| 发表于 2010-5-22 10:38:12 | 只看该作者
不点说的main.lst,我在http://nufans.net/grub4dos/tinybit/下载grub4dos-0.4.5b-2010-05-21.zip测试过了,tftp server目录里面把menu.lst直接改名为main.lst,启动WINPE成功,速度很快,期待final版0.4.5。
回复

使用道具 举报

27#
发表于 2010-5-22 10:52:46 | 只看该作者
谢谢 liuzhaoyzz 对grub4dos的支持,以及为大家所做的大量工作。

我个人感觉 grub4dos 0.4.5 的发布,还需要有一段路要走。到目前为止,没有人测试用 kernel 加载“非Linux内核”是否能够成功的问题。我们现在不知道 kernel 加载 grub2 的 core.img 是否成功,也不知道加载 ReactOS 的 freeldr 是否成功,也不知道加载 BSD 的 kernel 是否成功。至少得等到各个方面都有人报告成功了,才算完成了开发的工作。

另外,grub4dos 本身的设计,现在有了初步运行外部程序的功能,还需要加以完善,把内存管理和进程管理加以实现,使得运行 grub4dos 系统上的 TSR 程序成为可能。那样,grub4dos 就成为了一个相对比较完整的操作系统模型。

所以,0.4.5 估计会测试很长时间,也许到明年,都是有可能的。
回复

使用道具 举报

28#
发表于 2010-5-22 10:57:30 | 只看该作者
能否放出一个做好的成品,下载后直接解压到硬盘根目录,我的电脑以pe作服务器,客户机启动成功,但直接在xp下运行tftpd32.exe或者是其它的免配cmd(包括0pe的,按其目录结构放置也是一样),客户机启动错误:

pxe-E53:no boot filename received

这个问题是否我的xp系统有问题?
回复

使用道具 举报

29#
 楼主| 发表于 2010-5-22 11:04:35 | 只看该作者
我知道的,grub4dos0.4.4和grub4dos0.4.5应该说是一个划时代的更新,依稀记得changelog上好像是32位代码放在3M以上,留出更大的空间,要改动的东西肯定很多,还有就是增加外部命令都需要很长时间的测试,另外一个比较重要的更新就是PXE了。
http://bbs.znpc.net/viewthread.p ... muid=12697#pid44911
楼上的我在1楼已经有做好的成品了啊?你下载看看吧,随便扔一个RAM版的PE到tftp目录,改下menu.lst(main.lst)里面相应的ISO名字就行了。pxe-E53:no boot filename received的出现,你是不是没有指定启动文件为grldr或者grldr.0或者pxelinux.0?
给个grldr+pxelinux启动的支持文件模板吧。发到1#了。

[ 本帖最后由 liuzhaoyzz 于 2010-5-24 20:49 编辑 ]
回复

使用道具 举报

30#
发表于 2010-5-22 11:13:15 | 只看该作者
记号一下。以后要用到,再细细看。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 05:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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