PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工做于Client/Server的网络模式,支持工做
站经过网络从远端服 务器下载映像,并由此支持经过网络启动操做系统,在启动过程当中,终端要求服务器分配IP地址,再用TFTP(trivial
file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件
包完成终端基本软件设置,从而引导预先安装在服务器中的终端操做系统。
严格来讲,PXE 并非一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网
卡(NIC),即网卡中必需要有 PXE Client。PXE 协议可使计算机经过网络启动。此协议分为 Client端和 Server 端,而PXE Client则
在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,而后由 PXE Client 将放置在远端的文件经过网络下载到本
地运行。运行 PXE 协议须要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地
址,因为是给 PXE Client 分配 IP 地址,因此在配置 DHCP 服务器时须要增长相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经
存在了 TFTP Client,那么它就能够经过 TFTP 协议到 TFTP Server 上下载所需的文件了。html
PXE的工做过程:
- PXE Client 从本身的PXE网卡启动,向本网络中的DHCP服务器索取IP;
- DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件通常是放在一台TFTP服务器上) ;
- PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
- PXE Client 取得pxelinux.0 文件后之执行该文件;
- 根据pxelinux.0 的执行结果,经过TFTP服务器加载内核和文件系统 ;
- 进入安装画面, 此时能够经过选择HTTP、FTP、NFS 方式之一进行安装;linux
Kickstart是一种无人值守的安装方式。它的工做原理是在安装过程当中记录典型的须要人工干预填写的各类参数,并生成一个名为ks.cfg的
文 件。若是在安装过程当中(不仅局限于生成Kickstart安装文件的机器)出现要填写参数的状况,安装程序首先会去查找Kickstart生成的
文件,如 果找到合适的参数,就采用所找到的参数;若是没有找到合适的参数,便须要安装者手工干预了。因此,若是Kickstart文件涵盖
了安装过程当中可能出现的 全部须要填写的参数,那么安装者彻底能够只告诉安装程序从何处取ks.cfg文件,而后就去忙本身的事情。等安
装完毕,安装程序会根据ks.cfg中的设 置重启系统,并结束安装。vim
PXE+Kickstart 无人值守安装操做系统完整实验过程以下:缓存
实验拓扑服务器
2. 准备工做网络
实验环境:VirtualBox 系统平台:CentOS 7 系统状态:最小化安装 网络模式:nat模式 DHCP / TFTP IP:192.168.8.10 HTTP / FTP / NFS IP:192.168.8.10
2.2 为了实验方便,先关闭防火墙和SELinux
[root@CentOS ~]# setenforce 0
修改配置文件/etc/selinux/config 内容以下工具
2.3 在服务器中,生成ks.cfg 文件须要system-config-kickstart 工具,而此工具依赖于X Windows,因此咱们须要安装X Windows 和Desktop 并重启系统spa
这里从镜像光盘安装相关组件,首先挂载光盘操作系统
修改源文件:/etc/yum.repos.d/CentOS-Base.repo为以下内容,记得先备份rest
刷新缓存
安装组件:
[root@CentOS ~]#yum groupinstall "X Window System"
[root@CentOS ~]# yum groupinstall "GNOME Desktop"
三、配置HTTP安装方式
系统的安装方式能够选择HTTP、FTP、 NFS,咱们这里介绍HTTP方式的安装,其余两种方式的安装,你们能够自行百度。
3.1 安装并配置HTTP
[root@CentOS ~]# yum install httpd
[root@CentOS ~]# systemctl start httpd.service
[root@CentOS ~]# systemctl enable httpd.service
3.二、挂载光盘镜像
[root@CentOS ~]# mount /dev/cdrom /mnt/cdrom/
3.三、复制光盘所有内容至http 的根目录/var/www/html/os/下
[root@CentOS ~]# cp -r /mnt/cdrom/* /var/www/html/os
四、配置TFTP
4.一、安装tftp-server
[root@CentOS ~]# yum install tftp-server
[root@CentOS ~]# yum install xinetd
4.二、启用tftp 服务,编辑配置文件/etc/xinetd.d/tftp 内容以下,红框位置由yes修改成no
4.三、启动tftp服务
由于tftp服务是挂载在超级进程xinetd 下的,因此经过启动xinetd 来启动tftp服务。
[root@CentOS ~]# systemctl start xinetd.service
[root@CentOS ~]# systemctl enable xinetd.service
4.四、查看tftp端口号是否打开,从图中能够看到udp端口号69已经打开
五、配置支持PXE的启动程序
5.一、安装syslinux
[root@CentOS ~]# yum install syslinux
5.二、复制pxelinux.0 文件至/var/lib/tftpboot/ 文件夹中
[root@CentOS ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
说明:syslinux是一个功能强大的引导加载程序,并且兼容各类介质。更加确切地说:SYSLINUX是一个小型的Linux操做系统,它的目的
是简化首次安装Linux的时间,并创建修护或其它特殊用途的启动盘。
5.三、复制iso 镜像中的/image/pxeboot/initrd.img 和vmlinux 至/var/lib/tftpboot/ 文件夹中
[root@CentOS ~]# cp /var/www/html/os/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@CentOS ~]# cp /var/www/html/os/images/pxeboot/vmlinuz /var/lib/tftpboot/
5.四、复制iso 镜像中的/isolinux/*.msg 至/var/lib/tftpboot/ 文件夹中
[root@CentOS ~]# cp /var/www/html/os/isolinux/*.msg /var/lib/tftpboot/
5.五、在/var/lib/tftpboot/ 中新建一个pxelinux.cfg目录
[root@CentOS ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
5.六、将iso 镜像中的/isolinux 目录中的isolinux.cfg复制到pxelinux.cfg目录中,同时更改文件名称为default
编辑配置文件
[root@CentOS ~]# cp /var/www/html/os/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@CentOS ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
在位置1处添加menu default这一行,在位置2处修改为图中样式,在位置3处删除两行之间的menu default,最后效果如图所示,位置1
在63行
六、配置DHCP
6.一、安装DHCP服务
[root@CentOS ~]# yum install dhcp
6.二、复制配置模板文件到DHCP的配置目录中
[root@CentOS ~]# cp -f /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
6.三、修改/etc/dhcp/dhcpd.conf 配置文件,内容以下:
6.四、启动DHCP服务
[root@CentOS ~]# systemctl start dhcpd.service
[root@CentOS ~]# systemctl enable dhcpd.service
七、生成ks.cfg 文件
7.一、安装Kickstart
[root@CentOS ~]# yum install system-config-kickstart
7.二、在桌面环境下配置Kickstart,启动X Windows 环境
[root@CentOS ~]# startx
在图形界面中打开终端,输入以下命令启动Kickstart
[root@CentOS ~]# system-config-kickstart
按下列图形填,第1个
第二个
第三个
第四个
第五个
而后保存,保存完以后在文件最后添加三行内容
7.三、保存后使用命令检查语法是否正确
[root@CentOS ~]# ksvalidator ks.cfg
7.四、若是语法没有问题就复制文件到www根目录
[root@CentOS ~]# cp ks.cfg /var/www/html/
7.五、重启一下httpd服务[root@CentOS ~]# systemctl restart httpd.service