远程给服务器安装windows 2003

本文所指的远程服务器,是指无法物理接触,没有显示器,也没有键盘的 位于机房中的服务器


 

而网络上的 关于远程安装系统的 文章,大多是关于 给局域网 机器安装操作系统,操作人员 物理接触目标计算机,所以实现要相对容易一些 。但是我觉得这只能算是通过网络安装系统,而不能算远程安装

 

综上所述, 本文的核心就是:无法物理接触服务器情况下,如何远程给它安装操作系统 (windows Linux  ,在本文的其它文章中也会讲解远程通过 vnc 安装 Linux)

 

 

服务器无法物理接触,只能通过网络远程管理,这是很多互联网公司服务器部署的特点, 如果能在不需要物理接触服务器情况下,实现远程安装操作系统, 岂不快哉?。

 

 

在以下的内容中,我们将要安装操作系统的机器称之为目标机器,而提供安装程序镜像,dhcp, tftp 服务的机器称之为 安装源服务器 ,   考虑真实的网络拓扑,应该在机房的某一台服务器上配置安装源,而我们又是通过 Internet 连接登录到安装源服务器上,来进行后续的操作。

 

 

 

安装windows 可以采用 windows 2003 自带的远程安装服务(在  sp2 中称为 windows 部署服务),也可以使用 pxelinux+tftpd32+binlsrv 安装,但是使用远程安装服务,需要在服务器上安装域控制器, dhcp, tftp 服务等等,配置繁琐且实施效率较低,故放弃之。

 

 

本文的安装使用pxelinux+binlsrv+tftpd32 方式安装,配置非常简单,安装源服务器甚至是 windows XP 也通用,优势明显。我们也可以使用它通过 windows 服务器安装 Linux

这几个文件的体积非常小,无须安装即可使用,如有困难,可联系作者以取得帮助。信箱是 [email protected]

 

基本安装思路如下:


1. Windows安装过程中,自动加载 SCSI 磁盘驱动,无须按 F6,  这是相当重要的,否则安装过程中无法识别出 SCSI 磁盘。如何制作集成 SCSI 通用驱动的安装源是成功安装的前提。对此请参阅相关文章: http://blog.beibei.in/post/SATA_windows_setup.htm

2. 
安装完成后,windows 自动登录,并自动安装好网卡驱动, windows 的从 dhcp 服务器得到 IP

3. 
管理员通过IPC DamWare 软件 / 远程桌面等方式连接到目标机器,进行初化配置。

 

本文就是使用以上方法,成功在Dell PowerEdge R610/R710 服务器上成功安装 windows 2003

 

我认为,在操作系统安装过程中,最为重要的是给磁盘分区 目前有两种可行方式 :
分区过程中,手工分区(需要有远程控制卡,R610/R710 均支持)

自动分区,没有任何人工参与(但整个磁盘会被重新格式化为一个分区)

 

如果服务器没有控制卡,则只能选择后者实现无人参与安装 我当时的想法是在文本安装阶段,出现分区时界面时,同时启动一个 VNC Server (因为在这个阶段,客户端的 windows 已经通过 binlsrv 加载了网卡驱动,并已经支持 TCP/IP )等待客户端连接并控制, 这样控制端就可以通过 VNC 控制客户机完成手工分区。

 

但是如何在文本模式下启动指定的后台程序?我至今还没有解决办法, 如果您有类似的解决思路或方案,请一定告诉我,甚是感谢。 或是了解软件设计的朋友,能否对windows 安装程序进行改造,集成 VNC Server ? 当然,这个思路也是我从 Linux 可以使用 VNC 远程安装的思路得来。 如果 windows 的安装过程也可以实现 VNC 控制,那么将大大增强安装过程的可控性。

 

当然,如果服务器有远程控制卡,那完全可以实现手动分区。

 

 

本文以Dell PowerEdge R610/R710 服务器为例,描述了在无法物理接触服务器情况下,实现远程自动安装 windows 2003

 

远程控制卡的设置,请参照http://zhangxugg-163-com.iteye.com/blog/838682

所使用的工具, 我都已经准备好并提供下载,如下载链接失效,请联系作者信箱 [email protected]  索取。

原文地址是 http://zhangxugg-163-com.iteye.com/admin/blogs/846589

 

 

一、 搭建安装源服务器
这部分工作包括TFTP DHCP windows 安装源建立, windows 匿名共享,准备客户机网卡驱动文件(一般为 .sys 文件)
将我提供的安装文件解压缩到某个目录,如D:\OS\RIS,  目录结构如下:


 

 

 

主要文件说明:
tftpd32.exe  此程序提供 dhcp, tftp 服务,以供 pxe 客户端正常启动
winnt.sif     windows的无人值守应答文件

Binlsrv.exe   binl服务器程序

Nics.exe      binl数据库文件

pxelinux.cfg   启动菜单配置目录 

2003          windows 2003安装文件目录

2003\$OEM$   保存自动安装的网卡驱动
2003\I386      windows 2003安装文件,对应安装光盘中的 I386

 

1. 部署安装源
建立目录 D:\OS\RIS\2003\i386,  windows 2003 安装盘中 i386 目录下的所有文件,全部复制到 D:\OS\RIS\2003\i386 目录中。
然后使用driverpacks D:\OS\RIS\2003\i386 安装源集成 SCSI 驱动(请参阅 http://blog.beibei.in/post/SATA_windows_setup.htm ),制作完毕后,请用我提供的文件 2003\i386\preSetup.cmd,  替换你的 I386\preSetup.cmd


driverpacks 生成的 OEM 目录(与 I386 同级),修改成  $OEM$

 

$OEM$\$1中的内容,会被复制到系统盘根目录下

$OEM$\$$ 中的内容会被复制到 windows 根目录下(一般为 c:\windows\

所以,我将常用软件(如winrar )放到 $OEM$\$1\tools,  如果系统安装在 C 盘,当系统安装完成后, C:\tools\ 下即可找到需要安装的软件。

 

$OEM$\$1\tools\RunOnce.reg  是我针对 windows 2003 作的一个初始设置,包括:
  启用远程桌面,禁止匿名共享,禁用关闭事件跟踪程序,禁用错误报告

您可以根据自己需要进行修改。

 

2.  收集客户机网卡驱动

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


 

 

划红线的就是网卡的生产商id,  产品 id ,如上图就分别是  1022 2000,  将这两个 id 记录下来,后面有用。

 

再切换到“驱动程序”选项卡,并点击“驱动程序详细信息”,即可得到当前网卡的驱动文件名


 

将这个驱动文件复制出来,并放到 D:\OS\RIS\2003\I386 目录下。

 

再编辑nics.txt 文件,增加一行,按已经存在的范例填写生产商 id,  产品 id,  驱动文件名,描述。如本文的范例是( dell R610/R710

14e4 1639 b06nd51x.sys  dell

 

至此网卡驱动搜索完毕。

为了让windows 在安装后能自动安装好驱动,需要做一些额外必须的工作,让 windows 在首次登录时自动安装网卡驱动。

如果你的服务器是Dell PowerEdge R610/710 ,请到 dell 官方网站下载网卡驱动,得到一个大约 6M 的可执行文件,将这个文件改名为 nic.exe,  并放到  D:\OS\RIS\2003\$OEM$\$1\drivers\ 目录中,并在 winnt.sif 中的 [GuiRunoce] 段中添加
Command10="%SystemDrive%\drivers\nic.exe /s"

 

这样,windows 安装完成后首次自动登录后,自动静默安装网卡驱动。

3.  在安装源服务器上建立共享目录,这个共享目录应该是 tftp 的根目录,在本例中,就是 D:\OS\RIS ,共享名设置为 ris,  并需要设置 everyone 可读取权限,同时必须开启匿名共享。
Windows 2003开启匿名共享请参阅
http://technet.microsoft.com/zh-cn/library/cc782121%28WS.10%29.aspx
http://www.msserver.com.cn/Server2003/49.html

 

4.  编辑 winnt.sif
[data] 段的 OriSrc IP 换成你的安装源服务器的 IP (必须和 dhcp 分配的 IP 位于同一网段)

[SetupData] 段的 SetupSourceDevice 中的 ip 也换成安装源服务器的 IP

将共享名(本例是ris )换成你自己真实的共享名称。

可根据需要修改[GuiUnattended] 段的 AdminPassword AutoLogonCount ,分别是管理员初始密码和自动登录次数,本例中初始密码是 123456 ,自动 3 次登录。

 

 启动tftpd32.exe  并设置如下(安装源服务器 IP 192.168.2.8
主界面中设置 Current Directory 为  D:\OS\RIS

Server Interface 设置为 192.168.2.8

点击其下方的settings GLOBAL 选项卡中选中 TFTP server DHCP Server 即可
TFTP选项卡的 Base Derictory  设置为  D:\OS\RIS ,仅选中以下高级选项:
Option negotiation
Translate Unix file names
Allow "\" As virtual root

 

dhcp设置:
ip pool starting address : 192.168.2.100

Size of pool  :  10

Boot file  :  pxelinux.0

Mask     : 255.255.255.0

设置完毕后,重启tftpd32

 

至此,安装源服务器工作完成,接下来进入激动人心的正式安装阶段。

 

二、 开始安装windows 2003
启动tftpd32, binlsrv (不要关闭它)两个程序

1. 使用 SSH/Telnet 连接到目标机器控制卡上(请参阅 http://zhangxugg-163-com.iteye.com/blog/838682 ),连接后在命令提示符下输入  console com2  即可看到远程机器 BIOS 启动信息(可能需要配合 ipmish.exe 工具控制目标机器的电源,这个工具我已经保存到 2003\$OEM\tools 目录下)。设置从网卡启动,随后即可出现熟悉的 windows 文本模式安装界面

 

2. 当提示“ setup is starting windows ...'  之后,  telnet/SSH 客户端显示可能空白,这是因为 windows 网络功能启用时的图形界面影响所致, 断开 telnet/SSH ,重新连接即可。

 

3.  当使用 telnet/ssh 重新连接后,即可出现分区界面,对中文 windows ,可能是乱码,但这并不影响正常安装,凭经验和感觉操作即可,另一个可选方案是使用 putty 连接,并设置编码为 utf-8 就可以正常显示。

分区完成,windows 复制文件并重启,这时一定要设置从磁盘优先启动,后期的图形界面,是全自动的,不需要手工参与。

 

等待大约半小时,即可安装完成,如果不出意外,你就可以使用远程桌面客户端连接它, 怎么得知已经安装好系统客户端的IP ?   这个可以在 tftpd32 主界面的  dhcp server 选项卡中查看到。

 

 

至此,本教程告一段落,总结一下,有几个要点:
1. 安装源必须集成 SCSI 驱动,这个可以使用 DriverPacks 工具完成
2. 服务器最好要有远程控制卡
3. 安装源服务器必须开启匿名共享
4. 修改 winnt.sif 以达到自动安装网卡驱动的目的

但是如果目标机器没有远程控制卡,怎么办?折衷的方案就是让windows 自动分区(整个磁盘将会格式化为一个分区),修改 winnt.sif,  [data] 段的 AutoPartition 设置为 1, [RemoteINstall] 段的 Repartion 设置为 Yes 即可无须手工分区,但是在重装前一定要注意备份数据。


我整理好的程序包下载地址:
http://zhangxugg-163-com.iteye.com/admin/blogs/846589

猜你喜欢

转载自zhangxugg-163-com.iteye.com/blog/846589