首先我们先看下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
新闻热点
疑难解答