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选项)。

 

 (本节原理来自链接: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

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是在 VMware 中搭建 PXE 安装环境的详细过程: 1. 首先需要准备一个 PXE 服务器,可以使用任何一台安装了 Linux 系统的机器作为 PXE 服务器,这里以 CentOS 7 为例。 2. 在 CentOS 7 上安装并配置 TFTP 服务,TFTP 是一种简单的文件传输协议,用于传输 PXE 引导文件和系统镜像等文件。在终端输入以下命令安装 TFTP: ``` yum install tftp tftp-server -y ``` 3. 安装完成后,编辑 /etc/xinetd.d/tftp 文件,将 disable = yes 修改为 disable = no,启用 TFTP 服务: ``` vi /etc/xinetd.d/tftp ``` 修改后的配置如下: ``` service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } ``` 4. 配置 TFTP 根目录,创建 /var/lib/tftpboot 目录,并将引导文件和系统镜像等文件放入该目录下。 5. 配置 DHCP 服务器,将 PXE 引导客户端的 IP 地址和启动文件等信息通过 DHCP 协议传递给客户端。在 CentOS 7 上可以使用 DHCP 服务来实现。在终端输入以下命令安装 DHCP 服务: ``` yum install dhcp -y ``` 6. 安装完成后,编辑 /etc/dhcp/dhcpd.conf 文件,添加以下配置: ``` subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; option subnet-mask 255.255.255.0; option domain-name "example.com"; option domain-name-servers 8.8.8.8; range dynamic-bootp 192.168.0.50 192.168.0.100; default-lease-time 21600; max-lease-time 43200; next-server 192.168.0.2; filename "pxelinux.0"; } ``` 其中,192.168.0.0/24 是 DHCP 服务器所在的子网地址,192.168.0.1 是网关地址,8.8.8.8 是 DNS 服务器地址,192.168.0.2 是 PXE 服务器的 IP 地址,pxelinux.0 是启动文件名。 7. 启动 DHCP 服务: ``` systemctl start dhcpd ``` 8. 最后,启动 PXE 服务器,将引导文件和系统镜像等文件通过 TFTP 服务发送给 PXE 客户端。 以上就是在 VMware 中搭建 PXE 安装环境的详细过程,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值