首页 > 代码库 > PXE服务器安装与配置

PXE服务器安装与配置

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/

启动httpdservicehttpd 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