1.PXE簡介
PXE(preboot execute environment,預啓動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啓動操作系統,在啓動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啓動軟件包到本機內存中執行,由這個啓動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。PXE可以引導多種操作系統,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。
PXE最直接的表現是,在網絡環境下工作站可以省去硬盤,但又不是通常所說的無盤站的概念,因爲使用該技術的PC在網絡方式下的運行速度要比有盤PC快3倍以上。當然使用PXE的PC也不是傳統意義上的TERMINAL終端,因爲使用了PXE的PC並不消耗服務器的CPU,RAM等資源,故服務器的硬件要求極低。
PXE+KickStart無人值守安裝的原理:
1. DHCP服務器給需要安裝的機器分發IP, 並指定ftp服務器地址和pxelinux.0
next-server 192.168.146.129;
filename "pxelinux.0";
2. 客戶端連接到服務器,讀取啓動文件 /tftpboot/pxelinux.cfg/default
3. 根據default裏面指定的ks.cfg文件的位置,打開KickStart配置文件,
4. 根據ks.cfg的ftp服務器的配置, 讀取/var/lib/tftpboot文件, 引導安裝程序
2.PXE服務器環境及所需應用
centos6.5 : 操作系統
主機IP : 192.168.146.129
dhcp:動態主機配置協議,給客戶端提供ip地址
tftp-server:tftp服務器端,提供系統安裝所需文件
xinetd:tftp服務超級守護進程,用於喚醒tftp服務
httpd:基於http服務提供安裝源
syslinux:提供pxelinux.0文件,此文件用於引導系統,相當於bootloader
3.實現步驟
前提:安裝好所需應用包
yum install dhcp tftp-server xinted syslinux httpd -y
3.1 配置dhcp服務
複製範例配置文件到指定目錄進行修改
cp
/usr/share/doc/dhcp-4
.1.1
/dhcpd
.conf.sample
/etc/dhcp/dhcpd
.conf
#複製腳本
vim
/etc/dhcp/dhcpd
.conf
#打開配置文件,具體如下:
dhcp服務配置完成,測試配置無語法錯誤後,啓動服務並設置開機自啓
service dhcpd configtest //檢測配置語法
service dhcpd force-reload //重新加載配置文件
chkconfig --list dhcpd //查看dhcpd服務是否自啓動
chkconfig dhcpd on //設置dhcpd服務開機自啓動
service dbcpd status //查看dhcpd服務的狀態
3.2 配置tftp server
與配置dhcp服務類似,也許設置tftp服務開機自啓動並啓動其超級守護進程xinetd
chkconfig --list tftp //查看 tftp服務是否自啓動
chkconfig tftp on //設置 tftp服務開機自啓動
service xinetd restart //啓動
ss -unl | grep:69
3.3、提供PXE的工作環境
複製pxelinux.0文件(由syslinux包提供,需提前安裝)到tftp工作目錄
#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
在/var/lib/tftpboot下創建目錄pxelinux.cfg
3.4、提供引導內核等文件
掛載系統光盤,假設位置爲/media/cdrom/
#cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ #複製內核ramdisk
#cp /media/cdrom/isolinux/{splash.jpg,vesamenu.c32} /var/lib/tftpboot #複製menu框架和背景圖片
#mkdir /var/lib/tftpboot/prelinux.cfg #創建獨特目錄pxe格式要求
#cp /media/isolinux/isolinux.cfg/var/lib/tftpboot/pxelinux.cfg/default #複製選項菜單文件
3.5、提供安裝源
基於http服務實現
ss -tln|grep :80 #查看是否正常啓動 service httpd status #查看服務狀態
mkdir -pv /var/www/html/centos/6/x86_64 #創建目錄
mount /dev/crom /media/crom #掛載目錄
mount --bind /media/cdrom /var/www/html/centos/6/x86_64 #綁定目錄
3.6、提供ks.cfg文件
cp ks.cfg /var/www/html/centos6.cfg
#vim ks.cfg
#修改或添加以下兩項,目標指向安裝源
url --url=http://192.168.146.129/centos6
repo --name="Redhat" --baseurl=http://192.168.146.129/centos6 --cost=100
爲了啓動時能夠加載kickstart文件,還需要修改/var/lib/tftpboot/pxelinux.cfg/default文
件,添加ks文件的位置。
#vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
menu label ^Install or upgrade an existingsystem
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.146.129/centos6.cfg #指向ks文件
3.7、設置客戶端啓動項
將待裝系統的主機設置爲網卡啓動,再進行啓動即可。