PXE系列之一:PXE环境搭建

原创 2009年07月18日 15:19:00

(一)原理

 

  简单说来,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选项)。

 

 (本节原理来自链接: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,我的该文件内容如下,重要的地方有注释:
    
    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,我的文件内容如下:

  
            其中:
              -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下目录组织如下:

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

 

    4.  启动。

      

(四)常见问题

    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 问题

              a. dhcpd.conf中的filename参数,用相对路径(相对于/tftpboot),有的参考资料里是绝对路径,这取决于tftp版本问题,最新的版本应该是相对路径.
(五)附录
    1. rpm包下载网站:
        http://rpm.pbone.net/
    2. 关于syslinux的配置有很多内容,感兴趣的话,可以参考以下网址:
        http://syslinux.zytor.com/wiki/index.php/PXELINUX

PXE服务器安装与配置

PXE服务器安装与配置 PXE是在没有软驱、硬盘、CD-ROM的情况下引导计算机的一种方式,也就是BIOS将使用PXE协议从网络引导。 DHCP服务器:用来动态分配IP地址(同时分配子网掩码、网关、T...
  • scottly1
  • scottly1
  • 2014年05月12日 19:56
  • 4728

Linux下搭建PXE服务器安装Linux系统

PXE服务器安装与配置 原理: PXE是在没有软驱、硬盘、CD-ROM的情况下引导计算机的一种方式,也就是BIOS将使用PXE协议从网络引导。 DHCP服务器:用来动态分配IP地址(同时分配子网掩码、...
  • scottly1
  • scottly1
  • 2014年05月16日 22:08
  • 7139

搭建PXE网络启动服务器安装CentOS7系统

一、服务器系统安装         PXE服务器使用CentOS7-x86_64位系统。最好配置上网权限,这样能够用yum方便地安装软件包。 二、安装TFTP服务         首先安装tft...
  • u011130578
  • u011130578
  • 2015年05月27日 12:48
  • 4310

Linux系统下PXE装机服务的搭建与部署(附完整命令与截图)

前言在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量。 PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络...
  • LL845876425
  • LL845876425
  • 2016年12月17日 23:49
  • 1966

PXE服务器搭建

  • 2011年11月28日 19:57
  • 105KB
  • 下载

运维之系统服务篇------ 4.批量装机环境 、 配置PXE引导 、 kickstart自动应答

FIVE DAY 知识点:复习DNS----批量装机环境-----配置PXE引导---------Kickstart自动应答 随笔录: Nameserver---基本运用前三个 镜像不是光盘 ...
  • xixihahalelehehe
  • xixihahalelehehe
  • 2017年10月27日 09:56
  • 167

Ubuntu14.04搭建PXE服务器过程

一.什么是PXE     PXE(preboot execute environment,预启动执行环境)是Intel公司开发的技术,工作于Client/Server的网络模式。它可以使计算机通过网络...
  • shuaijiasanshao
  • shuaijiasanshao
  • 2016年04月10日 09:52
  • 5372

PXE实现批量安装部署(win与linux系统)

1、PXE简介 PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,...
  • nanqing
  • nanqing
  • 2016年06月29日 17:10
  • 8752

PXE(windows远程启动)服务器配置流程

  • 2009年02月12日 08:28
  • 822KB
  • 下载

PXE启动服务器及客户端镜像制作

基于CentOS6的PXE无盘系统制作, 包含服务器端必要服务的设置开启,客户端镜像文件系统,根文件系统的制作,PXE选单的制作....
  • Beck_Chen
  • Beck_Chen
  • 2016年09月26日 17:42
  • 6192
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PXE系列之一:PXE环境搭建
举报原因:
原因补充:

(最多只允许输入30个字)