需求

在实际工作中,我们经常会遇到这样的情况:想要安装Linux但是计算机不带光驱或软驱,或者是笔记本配置的非标准的软驱和光驱,如1394接口,USB接口等,在Linux安装时所引导的Linux内核一般都不会带这些接口的驱动,所以也无法通过本地安装Linux,此外,在一些场合,如机房,IT实验室,工厂生产线,有大量的计算机需要同时安装Linux,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护。这是时候你就需要PXE的强大功能了。本文将就PXE的基本原理和工作方式进行简要介绍。

PXE简介

PXE是由Inte公司开发的网络引导技术,工作在 Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统

前提条件

• 客户机的网卡支持PXE协议(集成 BOOTROM芯片),且主板支持网络引导。
• 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
• 服务器通过TFTP( Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。

PXE装机原理图

【高效装机】PXE实现无人值守安装CentOS 6

PXE的装机过程:

  1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;

  2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;

  3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;

  4. PXE Client 取得pxelinux.0 文件后之执行该文件;

  5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;

  6. 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;

实验案例:

使用PXE服务器给以下未装系统的裸机装上centos 6系统
【高效装机】PXE实现无人值守安装CentOS 6
   

实验环境

服务器系统:centos 6.5
服务器端 ip:192.168.100.20
yum挂载目录:/mnt/sr0
ftp站点目录:/var/ftp/redhat6
客户机硬盘大小:40G
客户机内存内存:最少2G

实验步骤

一、环境部署

1.服务器端、客户端均关闭防火墙

service stop iptables
setenforce 0

二、搭建PXE远程安装服务器

1.准备安装CentOS安装源

mount /dev/sr0 /mnt/sr0/ #挂载光盘目录
yum -y install vsftpd #安装vsftpd服务
mkdir /var/ftp/redhat6 #ftp站点创建共享目录
cp -rf /mnt/sr0/* /var/ftp/redhat6/ #将光盘文件拷贝到站点中
service vsftpd start #启动ftp服务

2.安装并启用TFTP服务

yum -y install tftp-server #安装tftp
vim /etc/xinetd.d/tftp #开启tftp

【高效装机】PXE实现无人值守安装CentOS 6

service xinetd start #启动服务

3.准备内核、初始化镜像文件

cd /mnt/sr0/images/pxeboot/
cp initrd.img vmlinuz /var/lib/tftpboot/ #将内核和镜像文件拷贝到tftp的根目录下

4.准备PXE引导程序、启动菜单文件

yum -y install syslinux #安装引导加载程序
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #将引导程序放在tftp的根目录下
mkdir /var/lib/tftpboot/pxelinux.cfg #在tftpboot下创建启动菜单目录
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #安装菜单
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot #linux引导加载模块//
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/ #压缩内核//
cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot #图形化安装菜单

5.安装并启用DHCP服务

yum -y install dhcp
vim /etc/dhcp/dhcpd.conf

【高效装机】PXE实现无人值守安装CentOS 6
【高效装机】PXE实现无人值守安装CentOS 6

service dhcpd start #启动dhcp服务

三、Kickstart无人值守安装

1.安装kickstart工具

yum -y install system-config-kickstart

2.配置安装应答参数
【高效装机】PXE实现无人值守安装CentOS 6

3.安装方法
【高效装机】PXE实现无人值守安装CentOS 6

4.引导装载程序
【高效装机】PXE实现无人值守安装CentOS 6

5.分区信息
【高效装机】PXE实现无人值守安装CentOS 6

6.网络配置
【高效装机】PXE实现无人值守安装CentOS 6

7.验证
【高效装机】PXE实现无人值守安装CentOS 6

8.防火墙配置
【高效装机】PXE实现无人值守安装CentOS 6

9.显示配置
【高效装机】PXE实现无人值守安装CentOS 6

10.软件包选择
【高效装机】PXE实现无人值守安装CentOS 6
【高效装机】PXE实现无人值守安装CentOS 6

11.预安装脚本(默认即可)

12.保存自动应答文件
【高效装机】PXE实现无人值守安装CentOS 6

四、实现批量自动装机

1.启动自动应答文件

cp ks.cfg /var/ftp/redhat6/
vim /var/lib/tftpboot/pxelinux.cfg/default

【高效装机】PXE实现无人值守安装CentOS 6
【高效装机】PXE实现无人值守安装CentOS 6

2.在客户端调整BIOS设置
【高效装机】PXE实现无人值守安装CentOS 6

3.自动装机
【高效装机】PXE实现无人值守安装CentOS 6
【高效装机】PXE实现无人值守安装CentOS 6
【高效装机】PXE实现无人值守安装CentOS 6

总结:

1.实现PXE装机,要求网卡支持PXE功能,且必须有Linux安装源,以及可用的TFTP,DHCP服务器。
2.无人值守的应答文件可通过Kickstart 配置程序完成,该程序由system-config-kickstart 软件包提供。
3.TFTP服务由tftp-server软件包提供,默认由xinetd超级服务器进行管理。
4.用于PXE网络安装的引导程序为pxelinux.0 由软件包syslinux 提供。
5.用于PXE网络安装的linux 内核、初始化镜像文件从centos 6光盘获得,分别为vmlinuz和initrd.img。
6.若最后验证无人值守安装时,发现还是需要手动安装,肯定是自动应答文件配置出了问题。
7.所有安装的客户机内存最小2G,否则会出故障!