PXE是一种支持工作站通过网络从远端服务器下载映像的技术,工作于Client/Server的网络模式,由此通过网络启动操作系统,在启动过程中,终端会要求服务器分配ip地址,再用tftp或mtftp协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统。比如windows类,linux类等。

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

让我们来看一下通过PXE是怎样的引导安装linux操作系统的:

1.挂载光盘搭建所需要的服务器(ftp,dhcp,tftp等)

通过mkdir /mnt/cdrom建立挂载点  mount /dev/cdrom /mnt/cdrom挂载光盘

进行安装服务

通过PXE引导安装linux操作系统_pxe

 

接下来把vsftpd启动service vsftpd start并设为开机启动chkconfig vsftpd on

我们还需要对dhcp进行一些改动,在文件dhcp.conf中通过vim进行编辑

通过PXE引导安装linux操作系统_系统_02

同样启动dhcp并设置为开机启动service dhcpd start   chkconfig dhcpd on

还有tftp服务同样要进行安装

rpm -ivh /mnt/cdrom/Server/tftp-server-0.49-2.i386.rpm 

我们可以查看关于tftp的相关信息

通过PXE引导安装linux操作系统_linux_03

下面就是较为重要的步骤,编辑/etc/xinetd.d/tftp,

通过PXE引导安装linux操作系统_linux_04

接下来就要启动超级守护进程

通过PXE引导安装linux操作系统_linux_05

2.把所需要的网络引导文件,内核,驱动放到tftp的根目录下(tftpboot)

进入tftpboot目录执行以下命令拷贝到当前目录

 cp /mnt/cdrom/p_w_picpaths/pxeboot/vmlinuz ./(内核

 cp /mnt/cdrom/p_w_picpaths/pxeboot/initrd.img ./(驱动

 cp /usr/lib/syslinux/pxelinux.0 ./(引导文件)

关于引导文件必须需要一些配置文件,我们可以在当前目录下新建一个文件夹(pxelinux.cfg)来存放其的配置文件。在这里我们可以拷贝/mnt/cdrom/isolinux/isolinux.cfg到pxelinux.cfg来当配置文件

通过PXE引导安装linux操作系统_linux_06

下面就可以改变我们拷贝的文件了

通过PXE引导安装linux操作系统_系统_07

编辑default文件

通过PXE引导安装linux操作系统_系统_08

在pxe进行广播时,dhcp是通过怎样的方式告知其tftp的地址呢?那么就要继续修改dhcp的配置文件

通过PXE引导安装linux操作系统_linux_09

目前我们的服务器已经全部做好,把所剩的安装文件拷贝到ftp服务器中

通过PXE引导安装linux操作系统_系统_10

截止到现在我们已完成了大部分  任务,可有一点我们似乎忘记考虑了,假如有很多台客户机通过pxe安装linux系统,我们以上的配置足以使它们动态获得相应的ip地址,可是主机名呢?我们并没有进行设计,那就使得它们会拥有同样的名字,我们怎么来避免这个问题呢?我们可以基于它们的ip地址来命名,那么我们编辑一个小脚本使得这个设想可以实现。脚本如下:

#!/bin/bash
address=`/sbin/ifconfig  eth0 |grep -i "inet\>" |awk  '{print $2}'`
num=${address##*.}
#modify hostname
sed -i -e "/HOSTNAME/c HOSTNAME=station$num.a.com" /etc/sysconfig/network
#modify ip addreess
sed -i -e "/BOOTPROTO/c BOOTPROTO=static\nIPADDRESS=192.168.1.$num\nNETMASHK=255.255.255.0" /etc/sysconfig/network-scripts/ifcfg-eth0

3.配置缺少的ks.cfg文件以及安装kick(yum支持)

通过PXE引导安装linux操作系统_pxe_11

执行system-config-kickstart 接下来配置ks.cfg文件

通过PXE引导安装linux操作系统_系统_12

通过PXE引导安装linux操作系统_linux_13

通过PXE引导安装linux操作系统_pxe_14

 

剩下的选项可以根据自己去选择,就不一一列出了(关闭防火墙,调整分辨率,选择所需要的软件包等等)

重要的一点是

通过PXE引导安装linux操作系统_linux_15

 

通过PXE引导安装linux操作系统_pxe_16

 

在ks.cfg文件中低5行加入key --skip安装过程中跳过秘钥

4.最后一点把kf.cfg文件拷贝到/var/ftp目录下

通过PXE引导安装linux操作系统_linux_17

 

通过PXE引导安装linux操作系统_系统_18

 

接下来让我们测试安装吧

通过PXE引导安装linux操作系统_linux_19

我们可以看到已经获得了ip地址等。。。。。。。。