Bean Forum


 
Subject: 在Windows下架设PXE服务器的方法
Climbing
Newbie
Rank: 1



UID 44
Digest Posts 0
Credits 0
Posts 4
Reading Access 10
Registered 30-8-2007
Status Offline
Post at 7-9-2007 10:19  Profile | P.M. 
在Windows下架设PXE服务器的方法

要想利用无盘天使从网络上启动操作系统磁盘(或分区)映像文件,首先需要在本地网络上架设一台PXE启动服务器,下面简单介绍一下PXE服务器的启动原理、过程及架设指南。

简单说来,PXE服务器就是DHCP服务器+TFTP服务器。网络启动过程大概是这样的(可能并不严谨):客户端发送动态获得IP地址的广播包到网络上,DHCP服务器在收到该广播包后,发送给客户端分配IP地址的回应包,客户端收到回应包后设置自己的IP地址,然后从DHCP服务器获得启动服务器的IP地址(DHCP服务器066选项,这就是TFTP服务器的IP地址)及启动文件名(DHCP服务器067选项,这里的启动文件名就是pxelinux.0或者支持pxe的grub4dos的grldr,当然,也可以是startrom.n12或者使用3com Image Edit创建的pxe启动菜单文件,总之,它应该是一种由pxe启动规范规定的固定格式的可执行文件),然后客户端再联系启动服务器(TFTP服务器)获得启动文件并执行,这样基本上就完成了pxe启动过程。

在Unix或者Linux系统下,DHCP服务器和TFTP服务器一般都是分开设置的,两台服务器甚至可以在两台不同的机器上,其实Windows下的设置也是一样的,但在Windows下,我们可以通过使用HaneWin DHCP服务器软件或TFTPD32,这样使用一个软件就搞定了两台服务器(我个人推荐使用HaneWin DHCP服务器软件,但TFTPD32设置起来更简单一些,就是文件传输效率有些低),详细的设置方法请自己摸索,你只要知道,在设置PXE服务器时,要设置好DHCP和TFTP两个服务器,其中DHCP服务器要设置启动服务器名(066选项)和启动文件名(067选项)。

看完下面提供的相关文档,然后再亲自动手实践一下,你会发觉PXE服务器架设实际上很简单。

相关链接:

1. PXE服务器架设指南及PXE启动WinPE(含PE2.0)解决方案总结: http://bbs.znpc.net/viewthread.php?tid=3662

2. PXE Setup without RIS on Windows 2000 Server(英文):http://unattended.sourceforge.net/pxe-win2k.html

3. PXES HOWTO: Installing in a Microsoft only environment.:http://pxes.sourceforge.net/howtos/ms_only_environment/

4. Ubuntu PXE install via Windows: http://hugi.to/blog/archive/2006 ... install-via-windows

5. 在Red Hat Linux下架设PXE服务器(英文):http://linux.duke.edu/~cegeddin/pxe-Quick-Start.html

6. PXE服务器架设软件TFTPD32官方网站:http://tftpd32.jounin.net/

7. PXE服务器软件Hanewin dhcp官方网站:http://www.hanewin.net/

8. PXE启动管理软件PXELinux(Syslinux)官方网站:http://syslinux.zytor.com/pxe.php

9. PXE启动管理软件GRUB4DOS官方网站:

https://gna.org/projects/grub4dos/
http://sarovar.org/projects/grub4dos/
http://grub4dos.sourceforge.net/
Top
Climbing
Newbie
Rank: 1



UID 44
Digest Posts 0
Credits 0
Posts 4
Reading Access 10
Registered 30-8-2007
Status Offline
Post at 7-9-2007 11:10  Profile | P.M. 
通过PXE服务器利用“无盘天使”启动Windows XP

在按上面的指南架设好PXE服务器之后,就是如何使用“无盘天使”从PXE服务器上启动Windows XP了(启动Windows 2000/2003的方法类似)。下面是必要的准备工作及简要的步骤:

1、需要准备的文件

1) PXE服务器启动管理软件相关启动文件,这里以grub4dos为例:grldr。

http://download.gna.org/grub4dos/下载grub4dos的最新版本,例如:
http://download.gna.org/grub4dos/grub4dos-0.4.3-2007-08-27.zip

解开压缩包,提取grub4dos-0.4.3目录下的grldr文件。

如果你使用pxelinux,那么就需要从syslinux的下载包中提取pxelinux.0。

同时还要从下面的下载包中提取memdisk文件:
http://www.disklessangel.com/modules/down/wmkiso_bin.zip

syslinux中内置的memdisk存在兼容性问题,请不要使用。

2) 使用无盘天使制作的Windows XP操作系统磁盘映像文件:xp.dsk

为了提高传输速度,你可以使用gunzip对这个磁盘映像进行压缩,文件名为xp.dsk.gz。

3) grub4dos启动菜单文件: menu.lst

使用任何文本编辑器(如notepad)输入如下内容并保存为menu.lst:

timeout 30

title Boot XP with Diskless Angel
map --mem (pd)/xp.dsk (hd0)
map --hook
root (hd0,0)
chainloader (hd0,0)/ntldr

title Boot XP with Diskless Angel (gunziped)
map --mem (pd)/xp.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

2、操作步骤

假设TFTP服务器的根目录为:c:\tftp

1) 将grldr文件放在TFTP服务器的根目录,并设置DHCP服务器的启动文件名为grldr。
copy grldr c:\tftp

2) 将menu.lst重命名为default并放在TFTP服务器的根目录下的menu.lst目录中。
md c:\tftp\menu.lst
copy menu.lst c:\tftp\menu.lst\default

3) 将xp.dsk(或xp.dsk.gz)放在tftp服务器的根目录下
copy xp.dsk c:\tftp
copy xp.dsk.gz c:\tftp

4) 设置无盘工作站从pxe服务器启动并启动计算机。

5) 从grub4dos启动菜单中选择第1项或者第2项(取决于你的映像文件的格式)启动。

6) 可以看到开始从TFTP服务器上下载xp的映像文件并从中启动,现在你的XP已经是完全在内存中运行了。

[ Last edited by  Climbing at 7-9-2007 11:32 ]
Top
Climbing
Newbie
Rank: 1



UID 44
Digest Posts 0
Credits 0
Posts 4
Reading Access 10
Registered 30-8-2007
Status Offline
Post at 7-9-2007 12:12  Profile | P.M. 
通过PXE启动为无盘工作站定制的XP映像

通过前面两篇文章,我们已经了解了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定制启动映像的功能。
Top
chenall
Newbie
Rank: 1



UID 43
Digest Posts 0
Credits 0
Posts 6
Reading Access 10
Registered 23-8-2007
Status Offline
Post at 8-9-2007 11:30  Profile | P.M. 
支持一下,可惜我的电脑不能测试启动XP,只能测试PE环境,因为内存太小了.
Top
Climbing
Newbie
Rank: 1



UID 44
Digest Posts 0
Credits 0
Posts 4
Reading Access 10
Registered 30-8-2007
Status Offline
Post at 11-9-2007 08:31  Profile | P.M. 
用windrv兄的话说,现在内存这么便宜,4G内存也就才1000元。
Top
chenall
Newbie
Rank: 1



UID 43
Digest Posts 0
Credits 0
Posts 6
Reading Access 10
Registered 23-8-2007
Status Offline
Post at 12-9-2007 21:19  Profile | P.M. 
公司的电脑,845主板+512DDR1内存。在我们这里就我用的这一台配置算好的了,其它的才128或256MB


等下次要配新电脑再搞一台好的。
Top
gs921302
Newbie
Rank: 1



UID 413
Digest Posts 0
Credits 0
Posts 9
Reading Access 10
Registered 5-1-2008
Status Offline
Post at 5-1-2008 17:43  Profile | P.M. 
我的pxe启动不了

我按照这里的方法,不能启动呀.提示grub>
Top
windrv
Administrator
Rank: 9Rank: 9Rank: 9



UID 3
Digest Posts 16
Credits 480
Posts 307
Reading Access 200
Registered 19-3-2007
Status Offline
Post at 7-1-2008 08:31  Profile | Blog | P.M. 
说详细一点有关细节。
Top
trfgde
Newbie
Rank: 1



UID 452
Digest Posts 0
Credits 0
Posts 1
Reading Access 10
Registered 2-4-2008
Status Offline
Post at 4-4-2008 11:01  Profile | P.M. 
就是提示grub>,没其它的,如果你成功的话为什么不整个文件发过来的啊,为什么只发menu.lst文件,有用么
Top
c945124
Newbie
Rank: 1



UID 547
Digest Posts 0
Credits 0
Posts 1
Reading Access 10
Registered 6-6-2008
Status Offline
Post at 7-6-2008 01:12  Profile | P.M. 
我倒是传送成功了,可我内存1G,镜像1G多,怎么用啊,唉
Top
 


All times are GMT+8, the time now is 14-12-2018 17:05
粤ICP备07020672号

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0 Licensed  © 2001-2006 Comsenz Inc.
Processed in 0.032072 second(s), 6 queries

Clear Cookies - Contact Us - Bean Forum - Archiver - WAP