跳至主要内容

Remote Install WinXP from a FreeBSD box

1. Install tftp-hpa (/usr/ports/ftp/tftp-hpa)
Install samba3, perl, python

2. Set pxeboot environment
Ref: http://jnlin.org/2006/10/29/141/

3. Change tftpd server to tftp-hpa
/usr/local/libexec/in.tftpd in.tftpd -v -m /tftpboot/rules -s /tftpboot

4. Write rules
(Warning! If you apply my rule, all filenames in tftproot must be lowercase)
# 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

5. extract I386 files from Windows XP installation CD

(Ref: http://oss.netfarm.it/guides/ris-linux.php)

- Copy i386 directory from the installation media to a subdir called winxp
in the ris working directory

- Extract the pxe loader:
cabextract /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 /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 /i386/NTDETECT.COM to tftpd root
and call it ntdetect.wxp

6. Create winxp.sif

(Ref: http://oss.netfarm.it/guides/ris-linux.php)

==
[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=
==

*** Remember to set the share folder in the samba server ***

Ref: http://oss.netfarm.it/guides/pxe.php

[REMINST]
path = /mnt/disk/ris
browsable = true
read only = No
guest ok = Yes

7. Install NIC drivers to i386/inf
cp nicdrivers/* i386/inf
ln i386/inf/* i386/*

8. Rename all files in winxp to lowercase
find ./ -depth | perl -ne ‘chomp;m;$d=$`;$_=$f=$&; \
s/([\x80-\xFF].)|(\w)/$1\l$2/g;system “/bin/mv”,$d.$f,$d.$_ if $f ne $_’

9. Get Binl Server and extract it
fetch http://oss.netfarm.it/guides/ris-linux-0.2.tar.gz
tar zxf http://oss.netfarm.it/guides/ris-linux-0.2.tar.gz
cd ris-linux-0.2

10. Run infparser.py
./infparser.py /where/is/winxp/i386/inf

11. Run ./binlsrv.py

12. Go to install Windows XP

** Useful Ref **
http://oss.netfarm.it/guides/pxe.php
http://oss.netfarm.it/guides/ris-linux.php
http://syslinux.zytor.com/pxe.php

评论

此博客中的热门博文

使用StrongSwan搭建 IKEv1 IKEv2 VPN服务器

#2016-01-04 决定将本文作废,因我要另再写新版本的配置。这篇作于 2013年,而strongswan已经更新很多版本。 #本文需要有独立的VPS,如果你需要一台速度快,每月30元的左右的VPS,可以使用我的邀请注册 http://www.vultr.com/?ref=6813064 并且在注册时使用 SSDVPS 可以送 $20(或者 $10 不等)。一定要选日本线路,这个到国内延迟约40ms ~ 100ms ,一般是 80ms 左右,非常快非常稳定,一个月32元,可以和几个人合租了。 #LOG:2014-04-30 对ipsec.conf进行修改,增加了android手机的兼容,现在可以支持完整支持android 自带的VPN设置啦~~~~ #LOG:2013-0609 对ipsec.conf进行修改,加入清楚DPD代码,防止IP 地址池不正确占用 #LOG: 2013-0519 删除ipsec.conf 中多余的conn iOS一节,这本是我一年前调试用的,时间不起作用; 删除了 %default中的 rightsubnet ,如果不删除,在定义了多段IP路由的情况下会导致账号无法上网(只有一段IP没这个bug),感谢  JackWindows  ‏ @ JackWindows #LOG 2013-05-12 修正bug,原配置文件会导致一个ID不可以同时多次登陆。得蒙  @ KhaosT   指点,对  strongswan.conf 加入duplicheck.enable = no ,对 ipsec.conf 加如 uniqueids=never #完成度100% 在我们生活的周围,通常要用到很多种VPN: PPTP, L2TP/IPSec, Cisco IPSec, IKEv2, 这些不同类型的VPN覆盖了目前我们常见的所有手机或者电脑平台,比如 iOS, Blackberry OS, BB10, Android, WebOS, Windows XP, Windows Vista/7/8, Unix/Unix-like。 (*如果你正在找blackberry 翻墙方法、ios ipsec vpn、windows IKEv2 VPN、Blackberry BB10 / Z10 VPN、android VPN,建

简易 APN Proxy (APN代理)的搭建

2012年2月1日 ,新增加了一种方案,请看 《 搭建增强型代理服务器(APN Proxy) 》 2012-01-03 更新 3proxy 及 监控进程脚本,分别见 B 3) 和 曾经在twitter被封锁的时候,我在长城宽带干过一件事,那就是将twitter的请求和通讯使用SSH,让全网用户可以无阻访问,不过也因此付出了代价,略不去说了。 后来得厨神 @paveo 的创意,何不将其用在手机等移动设备上?厨神的APN现在已经很成熟并在免费有限量专供中。我今天这里写得,是如何搭建自己的APN Proxy(APN 代理),但在阅读下面内容之前,需要一个刚性要求:一台在国内的Unix-Like的主机(可以是Linux/FreeBSD/Mac Osx Server/Solaris等等)并且是公网IP地址以及在国外的VPS主机(Unix类)。这个要求可以看出成本比较高,所以我看到淘宝上已经有人开始出售APN代理了,这个可以理解。 第一部分 原理 原理图1 如上图所示,我们要实现的功能原理是,将上网请求先发送到“国内VPS”,再由“国内VPS”通过SSH隧道转送到国外,最终实现无阻上网。点击查看大图可以看出,主要配置是在“国内VPS”上,包括配置SSH -D、Squid、Privoxy或者Polipo(socks代理程序你可以选自己喜欢的)。 第二 配置 1 国外VPS 国外VPS上,你需要有一个SSH帐户,并且请注意,使用密钥方式登录你的SSH而非密码,之所以如此,是为了下一步建立长久的SSH以及断线自动重连做准备,这个很重要。关于“SSH 免密码 密钥 登录”请使用google看一下。 这里有一个小插曲,部分centos 上如果默认的话,SSH帐户会报错,大约 是adminitstatly close之类,这有可能是 openfile数目问题,可以轻松解决。我非Linux爱好者,所以是临时google,并没有记录下来,你只要记得如果遇到同样问题,5分钟之内就可以google解决。 2 国内VPS 这一节将会是我们的主战场,基本上,我将会按下面的逻辑图来进行配置,这其中会涉及很多文件的配置,需要你注意哦,最后部分我会提供部分配置文档下载,由于我使用的是FreeBSD,因此会有少量差

OCSERV 0.8.5 使用

*注1:本文不包含ocserv的编译、安装,请自行研习 *注2:本文将包含ocserv的证书认证配置,不包含pam (radius)认证 *注3:本文将包含win,mac 端的使用,移动端相对简单,不做介绍 ocserv是OpenConnect SERVer的缩写,基本上就是cisco anyyconnect的开源兼容服务器软件,好处就是这个软件使用的是SSL VPN方式,通常会用DTLS这一层,支持服务器端推送32条路由,实现国内国外按需区分路由;同时各种客户端会长连接方式,一直后台待命,省时省电。我就不废话了。 我的配置是采用了全证书的方式进行,因此不需要用户名密码,如果您要对客户端进行限制,计时方面可以采用证书有效时间;流量限制方面可以使用iptables针对IP进行限制;同时在线人数上如果是多台服务器的话,相互间无法限制(cookie/session分布于不同服务器),如果仅一台服务器话就可以在配置文件搞定。我的完全配置如下,如果你要复制配置文件可以到 这里 : #第一行用以指定认证方式,我是证书 auth = "certificate" #Added @05-10-2014 #加入这个后就可以使用occtl了 #occtl reload && occtl stop now use-occtl = true occtl-socket-file = /var/run/occtl.socket # seccomp default : true #关闭这个可以提高性能,牺牲一丁点安全,更可以避免无法启动的情况(遇到过的都知道那痛苦) use-seccomp = false # listen-host = 0.0.0.0 #最大客户端数量,根据你的服务器IP地址分配多少以及性能设置,自用的话不必很大 max-clients = 36 #这个看英文就知道意思了,你可以加以限制 max-same-clients = 4 tcp-port = 443 udp-port = 443 keepalive = 32400 dpd = 60 mobile-dpd = 1800 #故意为空 mobile-idle-timeout = deny-roaming = false