PXE(preboot execute environment,预启动执行环境)

PXE是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTPtrivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

PXE可以引导多种操作系统

Windows95/98/2000/windows2003/windows2008/win7/win8,linux等。


PXE引导安装的过程大致分为四个步骤:

一.DHCP服务器搭建及配置

1.安装DHCP服务器;

2.编辑配置文件dhcpd.conf ,在配置文件内加入tftpserver的地址,并指明pxelinux.cfg(pxe的配置文件)tftpserver下的目录。


二.TFTP服务器的搭建及配置

1.安装TFTP服务器;

2.修改/etc/xinetd.tftp;把服务改为唤醒状态。

3.把光盘下的p_w_picpaths/pxeboot/下的initrd.img(驱动镜像)vmlinux(内核)文件拷贝到tftpserver的根目录/var/lib/tftpboot下;

/usr/share/syslinux/目录下的pxelinux.0(驱动文件)拷贝到tftpserver的根目录/var/lib/tftpboot下;

4./var/lib/tftpboot建一个pxe驱动的配置文件目录pxelinux.cfg,把光盘下的isolinux.cfg文件拷贝到该目录下并改名为default,然后进行编辑。

设置default linux;把默认情况设为linux标签;

linux标签下修改:ks.cfg=ftp://服务器ip/ks.cfg目录/ks.cfg


三.FTP服务器搭建

1.安装ftp服务器;

2.拷贝光盘下的文件到ftp服务器的对应目录。

3.

四.运行system-config-kickstart 生成ks.cfg(引导文件)

为了能让服务器分配的ip地址和主机名不冲突且客户机都为静态ip,则要编写post-scripts(后安装脚本)。


具体步骤:

.准备工作:

1.只启用光盘下CentOS-Media.repo ,把另外的有关互联网的文件屏蔽掉:

[root@centos ~]# cd /etc/yum.repos.d/

[root@centos yum.repos.d]# mkdir abc

[root@centos yum.repos.d]# mv * abc/

[root@centos abc]# mv CentOS-Media.repo ../

2.挂载光盘:

[root@centos ~]# mount /dev/cdrom /media/cdrom/

3.CentOS-Media.repo 仓库开启:

[root@centos yum.repos.d]# vim CentOS-Media.repo 做下面修改:

enabled=1


2.安装服务:

[root@centos ~]# yum  install vsftpd

[root@centos ~]# yum  install dhcp tftp-server


.服务器配置

1.DHCP服务器配置:

1.[root@centos ~]# vim /etc/dhcp/dhcpd.conf编辑配置文件;

把不必要的东西全部删除,只留一个作用域即可:

30 subnet 192.168.2.0 netmask 255.255.255.0 {

31 range 192.168.2.100     192.168.2.200;分配地址范围;

32 next-server 192.168.2.101;指明tftpserver

33 filename  "pxelinux.0";驱动文件;

34 }

2.开启服务:

[root@centos dhcp]# service dhcpd start

[root@centos dhcp]# chkconfig dhcpd on


2.TFTP服务器配置:

1.tftp-server是依赖于超级守护进程的,修改文件:

[root@centos ~]# vim /etc/xinetd.d/tftp

改为唤醒;

disable                 = no

重启超级守护进程;

[root@centos ~]# service xinetd restart


2.别人通过tftp访问服务器时的访问目录为/var/lib/tftpboot,我们要到光盘上拷贝必要的pxe引导安装所需的必要文件。

/media/cdrom/p_w_picpaths/pxeboot下的initrd.img 为驱动文件; vmlinuz 为内核;这两个文件时pxe引导安装时必需的文件,将他们拷贝到/var/lib/tftpboot目录下。

[root@centos pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/


3.要想使用pxe引导安装,就要有pxe的驱动文件,这个文件在syslinux里。

进入/usr/share/syslinux目录,拷贝 pxelinux.0 文件:

[root@centos syslinux]# cp pxelinux.0 /var/lib/tftpboot/


如果没syslinux的话,先安装:

[root@centos ~]# yum install syslinux

再进行拷贝。


4.Pxe的驱动也要有配置文件,而它的配置文件默认目录为pxelinux.cfg

tftpboot下创建目录,并拷贝界面提示文件并另命名为default保存:

[root@centos tftpboot]# mkdir pxelinux.cfg

[root@centos pxelinux.cfg]# cp /media/cdrom/isolinux/isolinux.cfg ./default


编辑default文件,做如下修改:

1.default 后的内容改为linux标签:



 1 default linux

 2 prompt 1

 3 timeout 6

2.加入ks.cfg的所在位置:

 22   append initrd=initrd.img   ks=ftp://192.168.2.101/ks.cfg


5.开启tftp服务,并设为开机自起:

[root@centos ftp]# service vsftpd start

[root@centos ftp]# chkconfig vsftpd on


3..FTP服务器配置:

为了能让别人通过ftp访问服务器并下载东西,我们要把安装的东西拷到/var/ftp/的目录下。

[root@centos ~]# cd /var/ftp/

[root@centos ftp]# cp -r /media/cdrom/. ./ 这个过程的时间有点长,耐心等待一下


4.ks.cfg文件生成

1.安装kickstart

[root@centos ~]# yum install system-config-kickstart


2.编写脚本,这是一个后安装脚本,用于安装操作系统后给客户机分配ip地址和主机名。

[root@centos ~]# vim test.sh  

内容如下:

#!/bin/bash

IPSTRING=`ifconfig eth0 |grep '\<inet\>' |awk '{print $2 }'`

IPADDR1=${IPSTRING##*.}

echo $IPADDR1

sed -i "s/HOSTNAME.*/HOSTNAME=station$IPADDR1.a.com/" /etc/sysconfig/network

sed -i 's/BOOTPROTO.*/BOOTPROTO=static/' /etc/sysconfig/network-scripts/ifcfg-eth0

echo "IPADDR=192.168.2.$IPADDR1"

>> /etc/sysconfig/network-scripts/ifcfg-eth0

echo "NETMASK=255.255.255.0" >> /etc/sysconfig/network-scripts/ifcfg-eth0



3.运行system-config-kickstart,生成ks.cfg文件:

第一步:

wKioL1LfYFTDBhreAAO9e-Ozbb0380.jpg

wKiom1LfYHmR4AEcAAJHNKy3ppg216.jpg

wKioL1LfYFfDnphDAAJb4SCwL-k269.jpg

创建MBR,512M

wKiom1LfYHzxWLqbAAQEPzZazrs609.jpg

创建根分区,20G;

wKiom1LfYHXzGmZeAAMRuBIIaco452.jpg

网卡为eth0并且动态获取地址;

wKioL1LfYIvimEJhAAKlFHV6OCk596.jpg

关闭防火墙和selinux;

wKiom1LfYK-SC5XyAAH2FxPnUuQ180.jpg

选择安装包;选择基本的系统和开发工具;

wKioL1LfYI6gqrHnAALyZxxGWeA672.jpg

wKiom1LfYLPhB_RgAALWR1WPH0Y729.jpg

添加后安装脚本来分配ip地址和主机名;选择命令解释器为/bin/bash;把前面编辑的分配ip和主机名的脚本复制到脚本文件内,最后保存到根目录下为ks.cfg

wKioL1LfYJLjLCAkAALjegXr_MY073.jpg


4.ks.cfg文件放到ftp服务器的根下以便于客户机直接访问下载;

[root@centos ~]# cp ks.cfg /var/ftp/


5.所有服务完成后,重启pxe引导安装的服务:

[root@centos ~]# service vsftpd restart

[root@centos ~]# service dhcpd restart

[root@centos ~]# service xinetd restart


6.使用客户机测试安装(虚拟机测试):

新建虚拟机,在不使用引导光盘下启动,(要保证客户机与服务器的连通性,改为host-only模式)客户机会自动获得ip地址,并到tftp服务器下载内核和驱动镜像,最后到ftp下载引导安装。