通过前面两篇文章,我们已经了解了PXE服务器的架设方法及通过PXE服务器及无盘天使启动XP映像的方法,但假设我有A、B两台无盘工作站,我分别为这两台工作站定制了xp-a.dsk和xp-b.dsk两个映像文件,如何通过PXE服务器自动让A启动xp-a.dsk及让B启动xp-b.dsk呢?
下面还是以grub4dos的grldr作为启动文件为例,讲一下这个问题的解决办法(PXELinux的解决办法与此相类似)。
首先,PXE服务器端的grldr在启动起来后,会自动按下面的顺序在TFTP服务器端寻找菜单配置文件(并加载找到的第一个文件):
/menu.lst/00-10-22-FD-03-C1
/menu.lst/C0A80102
/menu.lst/C0A8010
/menu.lst/C0A801
/menu.lst/C0A80
/menu.lst/C0A8
/menu.lst/C0A
/menu.lst/C0
/menu.lst/C
/menu.lst/default
其中第一行:“/menu.lst/00-10-22-FD-03-C1”中的00-10-22-FD-03-C1表示无盘工作站网卡的MAC地址。
而第二行中的C0A80102表示无盘工作站的IP地址,这里的C0A80102对应的IP地址是192.168.1.2,从第二行到第九行,都是通过IP地址(段)定义菜单文件的示例。
而我们前面要解决的问题只需要使用MAC地址作为菜单文件名即可解决,大概步骤如下:
假设:
工作站A的MAC地址为:00-10-22-FD-03-AA,对应的XP磁盘映像为xp-a.dsk
工作站B的MAC地址为:00-10-22-FD-03-BB,对应的XP磁盘映像为xp-b.dsk
以工作站A的MAC地址00-10-22-FD-03-AA为文件名创建以下GRUB4DOS菜单配置文件:
timeout 30
title Boot XP with Diskless Angel
map --mem (pd)/xp-a.dsk (hd0)
map --hook
root (hd0,0)
chainloader (hd0,0)/ntldr
title Boot XP with Diskless Angel (gunziped)
map --mem (pd)/xp-a.dsk.gz (hd0)
map --hook
root (hd0,0)
chainloader (hd0,0)/ntldr
title GRUB4DOS Command Line
commandline
title Boot From CDROM
cdrom --init
map --hook
chainloader (cd)
title Boot From Floppy
chainloader (fd0)+1
rootnoverify (fd0)
title Reboot
reboot
title Shutdown Computer
halt
类似上面,以工作站B的MAC地址00-10-22-FD-03-BB为文件名创建以下GRUB4DOS菜单配置文件:
timeout 30
title Boot XP with Diskless Angel
map --mem (pd)/xp-b.dsk (hd0)
map --hook
root (hd0,0)
chainloader (hd0,0)/ntldr
title Boot XP with Diskless Angel (gunziped)
map --mem (pd)/xp-b.dsk.gz (hd0)
map --hook
root (hd0,0)
chainloader (hd0,0)/ntldr
title GRUB4DOS Command Line
commandline
title Boot From CDROM
cdrom --init
map --hook
chainloader (cd)
title Boot From Floppy
chainloader (fd0)+1
rootnoverify (fd0)
title Reboot
reboot
title Shutdown Computer
halt
然后将两个配置文件复制到TFTP服务器的\menu.lst\目录下。
md c:\tftp\menu.lst
copy 00-10-22-FD-03-AA c:\tftp\menu.lst
copy 00-10-22-FD-03-BB c:\tftp\menu.lst
将xp-a.dsk(.gz)和xp-b.dsk(.gz)放到TFTP服务器的根目录下。
copy xp*.dsk c:\tftp
copy xp*.dsk.gz c:\tftp
这样,在A工作站从PXE启动时,GRUB4DOS会调用00-10-22-FD-03-AA作为菜单配置文件,而工作站B则以00-10-22-FD-03-BB作为菜单文件,这样我们就顺利的实现了为不同的工作站定制不同的启动映像的功能。
当然,我们也可以利用GRUB4DOS使用客户端IP地址(部分IP)作为菜单配置文件的功能,实现为某一段IP定制启动映像的功能。