转自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。
转载于:https://blog.51cto.com/yuge994/1722750