2012年2月25日星期六

在linux下创建winpe启动环境


1 配置dhcp服务,下载ris-linux-0.4(略)

2 配置smb服务,配置文件大概如下:
[reminst]
path = /opt/kickstart/tftpboot
public = yes
browsable = true
read only = no
guest ok = yes

3 配置tftp服务,由于linux对大小写敏感,需要将所有以大写字母命名的文件转换成小写字母命名,转换脚本如下:

find ./ -depth |perl -ne 'chomp;m</[^/]*$>;$d=$`;$_=$f=$&;''s/([\x80-\xFF].)|(\w)/$1\l$2/g;system "mv",$d.$f,$d.$_ if $f ne $_'

配置/opt/kickstart/tftpboot/rules文件,对文件名进行映射,内容如下:
[root@linux_install /opt/kickstart/tftpboot]
#cat rules
ri ^[a-z]: # Remove ¡°drive letters¡±
rg \\ / # Convert backslashes to slashes
rg \# @ # Convert hash marks to @ signs
rg /../ /..no../ # Convert /../ to /..no../
rg A a
rg B b
rg C c
rg D d
rg E e
rg F f
rg G g
rg H h
rg I i
rg J j
rg K k
rg L l
rg M m
rg N n
rg O o
rg P p
rg Q q
rg R r
rg S s
rg T t
rg U u
rg V v
rg W w
rg X x
rg Y y
rg Z z
r ^/(.*) \1

启动tftp服务时,需要指定-m参数:
/opt/kickstart/hpa-tftp/sbin/in.tftpd -l -v -s /opt/kickstart/tftpboot/ -m /opt/kickstart/tftpboot/rules

创建winpe的启动环境:
1 找到 STARTROM.N1_ 文件,并重命名为/opt/kickstart/tftpboot/winpe.0
2 运行sed -i -e 's/NTLDR/peldr/gi' /opt/kickstart/tftpboot/winpe.0
3 找到setupldr.exe 文件(i386目录下),并重命名为/opt/kickstart/tftpboot/peldr
4 运行sed -i -e 's/winnt\.sif/winpe\.sif/gi' /opt/kickstart/tftpboot/peldr
5 运行sed -i -e 's/ntdetect\.com/ntdetect\.wpe/gi' /opt/kickstart/tftpboot/peldr
6 找到NTDETECT.COM文件(i386目录下),并重命名为/opt/kickstart/tftpboot/ntdetect.wpe
7 运行 ris-linux-0.4/fixloader.py /opt/kickstart/tftpboot/peldr (此处仅为pxe启动winpe使用,如配置WinXP的安装源则无需这一操作)
8 配置/opt/kickstart/tftpbootwinpe.sif文件如下:

[Intranet root@KickStart /opt/kickstart/tftpboot]
#cat winpe.sif
[SetupData]
OsLoadOptions = "/fastdetect /minint"
SetupSourceDevice = "\Device\LanmanRedirector\10.20.129.9\reminst\windows\winpe"
[UserData]
ComputerName = WindowsPE

没有评论:

发表评论