PXE简绍

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系统等。

 

PXE启动原理

当计算机引导时,BIOS把 PXE Client调入内存中执行,然后由PXE Client将放置在远端的文件通过网络下载到本地运行。

 

若要搭建 PXE网络体系,必须要满足以下条件:

  • 客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导
  • 网络中有一台 DHCP 服务器,以便为客户机分配地址、指定引导文件位置服务器通过 TFTP(Trivial File Transfer Protocol)简单文件传输协议提供引导镜像文件的下载。 
    image_1cqs2v6o1uu11ss3ok1t5fhu49.png-51.7kB
 

工作过程

工作站开机后, PXE BootROM(自启动芯片) 获得控制权之前先做自我测试,然后 以广播形式发出一个请求 FIND 帧。 如果服务器收到工作站所送出的要求, 就会送回 DHCP 回应, 内容包括用户端的 IP 地址, 预设通讯通道, 及开机映像文件。否则,服务器会忽略这个要求。工作站收到服务器发回的响应后则会回应一个帧,以请求传送启动所需文件。 之后,将有更多的讯息在工作站与服务器之间作应答, 用以决定启动参数。 BootROM 由 TFTP通讯协议从服务器下载开机映像档, 这个映像档就是软盘的映象文件。 工作站使用 TFTP 协 
议接收启动文件后,将控制权转交启动块,引导操作系统,完成远程启动

 

搭建6系统的PXE远程安装服务器

PXE用桌面模式,配置DHCP,配置TFTP 
- 准备CentOS6安装源 
使用FTP服务,将安装源放至/var/ftp/centos6/目录下

 
  1. [root@localhost yum.repos.d]# mount /dev/sr0 /media/cdrom/
  2. mount: block device /dev/sr0 is write-protected, mounting read-only
  3. [root@localhost yum.repos.d]# cd ~
  4. [root@localhost ~]# mkdir -p /var/ftp/centos6
  5. [root@localhost ~]# cd /var/ftp/centos6/
  6. [root@localhost centos6]# cp -rp /media/cdrom/* . //将光盘源放入/var/ftp/centos6 中。不懂的研究FTP

image_1cqs51e432b11i0d1j4n1c2ol4713.png-15.2kB

  • 安装并启用TFTP服务
 
  1. [root@localhost centos6]# yum -y install tftp-server
  2. [root@localhost centos6]# vim /etc/xinetd.d/tftp

image_1cqs5kdtt1tf11742lffse11fki1g.png-33.2kB

 

  1. root@localhost centos6]# /etc/init.d/xinetd start //启动服务
  2. 正在启动 xinetd [确定]
  3. [root@localhost centos6]# chkconfig tftp on //开机自启动
  • 准备Linux内核,初始化镜像文件 
    image_1cqs62h401e8va761ae224s12ds1t.png-17.7kB

image_1cqs6buu9ncuvdvmuiia217su2a.png-20.5kB

    1. 准备PXE引导程序,启动菜单文件

 

  1. [root@localhost isolinux]# yum -y install syslinux
  2. [root@localhost isolinux]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
  3. [root@localhost isolinux]# ls /var/lib/tftpboot/
  4. initrd.img pxelinux.0 vmlinuz
  5. [root@localhost isolinux]# cp /var/ftp/centos6/isolinux/isolinux.cfg /var/lib/tftpboot/
  6. [root@localhost isolinux]# ls /var/lib/tftpboot/
  7. initrd.img isolinux.cfg pxelinux.0 vmlinuz
  8. [root@localhost isolinux]# chmod 644 /var/lib/tftpboot/isolinux.cfg
  9. [root@localhost isolinux]# cd /var/lib/tftpboot/
  10. [root@localhost tftpboot]# vim isolinux.cfg //内核启动文件

image_1cqs7c0c51u4912l610h1n611h5q2n.png-67kB

image_1cqs7lqlvg4316aoivt1vn5vtr34.png-56.7kB

  • 安装并启动DHCP服务
 
  1. [root@localhost tftpboot]# yum -y install dhcp
  2. [root@localhost tftpboot]# cd /etc/dhcp/
  3. [root@localhost dhcp]# ls
  4. dhclient.d dhcpd6.conf dhcpd.conf
  5. [root@localhost dhcp]# vim dhcpd.conf
  6. [root@localhost dhcp]# cp /usr/share/doc/dhcp*/dhcpd.conf.sample .
  7. [root@localhost dhcp]# ls
  8. dhclient.d dhcpd6.conf dhcpd.conf dhcpd.conf.sample
  9. [root@localhost dhcp]# cat dhcpd.conf.sample > dhcpd.conf
  10. [root@localhost dhcp]# vim dhcpd.conf

image_1cqscf9gr1q3amug14qg130g1dr74e.png-89.5kB

image_1cqscj0ms17d911oirf2q91p0u4r.png-7.8kB

 

image_1cqsckpnn12cbv0f13i9erusdn58.png-11.2kB

  • 安装ftp
 
  1. [root@localhost dhcp]# yum -y install vsftpd
  2. [root@localhost dhcp]# /etc/init.d/vsftpd start
  3. vsftpd 启动 vsftpd [确定]

我用的是NAT模式所以必须关了NAT否则DHCP没用 
客户端安装ftp就可以,然后试一下可不可以链接 
image_1cqshrss47o2kmu17ip1fbnp8v5l.png-30.7kB

image_1cqsi1e9d18fpao1k2v1ict3pn62.png-52.3kB

 

  • 新建虚拟机进行试验 
    新建一个空机器 
    image_1cqsibscg1an18sok6010lo1ltk6f.png-49.6kB

image_1cqsif63910np1muj148vm1q1r6o6s.png-43.6kB

 

image_1cqsiipr518h310631kj4a6ic0u79.png-100.5kB

image_1cqsipd7vaq016nl17pc15s81fl793.png-42.4kB

 

image_1cqsivsmc170118ii174lcle11eo9g.png-30.2kB

image_1cqsj1r3kov3dhg1ik812u6qmb9t.png-17.3kB

 

image_1cqsj3cja1rs21qp115k01qtf13o6aa.png-16.8kB

image_1cqsj9naa1qbf1svpsd31rsmn15b7.png-17.6kB

image_1cqsjag6n1pcp1siqv712am1qogbk.png-11.9kB

 

然后就OK,就和正常装机一样了 
image_1cqsjdb1kvfi13e11kcj1b4m1b4ac1.png-210.7kB

 

实现 kickstart

 

  • 创建应答文件
 
  1. [root@localhost ~]# yum -y install system-config-kickstart

image_1cqsjsgop1cvf1bfei1i1oamqmfce.png-277.9kB

image_1cqsk31g9h68g8l1hvh9v3r4bcr.png-46.5kB

image_1cqsk6plh1nid1v7o1h6jfdis7d8.png-26.5kB

image_1cqskb5pfdonalo1ehnnugfkre2.png-65.8kB

image_1cqska1hk196ddop1c0lthd131ldl.png-80.6kB

image_1cqskdfle1f881ocg1hie3g0ekfev.png-47.2kB

image_1cqski8d3ud47kr1agg1gdoi7g9.png-44.9kB

 

image_1cqskjts3147471m2ohrogoiogm.png-38kB

image_1cqsklqt31mvl1kam1uf4dvs10blh3.png-42.4kB

image_1cqsknk40n6en8h1f6l1gcdcnnhg.png-46.4kB

image_1cqskostv1j6sngc1qc3124nep0ht.png-31.3kB

image_1cqsksm3cobf12lq1m97papp3aia.png-46.8kB

image_1cqsl3uj54rt1f0nptc1ht61426in.png-43.9kB

image_1cqsl5q2h477195p1a4i120dcfmj4.png-47.8kB

image_1cqsl6vhnhen1o2323e1s7m5jjjh.png-17.7kB

  • 修改配置

    image_1cqsld6qi1tar1mop115chhf9liju.png-15kB

    image_1cqslela1an61401u58dhs1lnpkb.png-5.8kB

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

    image_1cqslmv261iutq851v59afg1ql2ko.png-74.6kB

  • 这就是自动装机,不过有一个地方会卡一下,现在我们解决

    1. [root@localhost ~]# vim /var/ftp/ks.cfg

    image_1cqsm3bb3hik14ek1umu1rff8h4l5.png-21.4kB 
    最好重启下服务再实验