用PXE安装WINDOWS(linux->windows)
来源:互联网 发布:淘宝笔记本电脑退货 编辑:程序博客网 时间:2024/05/21 08:42
首先需要说明的是:这篇文章是事后写的,因为我在调试的时候没有习惯记录遇到的错误和解决的方法,这个时候正在努力的解决问题呢,也不知道是否能解决,所 以没有办法记录,首先需要感谢的是伟大的Google,在我遇到困难的时候,我就求助与它,虽然内容不是它提供,但是它能让我在最快的时间内找到我所需要 的答案,其次感谢我所参考的那些文章的作者,由于有些知识是以前积累的,具体参考谁的我也不记得了,呵呵,总之感谢他们的帮助。
这次参考的文章:
http://jnlin.org/2007/01/23/149/
http://oss.netfarm.it/guides/ris-linux.php
http://blog.yalin.tw/2007/06/pxe-in-freebsd-windows-xp.html
感谢作者给我这么大的帮助。
本文是在以上作者文章的指引下独立完成的,希望大家尊重本人的劳动成果,转载著名保留一下信息,谢谢
作者: 温占考 (Zhankao WEN)
出处: 榆树社区 http://www.wenzk.net http://wenzk.cublog.cn
时间: 2007/07/08 16:30
因为以前搞过通过PXE安装Linux和用PXE来启动Planetlab的机器,所以对于PXE并不是很陌生,一下简要介绍一下如何架设的,所有操作均在FC4下的,对于windows下的,我没有兴趣去弄。
安装tftp server:
tftpd的配置文件,由于Linux对大小写敏感,所以稍微修改了一下tftp的配置:
呵呵,tftpd就搞定了,重新启动xinetd就OK了,reload也可以的,看自己习惯了。
下面配置DHCPD,增加配置:
创建必要的文件:
把 pxelinux.0 rules 复制到 /tftpboot目录下,创建/tftpboot/pxelinux.cfg目录,在该目录下创建:
default文件,内容为视情况修改:
到这里,PXE启动倒是没有什么问题了,只是启动WinXP的一些准备工作还没有做。
把WinXP光盘上的i386目录复制到/tftpboot/winxp目录下,参考http://blog.yalin.tw/2007/06/pxe-in-freebsd-windows-xp.html文章把一个正在运行的WinXP SP2下的WINDOWS/inf目录复制到/tftpboot/winxp/i386目录下,具体干什么,有什么用我也不了解,等下似乎要用到。
进入/tftpboot/winxp/i386目录,解开driver.cab文件。
15:25:55.474381 IP 192.168.1.117.55711 > 192.168.1.222.tftp: 54 RRQ "/winxp/i386/pcntpci5.sy_" octet blksize 1432 tsize 0
15:25:55.480476 IP 192.168.1.117.55712 > 192.168.1.222.tftp: 54 RRQ "/winxp/i386/pcntpci5.sys" octet blksize 1432 tsize 0
既然要的是这个文件,索性就把driver.cab文件直接解开到i386目录。
由于我这里是在Linux下,TFTPD对大小写很敏感,刚才的rules也把所有对文件和目录的请求都改成了小写,所以这里也要把所有文件名都改成小写的。
先进入/tftpboot/winxp目录,执行:
下面的操作参考http://oss.netfarm.it/guides/ris-linux.php而来:
提取XP PXE启动所需要的文件并适当的修改以适应能安装多个操作系统。
Setting up a Windows XP Source:
samba的配置(视情况而修改):
接下来就是搞定Binl Server了,具体干吗的我也不知道,安装的时候似乎要用到。
配置到这里几乎全部工作都完成了,应该可以通过PXE安装WinXP了。
这次参考的文章:
http://jnlin.org/2007/01/23/149/
http://oss.netfarm.it/guides/ris-linux.php
http://blog.yalin.tw/2007/06/pxe-in-freebsd-windows-xp.html
感谢作者给我这么大的帮助。
本文是在以上作者文章的指引下独立完成的,希望大家尊重本人的劳动成果,转载著名保留一下信息,谢谢
作者: 温占考 (Zhankao WEN)
出处: 榆树社区 http://www.wenzk.net http://wenzk.cublog.cn
时间: 2007/07/08 16:30
因为以前搞过通过PXE安装Linux和用PXE来启动Planetlab的机器,所以对于PXE并不是很陌生,一下简要介绍一下如何架设的,所有操作均在FC4下的,对于windows下的,我没有兴趣去弄。
安装tftp server:
CODE:
#yum install tftp-server tftp
经过这个操作后,你的机器安装了tftp server和tftp clinet这么两个包,安装tftp clinet是为了更好的测试tftp server是否work,直接tftp localhost,可以免去防火墙配置错误导致tftp不正常工作。tftpd的配置文件,由于Linux对大小写敏感,所以稍微修改了一下tftp的配置:
CODE:
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -m /tftpboot/rules -s /tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
增加了/tftpboot/rules文件,这个文件主要作用是,把请求tftp的所有路径和文件名改成小写。这个文件的内容为:CODE:
#cat /tftpboot/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
这个文件大概能看懂,从前人文章中拔出来的,嘿嘿。呵呵,tftpd就搞定了,重新启动xinetd就OK了,reload也可以的,看自己习惯了。
下面配置DHCPD,增加配置:
CODE:
allow booting;
allow bootp;
next-server 192.168.1.222;
filename "pxelinux.0";
一般说来增加这么几句就OK了,next-server后面的ip改成你实际的TFTP server的IP或者域名,filename后面是pxelinux.0文件,在syslinux软件包中可以找到,具体可以上http://syslinux.zytor.com/找寻更多的信息。创建必要的文件:
把 pxelinux.0 rules 复制到 /tftpboot目录下,创建/tftpboot/pxelinux.cfg目录,在该目录下创建:
default文件,内容为视情况修改:
CODE:
DEFAULT HD0
PROMPT 1
TIMEOUT 300
#ONTIMEOUT BOOT_PXE
LABEL winpe
MENU LABEL ^1----Boot for WinPE tools
kernel winpe.0
LABEL wxp
MENU LABEL ^1----Boot for Install WindowsXP
kernel winxp.0
LABEL dos
MENU LABEL ^2----Boot for Dos Tools
kernel memdisk
append initrd=dos/dostools.img
LABEL ghost
MENU LABEL ^3----Boot for Ghost 8.3
kernel memdisk
append initrd=dos/ghost83.img
LABEL pqmagic
MENU LABEL ^4----Boot for PQMagic 8.05
kernel memdisk
append initrd=dos/pm805.img
LABEL HD0
MENU LABEL ^0----Boot from the first HD
kernel chain.c32
append hd0
# eof: pxelinux.cfg/default
记得把dhcpd重新启动一下。到这里,PXE启动倒是没有什么问题了,只是启动WinXP的一些准备工作还没有做。
把WinXP光盘上的i386目录复制到/tftpboot/winxp目录下,参考http://blog.yalin.tw/2007/06/pxe-in-freebsd-windows-xp.html文章把一个正在运行的WinXP SP2下的WINDOWS/inf目录复制到/tftpboot/winxp/i386目录下,具体干什么,有什么用我也不了解,等下似乎要用到。
进入/tftpboot/winxp/i386目录,解开driver.cab文件。
CODE:
#cabextract driver.cab
一开始我没有做这步操作,安装过程中提示:找不到pcntpci5.sys文件,因为我用的是虚拟机,这个就是虚拟机网卡的驱动,看tftp请求的是:15:25:55.474381 IP 192.168.1.117.55711 > 192.168.1.222.tftp: 54 RRQ "/winxp/i386/pcntpci5.sy_" octet blksize 1432 tsize 0
15:25:55.480476 IP 192.168.1.117.55712 > 192.168.1.222.tftp: 54 RRQ "/winxp/i386/pcntpci5.sys" octet blksize 1432 tsize 0
既然要的是这个文件,索性就把driver.cab文件直接解开到i386目录。
由于我这里是在Linux下,TFTPD对大小写很敏感,刚才的rules也把所有对文件和目录的请求都改成了小写,所以这里也要把所有文件名都改成小写的。
先进入/tftpboot/winxp目录,执行:
CODE:
find ./ -depth | perl -ne 'chomp;m</[^/]*$>;$d=$`;$_=$f=$&;''s/([/x80-/xFF].)|(/w)/$1/l$2/g;system "echo",$d.$f,$d.$_ if $f ne $_'
如果有显示,表明有这些明中是有大写字母的,然后运行:CODE:
find ./ -depth | perl -ne 'chomp;m</[^/]*$>;$d=$`;$_=$f=$&;''s/([/x80-/xFF].)|(/w)/$1/l$2/g;system "mv",$d.$f,$d.$_ if $f ne $_'
OK,这下就把所有文件都改成小写了。下面的操作参考http://oss.netfarm.it/guides/ris-linux.php而来:
提取XP PXE启动所需要的文件并适当的修改以适应能安装多个操作系统。
Setting up a Windows XP Source:
QUOTE:
- Copy i386 directory from the installation media to a subdir called winxpCreate a response file called winxp.sif as follows:
in the ris working directory
- Extract the pxe loader:
cabextract <Source dir>/i386/STARTROM.N1_
- Modify the name of the loader from NTLDR to XPLDR:
sed -i -e 's/NTLDR/XPLDR/gi' startrom.n12
- Move the modified pxe loader to tftpd root, and call it winxp.0
- Extract the setuploader, using cabextract:
cabextract <Source dir>/i386/SETUPLDR.EX_
- Modify the name of the response file from winnt.sif to winxp.sif
sed -i -e 's/winnt/.sif/winxp/.sif/gi' setupldr.exe
- Modify the name of ntdetect from ntdetect.com to ntdetect.wxp
sed -i -e 's/ntdetect/.com/ntdetect/.wxp/gi' setupldr.exe
- Move the modified setuploader to tftpd root, and call it XPLDR
- Copy <Source dir>/i386/NTDETECT.COM to tftpd root
and call it ntdetect.wxp
CODE:
[data]
floppyless = "1"
msdosinitiated = "1"
; Needed for second stage
OriSrc = "//YOUR_SERVER_NAME/YOUR_SHARE_NAME/winxp/i386"
OriTyp = "4"
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = 1
[SetupData]
OsLoadOptions = "/fastdetect"
; Needed for first stage
SetupSourceDevice = "/Device/LanmanRedirector/YOUR_SERVER_NAME/YOUR_SERVER_SHARE/winxp"
[UserData]
ComputerName = *
; if needed
;ProductID=
上面文件的YOUR_SERVER_NAME改成你的samba的机器的IP或者机器名,YOUR_SERVER_SHARE改成你的tftpboot的共享名。samba的配置(视情况而修改):
CODE:
[reminst]
path = /tftpboot
browsable = true
read only = yes
writable = no
guest ok = yes
samba的其他部分配置可以参考samba的配置。配置完毕后重新启动samba。接下来就是搞定Binl Server了,具体干吗的我也不知道,安装的时候似乎要用到。
CODE:
wget [url]http://oss.netfarm.it/guides/ris-linux-0.2.tar.gz[/url]
tar zxf [url]http://oss.netfarm.it/guides/ris-linux-0.2.tar.gz[/url]
cd ris-linux-0.2
Run infparser.py
./infparser.py /where/is/winxp/i386/inf
Run ./binlsrv.py
注意不要关闭binlsrv.py这个进程。配置到这里几乎全部工作都完成了,应该可以通过PXE安装WinXP了。
- 用PXE安装WINDOWS(linux->windows)
- 用PXE安装WINDOWS(linux->windows)
- pxe网络安装系统---------基于windows xp做服务器(dhcp+ftp)安装linux系统
- Windows下创建PXE网络安装Linux[Redhat AS5.5]IBM X3650
- 基于linux+pxe+dhcp+tftp+samba+ris网络安装windows server 2003
- 通过pxe从网络启动安装Windows XP
- 通过pxe从网络启动安装Windows XP
- windows环境下PXE安装win2k、winXP、win2k3(转)
- 通过pxe从网络启动安装Windows XP
- 无光驱、软驱,通过PXE安装Windows 2003(转载)
- Windows系统远程安装服务及PXE技术
- PXE+Centos5+Unattended4.7自动化安装Windows 2003
- Windows 7作PXE Server网络安装Ubuntu 10.04
- PXE安装LINUX
- PXE远程安装Linux
- LINUX PXE网络安装
- linux pxe 安装
- linux下pxe安装linux
- 全局变量 和 静态
- js加载顺序
- 会话保持特性在ADC中的应用
- java多线程的两点误区
- 线程化的性能障碍:它们将给 OpenMP 代码带来什么影响?
- 用PXE安装WINDOWS(linux->windows)
- JFreeChart中文API
- 通过反射将表中的一行数据转换成某一具体的对象
- C#中自定义属性的例子
- ASP.NET Session丢失问题原因及解决方案
- C#将照片或图片转化为byte[]存入数据库,从数据库中读照片
- mssql 2008中的地理数据类型
- javascript速查笔记
- MS-SQL中的事务