PXE服务器安装与配置
PXE是在没有软驱、硬盘、CD-ROM的情况下引导计算机的一种方式,也就是BIOS将使用PXE协议从网络引导。
DHCP服务器:用来动态分配IP地址(同时分配子网掩码、网关、TFTP服务器地址、启动文件名、DNS服务器、时间服务器等等)。
TFTP服务器:用来提供启动文件的下载
今天第一次接触PXE服务器,作如下记录:
1.安装tftp服务器
安装:
yum install tftp-server tftp //安装tftp服务端与客户端
(如果在虚拟机中安装,虚拟机没联网,可以在上网机中下载rpm包,再拷贝至虚拟机中,可以去http://rpm.pbone.net/下载)
然后rpm –ivh tftp-server-0.49-7.el6.x86_64.rpm
若报如下错误:
warning:tftp-server-0.42-3.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
xinetd is needed bytftp-server-0.42-3.1.i386 //提示依赖的文件
需要安装xinetd
rpm –ivh xinetd-2.3.14-39.el6_4.x86_64.rpm
然后在继续上一步
配置tftp:
Vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c //设置主目录
//-c为指定为可以创建文件
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
创建tftp根目录,关闭防火墙,启动tftp-server
#mkdir /tftpboot
#chmod-R 777 /tftpboot
#/etc/init.d/iptables stop //关闭防火墙
#service xinetd restart //重启 xinetd 服务重启xinetd服务,因为TFTP服务受控与xinetd, xinetd是管服务的服务,它是不开端口的。
验证一下TFTP是否起来了:
# netstat –nlp | grep 69
出现下面的信息代表已经启动了
udp 0 0 0.0.0.0:69 0.0.0.0:*
2.安装dhcp服务器
rpm –ivh dhcp-4.1.1-25.P1.el6.x86_64.rpm
vim /etc/dhcp/dhcpd.conf
添加:
subnet 192.168.2.0 netmask 255.255.255.0{
range dynamic-bootp 192.168.2.56 192.168.2.60;
option domain-name-servers 192.168.2.58;
option domain-name "local dns";
optionrouters 192.168.2.58;#本机ip
option broadcast-address 255.255.255.255;
default-lease-time 600;
max-lease-time 7200;
filename"pxelinux.0";#通过tftp传送的引导程序,直接放在tftp服务目录下
next-server 192.168.10.254;#服务器ip地址
}
开启dhcp服务:servicedhcpd restart
3.安装nfs服务
4.安装syslinux
安装方法同上,可以在源码包中找到相应的rpm包;或用yum下载安装
5.配置启动文件
这里我们应该挂载我们的安装光盘
先在/mnt下创建一个cdrom目录、然后再挂载
# mkdir /mnt/cdrom
# mount -r /dev/cdrom/ /mnt/cdrom
现在我们从刚挂载的光盘中开始复制内核文件以及init等一些文件到/tftp/lib/tftpboot目录下:
(如果的tftp的主目录是/tftpboot ,相应的改就行了)
# cp /mnt/cdrom/images/pxeboot/{vmlinuz,initrd.img}/var/lib/tftpboot/
# cp /mnt/cdrom/isolinux/boot.msg /var/lib/tftpboot/
# cp /mnt/cdrom/isolinux/splash.jpg /var/lib/tftpboot/
# cp /mnt/cdrom/isolinux/vesamenu.c32 /var/lib/tftpboot/
还要复制一个叫pxelinux.0文件,这个在安装好syslinux就会有
Cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cp /mnt/cdrom/isolinux/isolinux.cfg/var/lib/tftpboot/pxelinux.cfg/default
如果已经安装httpd服务, httpd的服务路径在/var/www/htmp下,这时我们可以绑定我们之前挂载好的光盘到这里来、这样就有安装树了
# mkdir /var/www/html/centos6.2
# mount --bind /mnt/cdrom/ /var/www/html/centos6.2/
启动httpd:servicehttpd start
而后我们就开始复制Kickstart文件了,这个文件在/root/目录下,叫anaconda-ks.cfg、我们把他复制到/var/www/html/下,改名为ks.cfg
# cp /root/anaconda-ks.cfg /var/www/html/ks.cfg
由于这个文件只有管理员可以访问、复制过来之后要给个可读的权限他:
# chmod +r /var/www/html/ks.cfg
再编辑一个这个ks.cfg里面的配置跟我们设定好的一致、要不然找不到文件路径:
vim /var/www/html/ks.cfg
改好了保存退出!
怎么让启动时加载kickstartk呢、那就要在/var/lib/tftpboot/pxelinux.cfg/defaule文件的label为 linux下的append后面补上ks=http://172.16.251.127/ks.cfg
编辑/var/lib/tftpboot/pxelinux.cfg/defaule
# vim /var/lib/tftpboot/pxelinux.cfg/default
参考文档:
http://www.haiyun.me/archives/dhcp-pxe-tftp-nfs-install-centos.html
http://www.tuicool.com/articles/meM7Nb
http://blog.chinaunix.net/uid-26393988-id-3018421.html