liuzhaoyzz 发表于 2010-4-3 12:19:30

PXE局域网启动PE方法汇总

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→→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→→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 memdiskraw iso initrd=TonPE_net.iso

label WINPE by uepon(TonPE.iso)
kernel memdiskraw 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 编辑 ]

linyehua 发表于 2010-4-3 12:21:36

原帖由 liuzhaoyzz 于 2010-4-3 12:19 发表 http://bbs.wuyou.net/images/common/back.gif
PXE局域网启动PE方法汇总
liuzhaoyzz@wuyou
参考Climbing的[原创]PXE服务器架设及无盘天使相关文章http://bbs.znpc.net/viewthread.php?tid=4610&highlight=pxe
PXE服务器架设指南及PXE启动WinPE(含PE2.0) ...
感谢楼主,学习了!

shn 发表于 2010-4-3 12:28:05

学习了。多谢分享
很久不用了,都用u盘

北斗 发表于 2010-4-3 13:00:13

楼主最好重新排下版式,全糊在一起,这样读起来太累了

我平时用的是startrom加载ntldr

padistar 发表于 2010-4-3 13:08:30

现在正在学习PXE启动,楼主的帖子功德无量...

pseudo 发表于 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启、网启两用,内置外置自由的部署

ziyun 发表于 2010-4-3 17:57:41

精品不能错过,感谢楼主分享!

liuzhaoyzz 发表于 2010-4-3 18:05:29

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

guanjinman 发表于 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不知道怎么写菜单?

limonet 发表于 2010-4-3 21:19:31

谢谢,原来只是使用,真未深究,这次又学到很多,太感谢了。
页: [1] 2 3 4 5 6 7 8
查看完整版本: PXE局域网启动PE方法汇总