PXE系列之一:PXE环境搭建

Python与开源GIS

PXE系列之一:PXE环境搭建

2015-01-30 作者: giser 浏览: 1759 次

摘要: (一)原理 简单说来,PXE服务器就是DHCP服务器+TFTP服务器。网络启动过程大概是这样的(可能并不严谨):客户端发送动态获得IP地址的广播包到网络上,DHCP服务器在收到该广播包后,发送给客户端分配IP地址的回应包,客户端收到回应包后设置自己的IP地址,...

(一)原理

简单说来,PXE服务器就是DHCP服务器+TFTP服务器。网络启动过程大概是这样的(可能并不严谨):客户端发送动态获得IP地址的广播包到网络上,DHCP服务器在收到该广播包后,发送给客户端分配IP地址的回应包,客户端收到回应包后设置自己的IP地址,然后从DHCP服务器获得启动服务器的IP地址(DHCP服务器066选项,这就是TFTP服务器的IP地址)及启动文件名(DHCP服务器067选项,这里的启动文件名就是pxelinux.0或者支持pxe的gru b4dos的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选项)。

(本节原理来自链接:http://blog.chinaunix.net/u3/94683/showart_1926188.html)

(二)实验环境

局域网环境:一个IBM刀片机,建设VMware Infrastructure,虚拟一个局域网,里面新建多台虚拟机 服务器:以其中一台172.16.2.96作服务器(dhcp和tftp服务都在它上面), 操作系统是CentOS 5.3

(三)过程

大致流程:

a. 客户端通过网卡的 PXE 功能,从 DHCP 服务器获取 IP 地址;

b. DHCP 服务器将 "filename "pxelinux.0";" 参数中指定的文件(pxelinux.0)推送给客户端;

c. 客户端执行 pxelinux.0;

d.pxelinux.0 程序读取 tftp 服务器上的配置文件(通常是 '''/tftpboot/pxelinux.cfg/default''',但是也可以根据客户端机器的MAC 地址单独指定);

e. 客户端执行配置文件中指定的动作。

(流程转自网络:http://code.google.com/p/redhatsolution/wiki/RHEL_PXE_Installation_Server)

下面详细过程:

1. DHCP服务器

a.先检查系统有没有带DHCP服务器, #service dhcpd status, 如果显示"unrecognized service" 话就要安装,否则转到c.

b. 安装dhcp,如果有外网,直接:#yum install dhcpd;没有外网的话,可以去网上找个rpm包来手动安装(附录有推荐网站),我下了个dhcp-3.0.5-18.el5.rpm, 安装命令:

#rpm -ivh dhcp-3.0.5-18.el5.rpm

c. 配置---配置服务开机自动运行级别:

chkconfig --level 345 dhcpd on

配置/etc/dhcpd.conf,我的该文件内容如下,重要的地方有注释:

+ expand sourceview plaincopy to
clipboardprint? 

2. tftp服务器

a. 先检查系统是否安装tftp server.

rpm -qa | grep xinetd,

rpm -qa | grep tftp,

如果没有某个包没有,则转到b安装之,否则转到c.

b. 安装xinetd(运行tftp所必须的), tftp-server,建议同时安装tftp客户端(方便调试tftp服务器);如果有外网,直接:

yum install xinetd tftp-server tftp

没有外网的话,可以去网上找这三个rpm包来手动安装(附录有推荐网站) 找到后,按顺序用rpm -ivh安装。

c. 配置---配置服务开机自动运行级别:

chkconfig --level 345 xinetd on

chkconfig --level 345 tftp on

修改文件: /etc/xinetd.d/tftp,我的文件内容如下:

 + expand sourceview plaincopy to clipboardprint?

其中:

  • -v 指定把日志输出到/var/log/messages中,
  • -m /tftpboot/rules指定一个映射规则文件,把所有的tftp请求文件名按规则转换;当tftp服务器为linux,无盘站引导windows时,由于大小写敏感问题,需要转换。
  • -s 指定tftp服务器的根目录,上面pxelinux/pxelinux.0的相对路径就是相对/tftpboot而言

3. syslinux(这个东西有pxe过程所要用到的引导文件,类似于grub的功能)

a. 可以先检查有没有装这个东西

rpm -qa |grep syslinux

如果没有转b,否则直接到c.

b. 安装同上面,或者yum install syslinux,或者下载rpm包手动安装

c. 配置:主要有三步: 其一、把pxelinux.0复制到/tftpboot的合适位置;其二、在/tftpboot下新建一个pxelinux.cfg目录;其三、在上面新建的pxelinux.cfg下面新建一个名为default的空文件(下一篇介绍其内容)

我的/tftpboot下目录组织如下:

+ expand sourceview plaincopy to clipboardprint?

这里/tftpboot/下的目录可以自行组织,但pxeliux.0与pxelinux.cfg应在同一目录下

4. 启动。

view plaincopy to clipboardprint? 

service dhcpd start

service xinetd start

(四)常见问题

1. tftp server问题

a.配置好tftp-server后,最好再装个tftp客户端(yum install tftp),分别从本地,别的机子上来测试tftp-server是否是通的。

b. 如果是手动用rpm包安装的,则要注意这两个包是否是兼容的,有的xinetd不支持tftp中的某些选项,同理,也要注意tftp-server的版本是否支持remap等功能

c. 使用好日志,需要-v选项,日志在/var/log/messages里

d. 如果从外面连不上本机的tftp服务,应该检查防火墙(一般情况开放upd 69端口,除非你另行设定tftp服务端口)

2. dhcp 问题

dhcpd.conf中的filename参数,用相对路径(相对于/tftpboot),有的参考资料里是绝对路径,这取决于tftp版本问题,最新的版本应该是相对路径.

(五)附录

1.rpm包下载网站:

http://rpm.pbone.net/

2. 关于syslinux的配置有很多内容,感兴趣的话,可以参考以下网址:

http://syslinux.zytor.com/wiki/index.php/PXELINUX

关注“开源集思”公众号
获取免费资源

随机推荐


Copyright © 2014-2019 OSGeo中国中心 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org