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/win7/win8,linux等
启动过程:
-----------------------------摘自百度
实验环境:架设 HTTP/FTP/NFS TFTP DHCP服务器 CentOS-6.5-i386
实验步骤:
setup1)先来解决yum的问题。把与互联网相关的yum禁掉。只打开本地yum。
setup2)挂载光驱。
setup3)挂载后需要安装vsftpd,以及dhcp、tftp-server,得先把我们的实验环境架设好,才能保证实验顺利完成。
指令:yum install dhcp tftp-sever -y yum install vsftpd
安装完成后需要编辑/etc/dhcp/dhcpd.conf文件。按照文件的说明,将/usr/share/doc/dhcp*/dhcpd.conf.sample文件读取进来。再进行编辑。
用不到的选项一定要删除。我这里是将32行往后的内容全部删除了。只保留了一个作用域。
那些用不到的DNS服务器以及域名设置的选项也一并删除了吧,省得对实验有影响了。修改完成后启动服务。
setup4)接下来操作ftp服务器的配置。将光盘上的全部文件拷贝到/var/ftp/目录下。进入/var/ftp目录下,执行指令:cp -r /media/cdrom/. ./ -------当前目录
拷贝完成后记得启动服务,并执行 chkconfig vsftpd on --------开机启动
OK ftp服务也已经配置完毕。
setup5)使用rpm -ql tftp-server指令查看tftp的配置文件目录以及根目录。
修改xinetd配置文件。
修改完成后需要重启超级守护进程。因为这个服务是依赖超级守护进程的。
setup6)进入tftp的根目录,目前这个目录是空的。现在就来拷贝引导所必须的文件吧。切换到光盘上,拷贝需要的文件。已经在下面标注出来了。
setup7)这两个文件拷贝完了后我们还缺少一个小工具,即pxe的驱动。这个驱动可能你的机子上没有安装,安装一下就行了。先查看系统中是否安装syslinux。我的主机上就没有安装,那就只好安装一下喽。
安装完成 后进入安装目录。查看有没有pxe要用的驱动。把它拷贝到/var/lib/tftpboot目录下。
setup8)PXE需要自己的一个配置文件,那就建立一个默认的目录,专门放置PXE的配置文件。切换到这个目录,再来拷贝一个文件。
mkdir pxelinux.cfg
执行指令cp /media/cdrom/isolinux/isolinux.cfg ./default -------拷贝后的文件名
拷贝完后修改default文件。我这儿就只粘出要修改的地方以及修改后的结果。
setup9)这些做完后就只用再安装kickstart并做相应的配置就o了。
yum install system-config-kickstart
关于kickstart后安装脚本,要配置一些什么呢?我这儿以修改主机名为例。主机名如果不做设置的话可能安装完成后每台主机的名字都一样了,大家也不希望自己的名字跟人家重名吧?都是想要自己的个性的。那主机当然也想还有自己的个性的名字了。那这个名字怎么设置呢?这里就要用到字符串的截取了。我以网卡通过DHCP获得的IP地址的最后一个字节位为主机名。
截取方法:
IPSTRING=`ifconfig eth0 |grep '\<inet\>'|awk '{print $2}'`
QQ=${IPSTRING##*.}---对结果进行截取,并赋值给QQ这个变量。
sed -i "s/HOSTNAME.*/HOSTNAME=inferr$QQ.a.com/" /etc/sysconfig/network---将结果追加到配置文件中。
IPSTRING为变量,就是将后面得到的结果赋值给IPSTRING这个变量,IPSTRING是获得主机IP地址的,然后再对IP地址进行截取。因为我只要最后一个字节位的。思路清晰之后就该编写脚本了,新建一个文件,编写脚本。
脚本内容粘给大家:
#!/bin/bash
IPSTRING=`ifconfig eth0 |grep '\<inet\>'|awk '{print $2}'`
QQ=${IPSTRING##*.}
sed -i "s/HOSTNAME.*/HOSTNAME=inferr$QQ.a.com/" /etc/sysconfig/network
sed -i 's/BOOTPROTO.*/BOOTPROTO=static/' /etc/sysconfig/network-scripts/ifcfg-eth0
echo "IPADDR=192.168.2.$QQ">>/etc/sysconfig/network-scripts/ifcfg-eth0
echo "NETMASK=255.255.255.0">>/etc/sysconfig/network-scripts/ifcfg-eth0
接下来该生成ks.cfg文件了。执行system-config-kickstart
弹出配置界面,前面的几步我都不再这里赘述了,详细的配置大家请看《CentOS自动安装》
在这儿只对最后的关键地方做说明。就是后安装脚本。
配置好后保存。把刚刚配置好的ks.cfg拷贝到/var/ftp目录下。
setup10)做完这些工作后,把我们安装好的服务统统重启一下,最后别忘了关闭防火墙功能以及Selinux,这些小细节忘了的话也会影响实验的。最后就快来测试吧。新建一个虚拟机,这次不引导光盘选择自动,一切让它自己来完成。好好享受下面奇迹的时刻吧
一切OK,所有的默认配置都是我们所设置好的,跟预期一样。这就是PXE自动安装啦,自动引导安装是不是很让你省事呢!