前提:对DHCPtftp-server,httpd有一定了结,本文将略过对服务的讲解和安装过程,主要讲通过这三个服务来实现PXE服务器的搭建过程。

 

准备工作:

安装软件包:

    安装制作ks.cfg文件工具(图形界面下):yum-y system-config-kickstart

安装服务:yum -y installdchp tftp-server httpd

安装syslinuxyum -yinstall syslinux

或者使用下面的安装方法一次性全部安装:

yum -y installystem-config-kickstart dchp tftp-server httpd syslinux

 

关于syslinux的介绍:

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。不仅支持采用BIOS结构的主板,而且从6.0版也开始支持采用EFI结构的新型主板。

 

  • 配置dhcp服务

#vim /etc/dhcp/dhcpd.conf

option domain-name "dhcpserver";  DNS服务器的域名

option domain-name-servers 172.16.249.142 ,172.16.0.1 ;  DNS服务器IP

 

default-lease-time 600;  DHCP服务租约时间

max-lease-time 7200;  DHCP服务最大租约时间

 

log-facility local7; 日志设备类型为local7.一般日志设备类型包括mailcrontab。通过此选项可以找到该服务的日志记录路径

 

subnet 172.16.249.0 netmask 255.255.255.0 {  指定分配网段的ip地址以及子网掩码,括号内部为局部配置

 range 172.16.249.222 172.16.249.230; 可使用的地址池范围

 option routers 172.16.0.1; 指定网关

 next-server 172.16.249.142; 指定分配完ip后的下一跳服务器ip

 filename "pxelinux.0"; 指定到下一跳服务器上读取的文件

}

二、配置tftp server

#vim /etc/xinetd.d/tftp

disable = no 开启tftp服务

 

服务全部配置完成。下面复杂pxe安装系统要用的文件(三、四、五都是复制文件)

三、提供PXE的工作环境

# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

 

四、提供引导内核等文件

挂载系统光盘:

#mkdir /mnt/cdrom

#mount /dev/cdrom / /mnt/cdrom

# cp /mnt/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/

# cp /mnt/cdrom/isolinux/{splash.jpg,vesamenu.c32,boot.msg}  /var/lib/tftpboot

# mkdir /var/lib/tftpboot/pxelinux.cfg/

# cp /mnt/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

五、提供安装源

# mkdir -pv /var/www/html/centos

# mount --bind /mnt/cdrom/var/www/html/centos/

 

所有服务都搞好了,启服务,查看服务是否启动,测试一下

#chkconfig dhcpd on  配置DHCP服务开机自启动

# chkconfig tftp on  配置TFTP服务开机自启动

# chkconfig httpd on  配置HTTP服务开机自启动

#/etc/init.d/dhcpd configtest 检查DHCP服务搭建是否有语法错误

(#/etc/init.d/dhcpd force-reload 在不重启DHCP服务的情况下,重读配置文件让刚修改的DHCP服务配置生效。cat /var/lib/dhcpd/dhcpd.leases查看DHCP服务ip的分配情况。一些小伎俩,分享一下,可以省去这步,呵呵。)

#/etc/init.d/dhcpd restart 重启DHCP服务

#/etc/init.d/xinetd restart 重启TFTP服务

#/etc/init.d/httpd restart 重启TFTP服务

# ss -unl 查看67DHCP服务端口),69TFTP服务端口)号端口是否监听

 

如果还想无人值守自动化安装,请继续。

六、为pxe提供ks.cfg文件

执行system-config-kickstart命令启动kickstart工具生成ks.cfg文件

         #system-config-kickstart

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos_kickstart

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos_TFTP_02

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos_TFTP_03

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos_kickstart_04

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos_HTTP_05

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos_kickstart_06

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos_HTTP_07

选择要安装的包。

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos_kickstart_08

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos_kickstart_09

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos_kickstart_10

 

 

七、还有最后一步,修改/var/lib/tftpboot/pxelinux.cfg/defaultdefault文件

#vim /var/lib/tftpboot/pxelinux.cfg/default

 

default vesamenu.c32

#prompt 1

timeout 30

 

display boot.msg

 

menu background splash.jpg

menu title Welcome to CentOS 6.3!

menu color border 0 #ffffffff #00000000

menu color sel 7 #ffffffff #ff000000

menu color title 0 #ffffffff #00000000

menu color tabmsg 0 #ffffffff #00000000

menu color unsel 0 #ffffffff #00000000

menu color hotsel 0 #ff000000 #ffffffff

menu color hotkey 7 #ffffffff #ff000000

menu color scrollbar 0 #ffffffff #00000000

 

label linux

 menu label ^Install or upgrade an existing system

 menu default

 kernel vmlinuz

 append initrd=initrd.img ks=http://172.16.249.142/ks.cfg

只需要把加红色字体ks=http://172.16.249.142/ks.cfg加上就可以了。

 

搞定,大功告成。

 

总结:

PXE流程:

1、  DHCP服务:分配ip指定下一跳地址和pxelinux.0

2、  TFTP服务: pxelinux.0boot.msg,splash.jpgvesamenu.c32显示grub启动菜单àpxelinux.cfg/default加载vmlinuz,加载initrd,指定ks文件位置àHTTP服务

3、  HTTP服务:ks.cfg文件à指定光盘镜像的位置URL=

读取镜像文件

 

扩展知识:

系统光盘isoliux目录中文件的作用:

1、  bootcat: grub界面下按tab提供boot提示符。

2、  boot.msg : grub界面下按tab出来的boot提供菜单选项。

3、  isolinux.bin:bootloader对应的第二阶段,它会读取splansh.jpgvesamenu.c32grub提供图形界面的框架。Isolinux.bin的配置文件是isolinux.cfg

4、  splash.jpg:grub启动时的背景图片。

5、  vesamenu.c32:

6、  vmlinuz:系统内核

7initrd:全称init ramdisk,初始RAM磁盘是在系统引导过程中挂载的一个临时根文件系统,是真正根和虚拟根的桥梁。

8memtest:内存测试工具。