首页 > 代码库 > PXE架构

PXE架构

 

 

 PXE概述

使用 Linux 预引导执行环境 (preboot execution environment, PXE) 可从网络接口而不是本地存储  引导服务器。对于 OS 安装,从基于 PXE OS 分发映像引导目标服务器就像从 DVD 引导一样,不同之处在于介质位于网络中。要使用 PXE,您需要设置必需的网络基础结构:

·        运行 Linux 且已针对 PXE 引导进行配置的 DHCP 服务器。在本部分所列的示例中,DHCP 服务器也将是 PXE 服务器。

 

·        支持 PXE 引导的 TFTP 服务器。PXE 引导映像将位于 TFTP 服务器上。在本部分所列的示例中,DHCP 服务器将用作 PXE 服务器,TFTP 作为服务在其上运行。

 

·        PXE 服务器上的 PXE 映像。在本部分所列的示例中,映像将是 Linux OS 分发安装介质,将用于在 PXE 客户机上执行远程 OS 安装。

 

·        具有支持网络引导的网络接口卡的 PXE 客户机(也称为目标系统)。该客户机将使用 PXE 映像通过网络进行引导。

- 您的 PXE 网络必须运行 IPv4 网络(IPv6 不支持 PXE 网络引导)。

 

 

1,安装DHCP服务

a--->查询是否安装DHCP

   [root@localhost ~]#  rpm -qa | grepdhcp-
    dhcp-4.1.1-38.P1.el6.centos.x86_64
     dhcp-common-4.1.1-38.P1.el6.centos.x86_64

     显示已安装,未安装的话

      #yum install httpd

 

b--->设置 DHCP 配置文件(例 /etc/dhcp/dhcpd.conf),以便只有 PXEClientPXE 客户机)可以请求接收 PXEClient 响应。

      subnet 192.168.100.0netmask 255.255.255.0 {      #要分配的IP
      range 192.168.100.81192.168.100.100;                #
分配的范围
      option routers192.168.100.1;                                  #
网关
}

 

c--->启动 DHCP 服务并且查看监听端口

     # service dhcpd start

     查看监听端口
[root@localhost ~]# ss -nul
   
UNCONN      0     0                                 *:67                               *:*   //dhcp
端口启动成功  

 

   d 将服务器配置为始终启动 DHCP 服务

       # chkconfig dhcpdon

 

 

2,配置TFTP

a--->确定 PXE 服务器上是否已安装 TFTP 服务器软件包

       # rpm -qa| grep tftp-server

       [root@localhost ~]# rpm -qa |grep tftp-server
        tftp-server-0.49-7.el6.x86_64

 如未安装

      yum install tftp-server

  

b--->编辑并保存 /etc/xinetd.d/tftp 文件。

 

service tftp
{
        disable= yes                                                          #
yes改为no,启动


       socket_type            = dgram
       protocol               = udp
       wait                   = yes
       user                   = root
        server                 = /usr/sbin/in.tftpd
       server_args            = -s /var/lib/tftpboot
       per_source             = 11
       cps                    = 100 2
       flags                  = IPv4

 

c--->重新启动 inetd 服务器

    # service xinetd restart

         查看端口
[root@localhost ~]# ss -nul
 
UNCONN      0     0                                 *:69                               *:*     /tftp
端口启动成功

 

 

3--提供PEX的工作环境

     a--->查询syslinux是否安装

      [root@localhost ~]# rpm-qa syslinux
       syslinux-4.02-8.el6.x86_64

     

 

4,提供引导内核文件

[root@node1 ~]# cp /usr/share/syslinux/pxelinux.0/var/lib/tftpboot/

[root@node1 ~]# cp/var/ftp/pub/centos-6.4-x86_64/isolinux/{boot.msg,splash.jpg,vesamenu.c32}/var/lib/tftpboot/

[root@node1 ~]# ls /var/lib/tftpboot/

boot.msg  pxelinux.0  splash.jpg vesamenu.c32

[root@node1 ~]# cp/var/ftp/pub/centos-6.4-x86_64/images/pxeboot/{vmlinuz,initrd.img}/var/lib/tftpboot/

[root@node1 ~]# ls /var/lib/tftpboot/

boot.msg  initrd.img  pxelinux.0 splash.jpg  vesamenu.c32  vmlinuz

 

 

5,提供安装源:

  a--->查询是否安装http

       [root@localhostcdrom]# rpm -qa httpd
        httpd-2.2.15-29.el6.centos.x86_64

  如果未安装的话

      yum install httpd

然后再创建 mkdir /var/www/html/centos/6/x84_64

再用 mount --bind /media/cdrom  /var/www/html/centos/6/x84_64

 

 

6提供ks.cfg文件

   # syslinux-config-kickstart 打开图形配置接口

   在图形配置下,选系统所安装的文件包,然后保存到一个路径下,一般在/目录下,

然后

    cp ks.cfg /var/www/html/centos6.cfg

 

 

7 修改default文件和centos6.cfg配置文件内容

[root@localhost cdrom]# vim/var/lib/tftpboot/pxelinux.cfg/default

 

default vesamenu.c32

#prompt 1

timeout 600

 

display boot.msg

 

menu background splash.jpg

menu title Welcome to CentOS 6.5!

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000

 

label linux

  menu label^Install or upgrade an existing system

  menu default

  kernel vmlinuz

  append initrd=initrd.img textks=http://192.168.100.10/centos6.cfg # 配置KS去哪个地方下载.cfg文件,由于本机ip192.168.100.10,所以配置为192.168.100.10

label vesa

  menu labelInstall system with ^basic video driver

  kernel vmlinuz

  appendinitrd=initrd.img xdriver=vesa nomodeset

 

[root@localhost cdrom]# vim /var/www/html/centos6.cfg

# Use network installation

url --url="http://192.168.100.10/centos6"

repo --name="CentOS"--baseurl=http://192.168.100.10/centos6/ --cost=100

# Root password

rootpw --iscrypted $1$KP6jIcos$vyZpG9W56Lwi6zrCtaPFN.

# System authorization information

auth --useshadow  --passalgo=sha512

# Use graphical install

graphical

firstboot --disable

# System keyboard

keyboard us

# System language

lang zh_CN

# SELinux configuration

selinux --enforcing

# Installation logging level

logging --level=info

 

# System timezone

timezone Asia/Shanghai

# System bootloader configuration

bootloader --location=mbr

# Partition clearing information

zerombr yes  #这个地方加上此条命令,能够自动装载

clearpart --all

# Disk partitioning information

part / --fstype="ext4" --size=1000

part /boot --fstype="ext4" --size=10000

part /home --fstype="ext4" --size=10000

part /var --fstype="ext4" --size=10000

part /tmp --fstype="ext4" --size=10000

 

 

 

 

 

 

 

 

 

 

 

 

 

wKiom1PZiqGTh6nUAAc3f5ND-_8716.pngwKioL1PZi9Gzou3NAABh66l0cf0237.png

本文出自 “Linux” 博客,请务必保留此出处http://clarence.blog.51cto.com/8161461/1533039