PXE(预启动执行环境)是RPL的升级品。它们的不同之处在于RPL是静态路由,而PXE是动态路由。其通信协议采用TCP/IP,与Internet连接高效而可靠。PXE最直接的表现是,在网络环境下工作站可以省去硬盘,但又不是通常所说的无盘站的概念,因为使用该技术的PC在网络方式下的运行速度要比有盘PC快3倍以上。当然使用PXE的PC也不是传统意义上的Terminal终端,因为使用了PXE的PC并不消耗服务器的CPU、RAM等资源,故服务器的硬件要求极低。简单说来,PXE服务器就是DHCP服务器+TFTP服务器。
主要是三个服务配置:dhcpd(客户机网络配置)、tftp(系统启动文件)、nfs(系统安装文件)
1.服务器虚拟机的网络用dhcp自动分发就行
#ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:67:DC:25
inet addr:192.168.217.132 Bcast:192.168.217.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe67:dc25/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:137165 errors:0 dropped:0 overruns:0 frame:0
TX packets:93461 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:158195379 (150.8 MiB) TX bytes:7644725 (7.2 MiB)
#ping www.baidu.com
看是否可以ping通
2.服务器安全机制(iptable、selinux)
service iptables stop
setenforce 0 (临时)
3.dhcp安装与配置
#yum install dhcp -y
配置文件修改
#vim /etc/dhcp/dhcpd.conf
#表示dhcp服务器和dns服务器的动态信息更新模式。这行必须要有dhcp服务器才能启动以来。
ddns-update-style interim;
#忽略客户端更新
ignore client-updates;
#定义能够PXE启动
allow booting;
#定义支持bootp
allow bootp;
#定义名为pxeclients的类
class "pxeclients"{
#匹配客户机发送来的请求含有字符串0-9共10个字符是PXEClient才响应请求
match if substring(option vendor-class-identifier,0,9) = "PXEClient";
#载启动文档的文件名
filename "RHEL6.4/pxelinux.0";
#TFTP Server的IP地址
next-server 192.168.217.132;
}
subnet 192.168.217.0 netmask 255.255.255.0 {
#设置默认路由为192.168.217.1
option routers 192.168.217.1;
#子网掩码
option subnet-mask 255.255.255.0;
#设定与格林威治时间的偏移值
option time-offset -18000; # Eastern Standard Time
#可分配IP范围
range dynamic-bootp 192.168.217.100 192.168.217.200;
#默认租约
default-lease-time 216000;
#最大租约
max-lease-time 432000;
}
#service dhcpd start
#chkconfig dhcpd on
4.tftp安装于配置
TFTP是用来下载远程文件的最简单网络协议
#yum install tftp-server -y
修改tftp服务器的配置, 将disable= yes改为disable=no(开启tftp服务)
tftp服务器的根目录为/var/lib/tftpboot,安装时会自动创建
#vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no (修改)
per_source = 11
cps = 100 2
flags = IPv4
}
Tftp服务是不需要单独启动的,是作为xinetd服务的一个附属对象连带启动。
#service xinetd start
#chkconfig xinetd on
#netstat -a | grep tftp
显示结果为
udp 0 0 *:tftp *:*
表明服务已经开启,就表明tftp配置成功了。
5.安装配置nfs
#yum install nfs-utils -y
#vim /etc/exports
/myiso 192.168.217.0/24(rw,wdelay,crossmnt,insecure,root_squash,no_subtree_check,fsid=0)
对于NFSv4的,有一个杰出的文件系统,这是所有输出文件系统的根目录。这是指定的与FSID = root或FSID = 0这两个意思完全一样的东西。
fsid=0的字段,配置多个ip时候失败,单个的时候客户端就可以挂载成功
#exportfs -a (全部挂载(或卸载)/etc/exports文件内的设定,检测)
# service rpcidmapd start
# service nfs restart
#service nfs start
#chkconfig nfs on
6.在/var/lib/tftpboot目录中配置PXE启动需要的文件:
1)路径与dhcp配置中一致
mkdir -p /var/lib/tftpboot/RHEL6.4/pxelinux.cfg
2)把安装光盘isolinux/isolinux.cfg复制并重命名为/var/lib/tftpboot/RHEL6.4/pxelinux.cfg/default(find / -name isolinux 里面放的是启动菜单)
3)下载http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.10.tar.gz(或者直接yum安装 yum install -y syslinux), 解压,将syslinux-5.10/目录下面的几个文件复制到/var/lib/tftpboot/RHEL6.4目录下
Tips:syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。
syslinux-5.10/bios/core/pxelinux.0 (legcay(网络启动方式)启动,它是legcay的启动镜像)
syslinux-5.10/com32/elflink/ldlinux/ldlinux.c32
syslinux-5.10/com32/lib/libcom32.c32
syslinux-5.10/com32/libutil/libutil.c32
syslinux-5.10/com32/menu/vesamenu.c32 (BIOS引导菜单工具)
4) 从安装光盘复制文件到/var/lib/tftpboot/目录
#cd /media/RHEL_6.4\ x86_64\ Disc\ 1/isolinux
# cp initrd.img /var/lib/tftpboot/RHEL6.4/ (一个初始化文件,一个最小的系统镜像 )
# cp vmlinuz /var/lib/tftpboot/RHEL6.4/ (内核文件)
# cp splash.jpg /var/lib/tftpboot/RHEL6.4/ (安装时的背景图,不复制这个文件也可以,不过背景是黑的)
7.拷贝安装需要的镜像文件
#cd ..
#cp -pr images/ /myiso/
#包安装要的redhat6.4 iso镜像拷贝到 /myiso
8.在空的虚拟机上安装 RHEL 6.4 操作系统
若出现PXE-E32:TFTP open timeout
则检测a.服务器网络是否通,
b.第2步有没有做(selinux和iptable),
c.在/var/lib/tftpboot里创建的文件名是否一致
在选择语言之后,出现如下界面,选择NFS文件安装
这一步前会进行网卡的启动
要等待一会出现如下界面,之后的配置就是普通安装过程