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