基于PXE启动的WINDOWS 2000/XP的多播克隆(1)
云南省能源职业技术学院
徐小栋 韩俊
2004年1月27日
目前,各学校都建有自已的计算机实验室,这些机房一般都有大量配置相同的计算机。对这些设备的管理和维护,是各学校机房管理中最繁杂的日常工作。特别是学生实验用机,由于学生的误操作或恶作剧造成系统崩溃是常有的事。因此对学生实验用机系统的备份及快速恢复是校园机房日常维护中必须做的工作。快速备份和恢复系统的常用手段之一是硬盘的虚拟还原技术。但虚拟还原并没有完整的备份硬盘数据,如果出现硬盘损坏,虚拟还原软件是无法恢复硬盘数据的。
使用赛门铁克的磁盘管理工具Ghost进行多播克隆,可快速完整的备份和恢复系统。特别是对大量配置相同且连网的计算机。如果连网计算机配有可远程启动的网卡,使用Ghost进行多播克隆将更加方便。下面将介绍怎样采用赛门铁克的磁盘管理工具Ghost 7.5企业版来实现基于PXE的网络远程启动,进行WINDOWS 2000/XP系统的多播克隆。
多播克隆过程简述
多播克隆过程为:首先在装有Ghost 7.5企业版的服务器端利用“Ghost Boot Wizard”生成一张启动软盘;然后在服务器端运行“GhostCast Server”,做好相关设置,再用刚才生成的启动软盘在装有软驱的工作站上启动机器,连接到服务器,使用Ghost多播服务(Multicast Server)将一台工作站上的硬盘或分区的数据备份到服务器端;改变GhostCast Server”的相关设置,用同样的启动软盘启动其他工作站,连接到服务器,使用Ghost多播服务(Multicast Server)将先前备份的工作站硬盘或分区的映像数据克隆到其他工作站,以实现完整、安全、快速的工作站硬盘克隆。
实现基于PXE的网络启动
对于配有网络远程启动功能的工作站,通过网络远程启动引导工作站自动执行相关操作,可省去用软盘一台一台引导工作站启动的麻烦。要实现PXE网络启动,需要完成以下几个步骤:
1、工作站端PXE启动设置
PXE网络启动一般要求在网卡上加装PXE启动芯片(PXE Boot ROM);对于某些型号的网卡,也可以将PXE启动代码(Boot Code)写入主板的Flash ROM;而一些主板上集成了网卡的,可直接支持PXE启动。
本文以装有PXE启动芯片的RTL8139网卡为例,其PXE启动设置方式是:机器启动时根据屏幕提示按下Shift+F10,在“Network Boot Protocol”中选择PXE,“Boot Order”中选择Int 18h项。选择Int 18h项是为了让机器按CMOS中设置的启动顺序启动,在后文中将说明其作用。
2、服务器端的软件安装
可选择一台装有WINDOWS 2000 SERVER或WINDOWS SERVER 2003的机器作为服务器,不需要装成域控制器,一般的独立服务器即可。在进行多播克隆时整个局域网不要连入Internet网。服务器上要装有DHCP服务,安装Ghost 7.5企业版和3Com的DABS(Dynamic Access Boot Services)软件。
3、生成PXE启动映像文件
① 在服务器上使用“Ghost Boot Wizard”生成一张启动软盘,其过程如下:
单击“开始”按钮,选择“程序”→“Symantec Ghost” →“Ghost Boot Wizard”进入Ghost启动向导对话框,如图1所示。
图1
单击“下一步”按钮,出现选择网卡对话框,如图2所示。
图2
图3
图4
图5
在图2所示的对话框列表中没有RTL8139网卡,因此我们必须添加网卡,单击“Add”按钮,出现如图3所示的对话框,选择“NDIS2 Driver”,单击“OK”按钮,出现如图4所示对话框,单击其中的“Setup…”按钮,插入网卡驱动程序盘,在随后出现的“浏览文件夹”对话框中选择RTSND.DOS和OEMSETUP.INF文件所在文件夹,然后单击“浏览文件夹”对话框中“确定”按钮。
系统找到相应文件并读出相应参数后,将填入图4 对话框中的各文本框中,如图5所示。
单击图5中的“确定”按钮,回到图2 所示对话框,给新增的网卡取一个名字,然后单击“下一步”,出现如图6所示对话框。
图6
在图6所示的对话框中,让我们选择DOS版本,如果选择“Use PC-DOS”,可直接单击“下一步”,若要选择“Use MS-DOS”则必须先点击“Get MS-DOS”按钮来读取MS-DOS文件。单击“下一步”后出现如图7所示的对话框中选择“Symantec Ghost”,单击“下一步”,出现如图8所示对话框,选择其中的“DHCP will assign the IP settings”选项,单击“下一步”。其后按屏幕提示插入一张空白磁盘到A驱,系统会根据所做的选择格式化磁盘,然后将所需要的文件拷贝到插入A驱的软磁盘中。
图7
图8
② 修改启动盘
用“Ghost Boot Wizard”生成的启动软盘之目录结构如下:
[\]------+---- [GHOST] ------------------- GHOST.EXE
+---- [NET] ----------------+---- DIS_PKT.DOS
+---- AUTOEXEC.BAT +---- NETBIND.COM
+---- COMMAND.COM +---- PROTMAN.DOS
+---- CONFIG.SYS +---- PROTMAN.EXE
+---- IO.SYS +---- PROTOCOL.INI
+---- MOUSE.COM +---- RTSND.DOS
+---- MSDOS.SYS
上图的目录结构中,用方括号括起来的是目录,其他的是目录中的文件。这只是GHOST生成的启动软盘的目录结构,要达到本文所述的目的还需要对其进行改造。我们不但要远程网络启动进行多播克隆,还要恢复CMOS的设置,做到无人干预的自动恢复。因此还必须在这张启动盘中增加几个文件和修改AUTOEXEC。BAT文件。
要增加的文件一个是CMOS数据读取和写入程序CMOSMENU.EXE,一个是CMOS数据文件CMOS.DAT,这个文件是用CMOSMENU.EXE从工作站的CMOS中读取出来的,在读取数据前,一定要将CMOS中的启动顺序改为第一从软盘或硬盘启动,而不能是LAN,这也是我们在工作站端PXE启动设置中将“Boot Order”设置为Int 18h项的原因,目的在于工作站多播克隆完成重新启动后,不会再进行远程网络启动而从本地软盘或硬盘启动。原启动盘中的MOUSE.COM不用,可将其删除。再增加HIMEM.SYS、EMM386.EXE、REBOOT.COM、PARA.TXT等几个文件,其中REBOOT.COM是一个在DOS下重启系统的小程序,PARA.TXT是一个纯文本文件,其内容只有一个“2”字,用于将参数传递给CMOSMENU.EXE。
CMOSMENU.EXE是一个读取和写入CMOS数据的小程序,其作用是从CMOS中读取数据,或者将CMOS.DAT文件的内容写入CMOS,它可以带参数,带参数“1”是从CMOS中读取数据并保存在CMOS.DAT文件,带参数“2”是将CMOS.DAT文件中的数据重新写回CMOS。因此可以用CMOSMENU.EXE在工作站上先生成数据文件CMOS.DAT。在生成CMOS.DAT文件前,应先设置好CMOS,包括启动顺序,CMOS口令等。然后再生成CMOS.DAT文件,并将文件拷入到我们制作的启动盘中。
所需文件拷入启动盘后,复制一张启动盘,在一张上标记为备份启动,另一张上标记为还原启动,然后修改两张盘中的AUTOEXEC.BAT和CONFIG.SYS两个文件。
备份启动盘中的AUTOEXEC.BAT文件内容如下:
@echo off
prompt $p$g
\net\netbind.com
cd \ghost
echo Loading...
GHOST.EXE -clone,mode=dump,src=1,dst=@MCwin2k3 -sure -fx
cd
cmosmenu < para.txt
reboot
还原启动盘中的AUTOEXEC.BAT文件内容如下:
@echo off
prompt $p$g
\net\netbind.com
cd \ghost
echo Loading...
GHOST.EXE -clone,mode=load,src=@MCwin2k3,dst=1 -sure -fx
cd
cmosmenu < para.txt
reboot
上面的“win2k3”是多播服务的作业阶段名称(session name),可根据实际情况填写。
备份和还原启动盘中的CONFIG.SYS文件内容如下:
DEVICE=HIMEM.SYS /TESTMEM:OFF
DEVICE=EMM386.EXE NOEMS
DOS=HIGH,UMB
DEVICE=\net\protman.dos /I:\net
DEVICE=\net\dis_pkt.dos
DEVICE=\net\RTSND.DOS
改造完成后的启动软盘之目录结构如下:
[\]------+---- [GHOST]------------------ GHOST.EXE
+---- [NET] -------------+----- DIS_PKT.DOS
+---- AUTOEXEC.BAT +----- NETBIND.COM
+---- CMOS.DAT +----- PROTMAN.DOS
+---- CMOSMENU.EXE +----- PROTMAN.EXE
+---- COMMAND.COM +----- PROTOCOL.INI
+---- CONFIG.SYS +----- RTSND.DOS
+---- EMM386.EXE
+---- HIMEM.SYS
+---- IO.SYS
+---- MSDOS.SYS
+---- PARA.TXT
+---- REBOOT.COM
③ 生成启动映像文件
在服务器上,单击“开始”按钮,选择“程序” →“3Com Boot Services”→“Boot Image Editor”进入3COM启动映像文件编辑器,所图9如示。
图9
点击上图中的“Create a TCP/IP or PXE image file”按钮,出现创建TCP/IP映像文件对话框,如图10所示。在“Image file name:”文本框中输入要创建的映像文件名及保存路径。这里我们先创建备份启动盘的映像文件,取名为“ghostbf.img”,保存到“D:\tftpsvr”目录下。
图10
输入映像文件名和保存路径后,将先前制作的启动软盘(在这里是备份启动软盘)插入A驱,单击“OK”按钮,开始制作启动映像文件,过程如图11所示。完成后重新回到图9所示画面,重复上述操作,制作恢复启动映像文件,这里取名为“ghosthf.img”,和备份启动映像文件一样保存到“D:\tftpsvr”目录下。制作完成后重新回到图9所示画面,单击“Create a PXE boot file.”按钮开始制作启动菜单文件(即工作站远程启动后的选择菜单)。如图12所示。
图11
图12
④ 制作远程启动菜单
在图12所示对话框中,单击“Add”按钮添加菜单项,出现如图13所示对话框。在“Image file”文本框中输入恢复启动映像文件名,或单击“Browse”按钮进行查找。可在“Menu description”文本框中输入菜单项的描述,完成后单击“OK”按钮建立一条菜单选项。重复上述操作,在“Image file”文本框中备份启动映像文件名,建立第二条菜单选项。完成后可看到如图14所示画面。
图13
在图14中,红色箭头所指示的菜单项是“默认”选项,如果用户不作选择将按该菜单项所指的映像文件启动。菜单标题和等待时间可在图中的“Option”选项卡中设置,系统默认的等待时间是30秒钟,可根据需要进行调整。
图14
设置好上述项目后,单击“Save”按钮保存设置,在图15所示的对话框中输入启动菜单文件名,这里是“PXEMENU.PXE”,同样保存在“D:\tftpsvr”目录下。
图15
4、服务器端PXE启动服务设置
① DHCP服务设置
在服务器端,点击“开始”按钮,选择“控制面板”→“管理工具”→“DHCP”,打开HDCP管理控制台,如图16所示。
图16
选择服务器,如上图中的“win2k3[200.10.10.1]”,在其上单击鼠标右键弹出快捷菜单,选择“属性” →“高级”页面,如图17所示。点击“绑定”按钮,出现如图18所示对话框。
图17
图18
在图18中,如果机器配有多块网卡,应选择和内部局域网连接的网卡(即要做多播克隆的)和服务器绑定,在代表网卡的IP地址前的复选框中打上钩,点击“确定”按钮。
返回到图16所示界面后,选择作用域,如图16中的“作用域[200.10.10.1]”,在其上单击鼠标右键弹出快捷菜单,选择“属性” →“高级”页面,如图19所示。
图19
Windows 2000 Server或WINDOWS SERVER 2003的DHCP服务支持两种启动协议:DHCP和BOOTP。我们可以设定以下三种选择:仅DHCP、仅BOOTP、两者。如果我们的局域网中由其他的DHCP服务器提供动态IP地址分配,那么这里选“仅BOOTP”即可;如果需要这台服务器提供动态IP地址分配,则需要选“两者”。作完选择后,点击“确定”按钮。
接下来设置启动文件名。在作用域下,选择作用域选项,在其上单击鼠标右键弹出快捷菜单,选择“配置选项(C)…”,出现如图20所示对话框。
图20
图21
在图20的“常规”选项卡的列表中,选择可用选项“067:启动文件名”,“数据输入”框的字符串值为我们创建的PXE启动菜单文件名Pxemenu.pxe。注意:只是文件名,不包含路径。DHCP服务设置完成后的界面如图21所示。
② TFTP服务设置
图22
图23
图24
DHCP服务器只是将启动文件名通知给BOOTP客户机,客户机需要通过TFTP服务下载启动文件,因此我们还需要设置TFTP服务。在我们安装的3COM DABS中,就包含了一个TFTP服务组件,单击“开始”按钮,选择“控制面板”→“3Com TFTP”,出现如图22所示对话框,选择“File Transfer”选项卡如图23所示,在选项卡的两个文本框中输入前面我们保存映像文件和启动菜单文件的路径,即:“D:\tftpsvr”,然后选择“Network Cards”选项卡,查看和内部局域网相连的网卡是否在列表中。回到“Service”选项卡,选择“3Com TFTP startup type”为“Automatic”,点击“Start”按钮,单击“OK”按钮完成设置。
图25
5、启动服务
服务配置完成后,应检查所需要的服务是否都已启动。单击“开始”按钮,选择“程序” →“管理工具”→“服务”,出现如图25所示窗口,在“服务”窗口的列表中,我们可以查看所需要的服务是否都已启动,若没有启动,选择相应“服务”选项,在其上单击鼠标右键弹出快捷菜单,选择“启动”项来启动相应的服务。这里要查看的服务项目有:3Com BOOTP、3Com PXE、3Com TFTP、DHCP Server等。注意:如果配置了“路由和远程访问”服务,应在多播克隆时停止该项服务,否则客户机端可能不能正常工作。