注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

红烧鱼

linux & windows management

 
 
 

日志

 
 
关于我
mac

专注IT基础架构设计与运维。 欢迎给我留言,或邮件沟通zjwsk@163.com

网易考拉推荐

非微软的RIS解决方案, PXE安装Windows  

2010-06-06 21:43:40|  分类: Server Managemen |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近研究了使用PXE来通过网络启动安装操作系统WinXP的方式。非微软的RIS解决方案,跟微软的相比较,有更多的灵活性。
(安装Windows2003的步骤完全相同)

* 利用tftpd32配置DHCP服务器和TFTP服务器, 并配置PXEboot环境
* 配置安装windows的开机image和相关文件
* 配置网络匿名共享
* 配置Binl Server


1. 利用tftpd32配置DHCP服务器和TFTP服务器, 并配置PXEboot环境

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

工具TFTPD32, 在WINDOWS下运行,并可以同时提供DHCP和TFTP服务,执行文件只有200K左右,而且非常配置简单。
将解压后的文件放到一个目录,我的是e:\tftp。本文以后说到e:\tftp时都是指我自己配置时使用的目录,可以根据你自己的情况修改。

            IP poolstarting address是分配给目标机的IP地址
            Size of pool         有多少连续的IP地址可以分配
            Boot File            启动文件名,单系统安装就使用startrom.n12 ,多系统安装,需要用到pxelinux.0
            WINS/DNS Server       你所在网络的DNS服务器IP地址
            Default route     默认网关
            Mask              子网掩码

多系统安装情况下,.\tftproot\pxelinux.cfg\default 文件内容:
    # prompt 1
    # default win2003
    # timeout 1
    label winxp
        kernel winxp.0
    label win2003
        kernel wi2k3.0
    label hd
        localboot 0x80


2. 配置安装windows的开机image

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

2.1 创建单系统情况下的PXE启动文件:
* 将i386下的文件startrom.n1_ 使用winrar解压得到文件startrom.n12,移动到目录e:\tftp
* 将i386下的文件setupldr.ex_ 使用winrar解压得到文件setupldr.exe,将此文件更名为NTLDR,移动到目录e:\tftp
* 将i386下的文件ntdetect.com拷贝到e:\tftp

2.2 创建多系统情况下的PXE启动文件:
http://oss.netfarm.it/guides/ris-linux.php

***For Windows XP
- Windows command:(使用windows自带命令,解压文件)
expand -r <Source dir>/i386/startrom.n1_ <tftproot\winxp>
expand -r <Source dir>/i386/setupldr.ex_ <tftproot\winxp>
copy <Source dir>/i386/ntdetect.com <tftproot\winxp>

- Linux command:(使用Linux命令,以二进制方式,修改文件;当然也可以用UltraEdit等工具修改)
  sed -i -e 's/NTLDR/XPLDR/gi' startrom.n12
  sed -i -e 's/winnt\.sif/winxp\.sif/gi' setupldr.exe
  sed -i -e 's/ntdetect\.com/ntdetect\.wxp/gi' setupldr.exe
  mv startrom.n12 winxp.0
  mv setupldr.exe XPLDR
  mv NTDETECT.COM ntdetect.wxp

----------------------
***For Windows 2003
- Windows command:(使用windows自带命令,解压文件)
expand -r <Source dir>/i386/startrom.n1_ <tftproot\win2003>
expand -r <Source dir>/i386/setupldr.ex_ <tftproot\win2003>
copy <Source dir>/i386/ntdetect.com <tftproot\win2003>

- Linux command:(使用Linux命令,以二进制方式,修改文件;当然也可以用UltraEdit等工具修改)
---- for windows 2003 i386
  sed -i -e 's/NTLDR/W2K3L/gi' startrom.n12
  sed -i -e 's/winnt\.sif/wi2k3\.sif/gi' setupldr.exe
  sed -i -e 's/ntdetect\.com/ntdetect\.2k3/gi' setupldr.exe
  mv startrom.n12 wi2k3.0
  mv setupldr.exe W2K3L
  mv NTDETECT.COM ntdetect.2k3
--- for windows 2003 x64
  sed -i -e 's/NTLDR/W2K4L/gi' startrom.n12
  sed -i -e 's/winnt\.sif/wi2k4\.sif/gi' setupldr.exe
  sed -i -e 's/ntdetect\.com/ntdetect\.2k4/gi' setupldr.exe
  mv startrom.n12 wi2k4.0
  mv setupldr.exe W2K4L
  mv NTDETECT.COM ntdetect.2k4



3. 在 e:\tftp目录下建立文件winnt.sif,内容如下(注意修改其中的IP为你服务器的IP; 并根据上面的步骤2,将Windows XP 与Windows 2003的对应winnt.sif文件, 分别改名为winxp.sif、wi2k3.sif):
* 此步骤,可以用Windows光盘内的Deploy工具,建立完整的自动应答文件;这里仅考虑最简单情况.

[data]
floppyless = "1"
msdosinitiated = "1"
; Needed for second stage
OriSrc="http://zjwsk.blog.163.com/blog/\\192.168.5.21\RemInst\winxp\i386"
OriTyp = "4"
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = 1

[SetupData]
OsLoadOptions = "/fastdetect"
; Needed for first stage
SetupSourceDevice = "\Device\LanmanRedirector\192.168.5.21\RemInst\winxp"

[RemoteInstall]
; Avoid automatic format/repartition
Repartition = No
UseWholeDisk = No

[UserData]
ComputerName = *
ProductID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX


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

3.1  将e:\tftp目录共享,共享名为reminst。 注意共享权限中加入everyone,如果为NTFS分区,同时还要注意此目录的读写权限中也加入everyone;
3.2 启动guest用户,并将guest用户密码置空;
3.3 从控制面板->管理工具进入“本地安全策略”,在本地策略->用户权利指派下找到“拒绝从网络访问这台计算机”(Deny access to this computer from the network),从中删除guest用户;
3.4 从控制面板->管理工具进入“本地安全策略”,在本地策略->安全选项下找到“让每个人权限应用于匿名用户”(Network access: Let Everyone permissions apply to anonymous users),将其启用;
3.5 从控制面板->管理工具进入“本地安全策略”,在本地策略->安全选项下找到“可匿名访问的共享”(Network access: Shares that can be accessed anonymously),在其中加入reminst;


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

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

4.3 从http://ris-autoinst.googlecode.com/files/ 下载软件包 ris-autoinst-0.6.1.tar.gz(这是一个完整的Linux下实现RIS的解决方案,过程不在本例讨论之列,仅利用其收集的网卡驱动程序;当然你也可自己添加你当前环境的网卡驱动,主要是两个文件xxx.inf、xxx.sys),解压之后,将其内部的winxpsys.tar.gz、winxpinf.tar.gz 解压至e:\tftp\winxp\i386目录内;
网络上说的要将WindowsXP光盘内的drivers.cab解压至 winxp\i386目录内,充当网卡驱动文件的做法,我的虚拟机环境内没有成功;

进入命令提示符模式,运行:
   cd e:\tftp\ris-linux-0.x
   .\infparser.py e:\tftp\winxp\i386
   .\binlsrv.exe

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


----------------
【以在Windows 2003上加载SCSI驱动为例子】 ---http://technet.microsoft.com/en-us/library/cc720099(WS.10).aspx

1. 在RIS镜像文件夹中加上下面的FOLDER
--%RIS_IMAGE_FOLDER%\$OEM$
--%RIS_IMAGE_FOLDER%\$OEM$\TEXTMODE

2. 把你要添加的驱动文件COPY到TEXTMODE下,修改你添加的驱动文件 txtsetup.OEM , 里面[DISKS]一段, 修改里面的值定向到新的驱动源.
[Disks]
# d1 = "Adaptec AAR-1420SA Serial ATA HostRAID Driver for Windows x64 Edition (EM64T/AMD64)", \hraidsk1, \amd64
  d1 = "Adaptec AAR-1420SA Serial ATA HostRAID Driver for Windows x64 Edition (EM64T/AMD64)", \, \

3. 将驱动文件copy至对应的I386目录;

4. 修改winnt.sif文件加入MASS STORAGE驱动:
[Unattended]
OemPnPDriversPath=”\\192.168.1.2\RemInst\Win2003\$OEM$\textmode”
DUDisable=no
DriverSigningPolicy=ignore

[MassStorageDrivers]
"Adaptec HOSTRAID driver for Windows XP/2003 x64 Edition"="OEM"
◆此处的名字,copy自RAID卡驱动文件中的txtsetup.oem内的SCSI字段里面,如: s2 = "Adaptec HOSTRAID driver for Windows XP/2003 x64 Edition"

[OEMBootFiles]
    *.cat
    *.inf
    *.sys
    *.oem


--------------------
【怎样为RIS安装添加第三方网卡驱动】 ---http://www.intel.com/support/network/sb/CS-028856.htm#XP

Note: 此步驟中一定要注意LAN driver 必須是For RIS driver,存在于NIC drivers当中RIS 文件夹里 ,README.TXT 文件当中一般会有说明如何增加NIC RIS 驱动, 。

 Add client end driver in PXE SERVER.
    1.Create an [IMAGE_ROOT]\$oem$\$1\Drivers\ directory if one does not already exist.
    2.At above “Drivers” directory, create three file folders "NIC","AUDIO","VGA",and "MODEM".
    3.Copy clients’LAN, Audio, VGA and Modem drivers to the above related folders.
    4.Copy all .SYS files to the [IMAGE_ROOT]\i386 directory. Do NOT copy the .INF files to this directory.
    *5.Copy The NIC RIS/PXE/WINPE Driver's .NIF file to the [IMAGE_ROOT]\i386 directory.
    6.Make the following changes to the .SIF file that is used for this image installation.
    (located in the [IMAGE_ROOT]\I386\Templates directory):
        [Unattended]
        OemPreinstall = yes
        OemPnPDriversPath = Drivers\NIC;Drivers\Video
    7.Use ris-linux-0.4.tar.gz to Create "BinlSrv"

◆相关说明:
    RIS安装使用到的自动应答文件的参数说明,不用在网络上郁闷的搜索了。在你的Windows XP光盘内X:\SUPPORT\TOOLS\DEPLOY.CAB,有事无巨细的说明!
    TFTPD32:http://tftpd32.jounin.net/tftpd32_download.html
    File pxelinux.0 in software syslinux: http://linux2.onlinedown.net/down/syslinux-3.86.tar.zip
    ris-linux-0.X.tar.gz: http://oss.netfarm.it/guides
    python-2.5.x: http://www.python.org/ftp/python
  评论这张
 
阅读(1637)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017