1 PXE技術的基本原理linux
PXE技術與RPL技術不一樣之處爲RPL是靜態路由,PXE是動態路由。RPL是根據網卡上的ID號加上其餘記錄組成的一個Frame(幀)向服務器發出請求。而服務器中已有這個ID數據,匹配成功則進行遠程啓動。PXE則是根據服務器端收到的工件站MAC地址,使用DHCP服務爲這個MAC地址指定個IP地址。每次啓動可能同一臺工做站有與上次啓動有不一樣的IP,即動態分配地址。下以客戶端引導過程說明PXE的原理。ios
(1)客戶端開機後,PXE BootROM(自啓動芯片)得到控制權以前執行自我測試,而後以廣播形式發出一個請求FIND幀。bootstrap
(2)若是服務器收到客戶端所送出的要求,就會送回DHCP迴應,包括用戶端的IP地址、預設通訊通道,以及開機映像文件;不然服務器會忽略這個要求。vim
(3)客戶端收到服務器發回的響應後則會迴應一個幀,以請求傳送啓動所需文件,並把本身的MAC地址寫到服務器端的Netnames.db文件中。服務器
(4)將有更多的消息在客戶端與服務器之間應答,用於決定啓動參數。BootROM由TFTP通訊協議從服務器下載開機映像文檔。客戶端使用TFTP協議接收啓動文件後,將控制權轉交啓動塊以引導操做系統,完成遠程啓動。網絡
PXE協議的成功運行須要解決如下的兩個問題測試
(1)既然是經過網絡傳輸,那麼計算機在啓動時其IP地址如何配置?spa
(2)經過何種下載Linux內核和根文件系統?操作系統
第一個問題能夠經過DHCP Server解決,由DHCP Server來爲PXE Client分配一個IP地址,DHCP Server是用來爲DHCP Client動態分配IP地址的協議。不過因爲這裏是爲PXE Client分配IP地址,因此在配置DHCP Server時須要增長相應的PXE特有配置;至於第2個問題,在PXE Client所在的ROM中,已經存在了TFTP Client。PXE Client使用TFTP Client,經過TFTP協議到TFTP Server上下載所需的文件。這樣,PXE協議運行的條件就具有了,PXE的安裝流程如圖所示。
在圖中,PXE Client是須要安裝Linux的計算機,TFTP Server和DHCP Server運行在另一臺Linux Server上,Bootstrap文件、配置文件、Linux內核,以及Linux根文件系統都放置在Linux Server上TFTP服務器的根目錄下。除了配置文件,這3個二進制文件是PXE Client在工件過程當中所必需的文件,即bootstrap、Linux內核和Linux根文件系統。Bootstrap文件是可執行程序,它爲用戶提供簡單的控制界面,並根據用戶的選擇下載合適的Linux內核以及Linux根文件系統。
圖1 PXE的基本原理
KickStart是一種無人職守安裝方式。KickStart的工做原理是經過記錄典型的安裝過程當中所需人工干預填寫的各類參數,並生成一個名爲ks.cfg的文件;在其後的安裝過程當中(不僅侷限於生成KickStart安裝文件的機器)當出現要求填寫參數的狀況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才須要安裝者手工干預。這樣,若是KickStart文件涵蓋了安裝過程當中出現的全部須要填寫的參數時,安裝者徹底能夠只告訴安裝程序從何處取ks.cfg文件,而後去忙本身的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啓選項來重啓系統,並結束安裝。
執行PXE+KickStart安裝須要的設備爲:
DHCP 服務器;
TFTP 服務器;
KickStart所生成的ks.cfg配置文件
一臺存放系統安裝文件的服務器,如 NFS、HTTP 或 FTP 服務器。
帶有一個 PXE 支持網卡的將安裝的主機;
vsftp
xinetd-*
tftp-server-*
dhcp-*
system-config-kickstart-*
syslinux
首先掛光盤:umont /dev/cdrom
mount /dev/cdrom /mnt
cd /mnt/Packages/
而後搭建ftp yum源。。
用yum安裝tftp服務器。。
開啓vsftpd服務和tftp服務。而且設置開機自啓動
編輯tftp服務器配置。vim /etc/xinetd.d/tftp 將disable=yes改爲no
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
複製pxe的啓動文件到tftp配置裏面。
複製ios裏面的這兩個小型系統文件到tftp配置裏面。
mkdir /var/lib/tftpboot/pxelinux.cfg
建立文件夾。
複製一個配置模板到新建的default裏面。。
yum-y install system-config-kickstart
system-config-kickstart