Pxe 网络安装 windows linux

 
来自天地一沙鸥网络学习总结

 
 
上一个星期在数据中心装了几百台服务器,在研究通过网络安装 windows 系统,之前也在 linux 环境下搭建了 pxe server 环境下安装 centos 。这次在 windows 环境下利用 tftp32 工具和 binlsrv windows 搭建环境,安装 windows linux 系统。在 vmware 测试。在 linux 搭建环境还是比在 windows 环境下的要稳定很多。只是在日常工作中不是经常用 linux ,自己的工作电脑也是 windows 系统。所以还是在 windows 下使用的方便点,相对更加实际点。

Windows linux 都利用脚本自动安装。

 

介绍下工具的目录结构:

W2k3.0 winxp.0 w2k.0 vmlinuz5.5 都是启动引导文件, 2003 2000 xp 都是在 i386 提取重命名的文件, vmlinuz linux 系统引导需要的文件。

Winxp.sif win2k3.sif windows 无人值守安装脚本。

 

这篇文章有纤细的介绍 windows xp 2003 2000 系统引导文件的制作。

引导菜单

Pxelinux.cfg 目录下建立 default 文件,内容如下。注意 kernel 写的就是相应的引导文件。

DEFAULT vesamenu.c32

PROMPT 0

 
MENU TITLE PXE Boot Install All System BY backsan

MENU BACKGROUND backsan.png

TIMEOUT 600

 
LABEL hdd

MENU LABEL 0----Boot From HARDDISK

kernel chain.c32

APPEND hd0 1

 
LABEL winxp

MENU LABEL 1----Boot Install Windows XP pro From Network

kernel winxp.0

 
LABEL win2k

MENU LABEL 2----Boot Install Windows 2000 server From Network

kernel w2k.0

 
LABEL win2k3

MENU LABEL 3----Boot Install Windows 2003 server From Network

kernel w2k3.0

 
LABEL centos5.5

MENU LABEL 4----Boot Install centos5.5 From Network

kernel vmlinuz5.5

append initrd=initrd5.5.img

 
LABEL centos6.3

MENU LABEL 5----Boot Install centos6.3 From Network

kernel vmlinuz6.3

append initrd=initrd6.3.img

 
 

脚本文件:2003server为例

[data]

floppyless = "1"

msdosinitiated = "1"

; Needed for second stage

OriSrc = "\\192.168.80.34\tftp\win2k3\i386"

OriTyp = "4"

LocalSourceOnCD = 1

DisableAdminAccountOnDomainJoin = 1

 
[SetupData]

OsLoadOptions = "/fastdetect"

; Needed for first stage

SetupSourceDevice = "\Device\LanmanRedirector\192.168.80.34\tftp\win2k3"

// 说明: 192.168.80.34 是我 tftp 服务器的 IP 地址。 Tftp 是我共享出来的 tftp 文件夹的共享名。 Tftp 文件一定要匿名共享出来,这样在经过网卡启动之后,客户机才能访问这些镜像。匿名共享可以网络搜索

[RemoteINstall]

    Repartition=No

    UseWholeDisk=Yes

[Unattended]

    FileSystem=*

    UnattendMode=FullUnattended

    UnattendSwitch=Yes

    OemPreinstall=Yes

    OemSkipEula=Yes

    WaitForReboot=No

    NoWaitAfterTextMode=1

    NoWaitAfterGUIMode=1

    DriverSigningPolicy=Ignore

    NonDriverSigningPolicy=Ignore

    Hibernation=No

    TargetPath=\winnt

    CrashDumpSetting=0

 
[GuiUnattended]

    AdminPassword="123456"

    TimeZone=210

    OEMSkipRegional=1

    OemSkipWelcome=1

    EncryptedAdminPassword=NO

    AutoLogon=Yes

    AutoLogonCount=3

 
[Shell]

    DefaultStartPanelOff=No

 
[LicenseFilePrintData]

    AutoMode=PerSeat

 
[Components]

    ComPlusNetwork=On

    IEHardenAdmin=Off

    IEHardenUser=Off

    iis_common=Off

    iis_inetmgr=Off

    iis_www=Off

    iis_asp=off

    aspnet=off

    SCW=On

    AutoUpdate=Off

    OEAccess=Off

 
[UserData]

    ProductKey=JB79Q-MG7HH-VP9JQ-R78Y4-3PFDY

    ComputerName=backsantest

    FullName="backsan"

    OrgName="backsan"

 
[Networking]

    InstallDefaultComponents=Yes

 
[WindowsFirewall]

    Profiles=WindowsFirewall.TurnOffFirewall

 
[WindowsFirewall.TurnOffFirewall]

    Mode=0

 
[Identification]

    JoinWorkgroup=workgroup

 
[GUIRunOnce]

    Command1="%SystemDrive%\tools\winrar.exe /s"

;   Command2="%SystemDrive%\drivers\nic.exe /s"

    command3="%SystemDrive%\DPsFnshr.exe"

    command20 = "regedit /s %SystemDrive%\tools\RunOnce.reg"

[Display]

    Xresolution=800

    Yresolution=600

    BitsPerPel=32

    Vrefresh=75

[TapiLocation]

    CountryCode=86

    Dialing=Pulse

    AreaCode=010

    LongDistanceAccess="86"

[RegionalSettings]

    LanguageGroup=8,7,9,10

    Language=00000804

[Branding]

    BrandIEUsingUnattended=Yes

[URL]

    Home_page=about:blank

 
[Proxy]

    Proxy_Enable=0

    Use_Same_Proxy=0

 
linux 系统引导后就可以直接安装了,通过网络文件共享的方式。而 windows 系统,还需要收集网卡驱动程序。 Nics.txt 文件内容是关于网卡驱动程序的对应列表。

8086 100F e1000325.sys vmware 是我在虚拟机测试机上用到的驱动。 Binlsrv 通过监听端口,获取网卡信息,然后将相应的网卡驱动发给客户机。

 
客户机接受到网卡驱动,就能正常的通过网络安装系统了,再加上无人值守安装脚本,就可以一次完成。如果所有的驱动程序都不匹配的话,安装会中断的。

 

介绍手动收集网卡信息:

找一台与客户机网卡相同的机器(后面称之为参考机器),手工提取生产商ID ,产品 ID ,驱动文件。在参考机器上执行: 我的电脑 右键菜单-> 管理 -> 设备管理器 -> 网络适配器 -> 选择相应网卡并双击,并选择详细信息选项卡,如下图: