转自http://duanbp.blog.sohu.com/73329525.html



最近研究了使用PXE来通过网络启动安装操作系统的方式,此技术主要涉及以下几个步骤:

配置DHCP服务器和TFTP服务器

配置PXEboot环境

配置安装windows的开机p_w_picpath和相关文件

配置网络匿名共享

配置Binl Server

网上几乎所有文档都是基于LINUX建立的服务器,过程比较复杂,建立服务器所花费的时间较长,而且不熟悉LINUX的人员操作上有些难度。

本人在总结前人经验的基础上,在windowsxp服务器上成功建立了PXEboot安装WindowsXP的服务器,不敢有所保留,特意拿出和大家分享。

配置DHCP服务器和TFTP服务器

   DHCP服务器的作用是当目标机启动后,向目标机分配IP地址,并告知目标机启动文件所在的服务器和启动文件名。然后目标机使用TFTP协议从TFTP服务器获取启动文件。

  LINUX下边这两个服务要单独配置,过程较为复杂。我从网友的文献中发现了一个名叫TFTPD32的工具。此工具在WINDOWS下运行,并可以同时提供DHCP和TFTP服务,执行文件只有200K左右,而且非常配置简单。从这个链接下载TFTPD32工具:http://tftpd32.jounin.net/download/tftpd32.323.zip

   将解压后的文件放到一个目录,我的是E:\tftp。本文以后说到E:\tftp时都是指我自己配置时使用的目录,可以根据你自己的情况修改。

看我的配置:


此图中    server interface是服务器的IP地址

          IP poolstarting address是分配给目标机的IP地址

          Size of pool     有多少连续的IP地址可以分配

          Boot File        启动文件名,就写pxelinux.0

          WINS/DNS Server  你所在网络的DNS服务器IP地址

          Default route    默认网关

          Mask             子网掩码

配置PXEboot环境

   从http://freshmeat.net/redir/syslinux/10177/url_tgz/syslinux-2.11.tar.gz下载文件,使用WINRAR打开,解压出pxelinux.0文件、com32/modules/menu.c32文件、memdisk/memdisk 文件。将这些文件拷贝到E:\tftp目录。并在E:\tftp建立名为pxelinux.cfg子目录,然后在pxelinux.cfg子目录下建立一个名为default的文件,内容为:

DEFAULT menu.c32

PROMPT 0

ALLOWOPTIONS 0

TIMEOUT 50


MENU TITLE PXELinux Menu


LABEL winxp

MENU LABEL winxp

kernel winxp.0

配置安装windows的开机p_w_picpath

    在E:\tftp目录建立子目录winxp,将windows安装光盘上的i386目录拷贝到E:\tftp\winxp目录,这样就有了目录E:\tftp\winxp\i386目录。

    将c:\windows\inf目录下的所有文件拷贝到E:\tftp\winxp\i386目录。(是拷贝目录下的文件,而不是目录)

    将i386下的文件startrom.n1_ 使用winrar解压得到文件startrom.n12,将此文件更名为winxp.0,移动到目录E:\tftp

    将i386下的文件setupldr.ex_ 使用winrar解压得到文件 setupldr.exe,将此文件更名为NTLDR,移动到目录E:\tftp

    将 i386下的文件ntdetect.com拷贝到E:\tftp

    在E:\tftp目录下建立文件winnt.sif,内容如下(注意修改其中的IP为你服务器的IP):

[data]

floppyless = "1"

msdosinitiated = "1"

; Needed for second stage

OriSrc = "\\192.168.21.151\reminst\winxp\i386"

OriTyp = "4"

LocalSourceOnCD = 1

DisableAdminAccountOnDomainJoin = 1


[SetupData]

OsLoadOptions = "/fastdetect"

; Needed for first stage

SetupSourceDevice = "\Device\LanmanRedirector\192.168.21.151\reminst\winxp"


[UserData]

ComputerName = *

; if needed

;ProductID=

配置网络匿名共享

    目标机启动了WINXP的安装程序后,XP的安装文件需要通过网络共享的方式拷贝过去。这时需要配置你的WINDOWS机器开启匿名共享。步骤如下:

将E:\tftp目录共享,共享名为reminst。 注意共享权限中加入everyone,如果为NTFS分区,同时还要注意此目录的读写权限中也加入everyone。

启动guest用户,并将guest用户密码置空

从控制面板->管理工具进入“本地安全策略”,在本地策略->用户权利指派下找到“拒绝从网络访问这台计算机”,从中删除guest用户

从控制面板->管理工具进入“本地安全策略”,在本地策略->安全选项下找到“让每个人权限应用于匿名用户”,将其启用。找到“可匿名访问的共享”,在其中加入reminst

配置Binl Server

   从http://oss.netfarm.it/guides/ris-linux-0.2.tar.gz下载文件,解压到目录E:\tftp\ris-linux-0.2,此程序的作用是搜索适合目标机的网卡驱动程序并发送给目标机。

   从http://www.python.org/ftp/python/2.5.1/python-2.5.1.msi下载软件包,然后安装。此软件包用来支持python语言,因为ris-linux-0.2是用python语言和C语言写的。

   进入命令提示符模式,运行:

      cd E:\tftp\ris-linux-0.2

      .\infparser.py E:\tftp\winxp

     .\binlsrv.exe

  binlsrv.exe会一直运行,不要关闭它。

至此服务端配置完毕,你可以启动客户端(目标机)了,进入BIOS,选择从网络启动。

OK。