《RHEL6.3下pxelinux的搭建》


首先我们先看下pxe.linux的制作需要的服务:

DHCP、tftp,还有就是pxelinux文件,

首先搭建DHCP服务器,这个很简单自己搭建下。

下面安装tftp软件包:tftp-server.i686

安装的过程中发先tftp这个包的进程和服务都与xtend服务相关:

去开启xinted下的tftp服务:

切换到xinted服务下cd /etc/xinetd.d/

编辑tftp服务配置文件 vim tftp

disable       = no       //开启tftp服务

使用rpm -ql tftp-server 找到tftp配置文件的路径:

/var/lib/tftpboot

由于pxelinux.0为系统内置命令,我们使用:

# yum whatprovides */pxelinux.0   //查找pxelinux.0的安装包,还有文件的路径。

安装软件包:# yum install syslinux-4.02-7.el6.i686 -y

启动系统时,读取的pxelinux.0是在tftp目录下,根本不在/usr/share/syslinux目录下,对吧

 

我们知道启动系统的蓝色图片,还有标题的文件放在哪?

首先挂载镜像:

到虚拟机配置那把镜像添加上,使用mount挂载

 

 

切换到/mnt/isolinux目录下:注意:vmlinuz、initrd.img、isolinux.cfg这三项是有版本的,这三项版本一定要一样,否则实验成果不了

我们所要做的很简单,把这个目录下的所有文件cp到/var/lib/tftpboot下:

[root@redhat isolinux]# cp -a ./* /var/lib/tftpboot/

[root@redhat tftpboot]# ls

boot.cat  grub.conf   isolinux.bin  memtest     splash.jpg  vesamenu.c32

boot.msg  initrd.img  isolinux.cfg  pxelinux.0  TRANS.TBL   vmlinuz

原先tftp目录下只有pxelinux.0文件,对吧。

现在建一个目录pxelinux.cfg,下面的都为固定格式,官网pxelinux.0的手册就是这样写的。

我们修改下defaule文件,给它添加以下几行:

 

label linux

  menu label ^Install hello world  //添加了一个hello world标题

  menu default

  kernel vmlinuz

  append initrd=initrd.img

 

 

下面是配置dhcp服务:

只用添加后面2行,next-server 192.168.7.3;    filename "pxelinux.0";

 

重启DHCP服务:

[root@redhat tftpboot]# /etc/init.d/dhcpd restart

Shutting down dhcpd:                                       [  OK  ]

Starting dhcpd:                                            [  OK  ]

 

客户端的测试:

首先拔掉网线,使用你自己配的DHCP服务:

重启网络: 如果不拔掉的话,使用的不是本地的DHCP服务。

 

把ip改为动态获取:  这样才能获取的本地DHCP服务的ip

 

启动改为从网络启动: 然后会发现下面的报错:

 

 

这是由于selinux=enforcing我们setenforce=0就ok

 

再次启动会发现ok的:

同时也可以这样写:配合kisckstart一块使用:

然后把22行注释掉,在下面添加: 
append initrd=initrd.img ks=http://192.168.7.3/ks.cfg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关内容