PXE网络装机及kickstart无人值守自动装机技术

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最直接的表现是,在网络环境下工作站可以省去硬盘,但又不是通常所说的无盘站的概念,因为使用该技术的PC在网络方式下的运行速度要比有盘PC快3倍以上。当然使用PXE的PC也不是传统意义上的TERMINAL终端,因为使用了PXE的PC并不消耗服务器的CPU,RAM等资源,故服务器的硬件要求极低。
  • 原理

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

实验过程

实验准备

一台Linux系统虚拟机(具备yum仓库且光盘挂载好)、一台win7系统虚拟机

实验详细

  1. 安装tftpserver和dhcpserver及syslinux。
[root@linux6-1 ~]# yum install tftp-server dhcp vsftpd  syslinux -y
  1. 配置tftp服务器
[root@linux6-1 ~]# vim /etc/xinetd.d/tftp

        disable                 = no      //表示开启tftp服务

3.配置DHCP服务器

[root@linux6-1 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf      //复制DHCP配置文件的模板

[root@linux6-1 ~]# vim /etc/dhcp/dhcpd.conf      //对复制过来的配置文件进行修改

#ddns-update-style none;          //删除#表示开启DNS动态更新

next-server 192.168.100.4;      //指定tftp服务器的地址
filename "/pxelinux.0";         //引导文件在tftp上的位置

subnet 192.168.100.0 netmask 255.255.255.0 {
        range 192.168.100.150 192.168.100.200;
        option routers 192.168.100.1;
}
  1. 将光盘挂载到ftp的站点目录下
[root@linux6-1 ~]# mount /dev/sr0 /var/ftp/pub/
  1. 复制网络启动所需要的文件到tftp服务器的目录下
[root@linux6-1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/     
[root@linux6-1 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@linux6-1 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default           //安装菜单
[root@linux6-1 ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot            //Linux引导加载模块
[root@linux6-1 ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/         //压缩内核
[root@linux6-1 ~]# cp  /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot      //图形化安装菜单
  1. 启动所有服务器(记得关闭防火墙及增强性安全功能)
[root@linux6-1 ~]# service dhcpd start
正在启动 dhcpd:                                           [确定]
[root@linux6-1 ~]# service vsftpd start
为 vsftpd 启动 vsftpd:                                    [确定]
[root@linux6-1 ~]# service xinetd start
正在启动 xinetd:                                          [确定]
[root@linux6-1 ~]# chkconfig --level 35 xinetd on         //在35模式下开机自启动
[root@linux6-1 ~]# chkconfig --level 35 tftp  on        //在35模式下开机自启动    
[root@linux6-1 ~]# service iptables stop
[root@linux6-1 ~]# setenforce 0
  1. win7使用PXE启动就可以进行装机操作了

PXE网络装机及kickstart无人值守自动装机技术_第1张图片

PXE网络装机及kickstart无人值守自动装机技术_第2张图片

PXE网络装机及kickstart无人值守自动装机技术_第3张图片

PXE网络装机及kickstart无人值守自动装机技术_第4张图片

kickstart无人值守自动装机

首先安装kickstart工具

[root@linux6-1 ~]# yum install system-config-kickstart -y

在桌面环境配置kickstart并生成ks.cfg文件

PXE网络装机及kickstart无人值守自动装机技术_第5张图片

PXE网络装机及kickstart无人值守自动装机技术_第6张图片

PXE网络装机及kickstart无人值守自动装机技术_第7张图片

PXE网络装机及kickstart无人值守自动装机技术_第8张图片

PXE网络装机及kickstart无人值守自动装机技术_第9张图片

PXE网络装机及kickstart无人值守自动装机技术_第10张图片

生成ks.cfg文件后我们可以在ftp目录下创建一个新的目录,将ks.cfg文件复制到该目录下,然后修改下安装菜单(default)文件

[root@linux6-1 ~]# cd /var/ftp/
[root@linux6-1 ftp]# mkdir rhel6
[root@linux6-1 ftp]# cp /root/ks.cfg rhel6/
[root@linux6-1 ftp]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@linux6-1 pxelinux.cfg]# vim default

#prompt 1
label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append ks=ftp://192.168.100.102/rhel6/ks.cfg initrd=initrd.img

然后重新启动所有服务器,关闭防火墙及SELinux

[root@linux6-1 ~]# service dhcpd restart
[root@linux6-1 ~]# service xinetd restart
[root@linux6-1 ~]# service vsftpd restart
[root@linux6-1 ~]# service iptables stop
[root@linux6-1 ~]# setenforce 0

此时在win7系统上重新启动并且启动时按F12进入kickstart无人值守自动装机

PXE网络装机及kickstart无人值守自动装机技术_第11张图片