(1)PXE
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
(2)PXE协议成功的运行
PXE协议的成功运行需要解决以下两个问题:
既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置;
通过什么协议下载Linux内核和根文件系统 ;
对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。
至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。
PXE网络装机流程
PXE Client从自己的PXE网卡启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向本网络中的DHCP服务器索取IP。
DHCP服务器收到客户端的请求,验证是否来至自合法的PXE Client的请求,验证通过后它将给客户端一个响应,这个响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。
客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM由TFTP通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。
客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。接着会读取default文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。
客户端安装操作系统 将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。 OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。
实验环境
2台Linux系统(RHEL6.5版本),1台作为:PXE远程安装服务器,另1台作为:客户端(未装RHEL6.5系统)
实验步骤
(1)网络源YUM仓库配置
1.1> 修改selinux防火墙配置文件,禁止SELINUX服务,关闭防火墙
1.2> 配置服务器IP地址
1.3> 挂载光盘
1.4> 修改服务器的YUM仓库文件rhel-source.repo(服务器自己的YUM为:本地源)
(2)安装vsftpd服务
2.1> 安装vsftpd服务(使用YUM方式安装,验证本地源YUM仓库),
2.2> 重新启动vsftpd服务;
2.3> 检测vsftpd端口;证明服务正常开启;
2.4> 复制光盘文件到ftp服务器的共享目录rhel6.5中;
2.5> 验证ftp服务是否正常;
打开服务器的火狐浏览器,输入:ftp://192.168.10.10,如果能看到rhel6.5共享目录,则说明服务器的ftp服务运行正常
(3)安装并启用tftp服务
3.1> 安装tftp服务;
3.2> 修改tftp文件 vim /etc/xinetd.d/tftp
修改:“disable = yes”为“disable = no”
3.3> 启动tftp服务,service xinetd start;
3.4> 准备客户端主机无盘启动时所需的Linux内核、初始化镜像文件:
cd /mnt/images/pxeboot
cp vmlinuz initrd.img /var/lib/tftpboot
3.5> 准备客户端主机无盘启动时所需的PXE引导程序、启动菜单文件;
1) 安装syslinux软件包(支持PXE功能)
yum -y install syslinux
2) 复制PXE引导程序
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
3) 建立启动菜单文件
mkdir /var/lib/tftpboot/pxelinux.cfg
vim /var/lib/tftpboot/pxelinux.cfg/defaul
(4)安装并启用DHCP服务
4.1> 安装dhcp服务;yum -y install dhcp
4.2> 复制dhcp配置例子文件;
4.3>修改dhcp配置文件;并启动DHCP服务;
注意:dhcp服务的配置文件应根据实际情况而写:
(5)验证PXE网络装机:(客户机上操作)
5.1> 虚拟机环境:新建一台RHEL6.5虚拟机(客户端)
内存1G内存
硬盘:默认即可
网卡连接方式:与服务器相同(如:vmnet1)
禁用vmware的dhcp功能(此步很重要)
启动虚拟机,看到boot: 提示符,说明服务器端配置成功!,可以进行接下来的操作。
安装方式应选择:URL方式
URL信息应填写为:ftp://192.168.10.10/rhel6.5
5.2> 可以看到测试成功;
(6)实现客户端的Kickstart无人值守安装:(在服务器上操作)
6.1> 安装system-config-kickstart软件包;yum -y install system-config-kickstart
6.2> 设置kickstart
打开kisckstart配置程序:
应用程序-----系统工具-----kickstart
进行相应的配置:
必须设置root口令
必须指定安装方法:FTP
ftp服务器:ftp://192.168.10.10
ftp目录:rhel6.5
必须设置分区:
清除主引导记录
删除所有现存分区
添加磁盘分区:
/boot ext4 500M
swap 2048M
/ ext4 未使用的全部磁盘空间
保存自动应答文件:/root/ks.cfg
启用自动应答文件:cp /root/ks.cfg /var/ftp/rhel6.5
6.3> 修改启动菜单文件default;
(7)验证PXE无人值守安装
启动客户端验证无人值守安装,如果能看到软件包复制过程,则说明无人值守配置成功,可继续等待自动安装,直到安装完毕
看到已经测试成功;