首先介绍一下PXE(也可以自己百度或者wiki):
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://baike.baidu.com/link?url=eltZrlTcefJTyfmw461BU0JIvl8wNQSn48YZbWJMgSF6EcHRyRyH8WD0y2AQ2HVu
下来就来简单搭建一下这个服务吧:
需要相关的服务有 1.vsftp
2.tftp-server
3.dhcp
4.syslinux
如果大家都没有装,或者有些没有装,没关系,一步一步来.
镜像文件建议大家放在ftp服务默认的文件里(/var/ftp/pub),就类似于下面的操作:
首先是vsftp即FTP服务,下面是安装(redhat6.0以上为例)
然后就要配置ftp服务了,相关的配置,各种网站都有,在这里就不赘述了。主要是用户匿名登录权限。ftp的配置文件默认位置在/etc/vsftpd/vsftpd.conf,修改下面内容,12行(在我这里是12行)改为YES,13 行(在我这里是13行)添加local_root=/var/ftp/ 这个是FTP默认的目录,如果你的和我的不一样的话,自己改一改吧! ......[root@localhost ~]# yum install vsftpd -y
[root@localhost /]# vim /etc/vsftpd/vsftpd.conf
一般这些是不用配的,如果需要配置具体的情况,大家百度google都可以,我就不在这里赘述了。11 # Allow anonymous FTP? (Beware - allowed by default if you comment this out) . 12 anonymous_enable=YES 13 local_root=/var/ftp/ #这个是默认的ftp登录后的所在目录
下来是tftp服务,首先安装:
TFTP默认的配置文件放在/etc/xinetd.d/tftp[root@localhost ~]# yum install xinetd -y
[root@localhost ~]# yum install tftp-server -y
[root@localhost /]# vim /etc/xinetd.d/tftp
然后配置TFTP(简单文件传输协议)服务,配置信息如下:
service tftp { socket_type = dgram #tftp使用的是udp协议 protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot/ #这个是tftp的默认目录,当然你也可以修改成自己喜欢的目录 disable = no #这里要用开启,即设置成no per_source = 11 cps = 100 2 flags = IPv4 }
好了tftp就配置好了,他是简单文件协议,在开机时给目标主机传输pxe相关文件的协议
最后是DHCP服务,主要是用来给用户机器分配ip地址:
最后安装syslinux服务ddns-update-style interim; ignore client-updates; allow bootp; subnet 192.168.1.0 netmask 255.255.255.0 { #注意这里的subnet子网一定要和服务器所在的网段一致
option routers 192.168.1.1; #这里是网关的地址 option subnet-mask 255.255.255.0; #掩码 option domain-name "hello.net"; option domain-name-servers 8.8.8.8; #DNS default-lease-time 21600; max-lease-time 43200; range 192.168.1.2 192.168.1.254; #分配给客户端的网段的范围,注意最大为254 next-server 192.168.1.200; #指定TFTP服务器的地址 filename "pxelinux.0"; #指定PXE引导程序的文件名,一定写正确 }
接着是默认目录下对几个相关的文件的拷贝,在这里由于都是使用的默认目录所以相关操作就很简单了。操作如下:[root@localhost ~]# yum install syslinux -y
然后是将开机要寻找的网络引导程序文件叫做pxelinux.0(redhat和centos系列是这个名字哦,还会有叫bootstrap的,如果找不到了,大家可以用find命令进行查找,详细的方法在这里就不详述了,这个不是重点。)[root@localhost /]# mount -o loop /etc/redhat.iso /var/ftp/pub/
这条语句的意思是把iso文件挂载到ftp默认目录下
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
接着是内核文件和初始化文件的拷贝
[root@localhost ~]# cp /var/ftp/pub/isolinux/vmlinuz /var/ftp/pub/isolinux/initrd.img
/var/lib/tftpboot/
好了,文件拷贝结束,还差最后一步,在你的tftp默认目录/var/lib/tftpboot/下创建一个目录pxelinux.cfg
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
在这个目录下新建一个叫default的文件,这个是菜单文件,也就是你进行装机时候的选择菜单配置文件
[root@localhost pxelinux.cfg]# vim default
最后在这个文件里加上这几句话:
default auto #默认执行auto标签 prompt 1 #允许用户选择 timeout 30 #等待时间 #Install Linux label auto kernel vmlinuz append initrd=initrd.img #当然这里还可以设置很多相关功能的标签,这里就简化了下,如果大家有兴趣,可以加上 redhat的挽救模式标签和内存检测标签,以及如何让这个界面变得十分的绚丽,就和用光 盘安装是一样 。相关配置,有兴趣留言吧!
好了,我们的全程就这样配完了,现在让我们将这几个服务一一开启吧:
然后记得将你的防火墙关掉[root@localhost ~]# /etc/init.d/vsftpd restart
[root@localhost ~]# /etc/init.d/xinetd restart
[root@localhost ~]# /etc/init.d/dhcpd restart
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
好了,现在就可以简单完成pxe的搭建了,你可以拿小伙伴的机器进行测试了,记得开机选择网卡启动哦!~!赶快试试吧!