qli365 发表于 2015-11-14 18:14:28

总潜水看见个文章今天给共享下,是有关pxe网络安装winxp,2k什么的

BINL Servicehttp://diddy.boot-land.net/pxe/files/binl.htm
                     http://www.vercot.com/~serva/download.html

中文的          http://coolerfeng.blog.51cto.com/133059/55945/

Windows网络安装表示从局域网内部引导Windows安装,核心技术基于微软的RIS(Remote Installation Services)。
实现Windows网络安装需要四个服务:BOOTP,TFTP,BINL,Windows Share. 其中BOOTP和TFTP是实现PXE启动的基础,关于PXE启动的详细信息,可以参考http://bbs.znpc.net/viewthread.php?tid=3662&extra=page%3D1
    BINL服务,微软称之为启动信息协商层(Boot Information Negotiation Layer),其作用是网卡查询、身份验证、启动镜像选择等功能。实现Windows网络安装只需要其中一项功能,即网卡查询。Sherpya逆向分析了BINL协议,并写了一个开源的Binl服务程序。要了解详细信息,可以参考本文后的引用1。
    Windows共享服务提供了安装文件的来源,并且在文本模式安装阶段作为启动分区(Boot Partition),因此也是必不可少的。

    Windows网络安装的大致步骤如下:
    1. 目标计算机从网卡PXE Boot ROM启动(当然,你也可以用PXELinux或PXEGrub来实现类似的启动功能)。
    2. 目标计算机从DHCP/BOOTP服务器获得网络地址,并获得TFTP服务器的IP地址和启动文件信息。
    3. 目标计算机向TFTP服务器获得启动文件startrom.com/startrom.n12
    4. startrom.com获取ntldr(由setupldr.exe改名而来),并将控制权传递给它。
    5. setupldr.exe获取ntdetect.com和winnt.sif,winnt.sif应该包含启动相关信息。
    从这个时候起,有两种启动方法,即ramdisk和网络启动,对于Ramdisk,启动分区为\Device\Ramdisk{xxxx...},你可以参考本文后的引用2。对于网络启动,你需要在winnt.sif中设定SetupSourceDevice参数。
    6. setupldr.exe通过ntdetect.com获得网卡的Vendor ID和Device ID, 并将它发送到Binl服务端口(4011)。
    7. Binl服务查找“数据库”,获得需要加载的驱动名称和服务名,返回给setupldr.exe
    8. Setupldr.exe按照正常顺序加载驱动,不过在最后,它会试着去加载前面给出网卡驱动和网络设备相关驱动,你可以从TFTP服务器的log里看到这些。有意思的是,txtsetup.sif并没有网络设备相关驱动的信息,我想可能是直接写在setupldr.exe里了。
    9. 控制权移交给kernel,kernel会试着去mount启动分区,要注意的是,你建好的共享必须提供匿名访问,否则会停住不动。
    10. 开始文本模式安装,setupdd复制文件到硬盘。完成后重新启动。
    11. 开始GUI阶段安装,要注意的是,之前应该在Winnt.sif中指定OriSrc和OriTyp,至于是不是必须的,我不好说,因为并没有试验过。
    12. 安装结束。实际上,你可以在winnt.sif中加入相关信息,以便实现无人值守安装。

今天刚看到的文章,精华的部分在网址当中,大家可以试验下。

风影幻 发表于 2015-11-14 18:49:14

收藏了
页: [1]
查看完整版本: 总潜水看见个文章今天给共享下,是有关pxe网络安装winxp,2k什么的