預啟動執行環境

使用網路介面啟動計算機的機制

預啟動執行環境(Preboot eXecution Environment,PXE)也被稱為預執行環境,提供了一種使用網路介面(Network Interface)啟動計算機的機制。這種機制讓計算機的啟動可以不依賴本地數據存儲設備(如硬碟)或本地已安裝的操作系統。

簡介


PXE當初是作為Intel的有線管理體系的一部分,Intel和Systemsoft於1999年9月20日公布其規格(版本2.1) 。通過使用像網際協議(IP)、用戶數據報協議(UDP)、動態主機設定協定(DHCP)、小型文件傳輸協議(TFTP)等幾種網路協議和全局唯一標識符(GUID)、通用網路驅動介面(UNDI)、通用唯一識別碼(UUID)的概念並通過對客戶機(通過PXE自檢的電腦)固件擴展預設的API來實現目的。
PXE客戶機(client)這個術語是指機器在PXE啟動過程中的角色。一個PXE客戶機(client)可以是一台伺服器、桌面級電腦、筆記本電腦或者其他裝有PXE啟動代碼的機器。

通路


客戶機的固件為接受到可用的PXE啟動伺服器,要在網路中嘗試找出PXE重定向服務(DHCP代理)。在分析返回的包后,固件會向合適的啟動伺服器詢問網路自檢程序(NBP)的路徑,並且通過TFTP協議下載到電腦的內存中,有可能會去校驗它,最後執行它。當只有全部的PXE客戶機(client)只使用一個NBP時,全部的PXE客戶機可能會被指定是用BOOTP協議,從而不需要DHCP代理,但是仍然需要TFTP啟動服務。

優點


PXE被設計成適合各種計算機體系。2.1版的描述中確定了6種系統規格,包括IA-64和DEC Alpha。可是只有IA-32的完全表述.Intel在IA-64的擴展固件介面中包括了PXE,落實了標準。

協議


PXE協議大致上結合了DHCP和TFTP,雖然都有在兩者上面有改進。DHCP用於查找合適的啟動伺服器,TFTP用於下載初始引導程序和附加文件。
為了開始一個PXE自檢會話,PXE固件廣播一個帶有明確的PXE選項DHCPDISCOVER包(擴展DHCPDISCOVER)到67/UDP埠(DHCP伺服器埠)。PXE選項是PXE固件有PXE能力的鑒定,但是會被一般的DHCP服務忽略。當固件受到從這樣的服務受到DHCPOFFER包時,它會通過要求其提供配置信息來自我配置。

DHCP代理


當PXE重定向服務(DHCP代理)收到一個擴展DHCPDISCOVER包時,它會通過發送一個帶有明確的PXE選項DHCPDISCOVER包到PXE客戶機的68/UDP埠(DHCP客戶機埠)來回答。一個擴展DHCPDISCOVER包主要包含:
• 一個PXE發現控制領域,以決定是使用多播,廣播(網路)或單播來聯繫PXE啟動伺服器。
• 一個列出可用的PXE啟動伺服器類型的地址表。
• 一個代表每個一個PXE啟動伺服器類型的條目單。
• 一個帶有帶有提示用戶按下哪一個鍵來看到啟動菜單的PXE啟動菜單。
• 一個超過多長時間就啟動第一啟動菜單的超時數值。
一個DHCP代理服務可能在相同的主機上運行一個標準的DHCP伺服器。儘管兩個服務不可以共享67/UDP埠,DHCP代理服務在4011/UDP埠上運行,要求從客戶端來的DHCPDISCOVER包變成DHCPREQUEST包。標準DHCP服務在其發送的DHCPOFFER包中加入特殊的PXE選項組合,這樣PXE客戶端知道可以在同一個主機的4011/UDP埠找到一個DHCP代理服務。

聯繫啟動服務


和一個正在啟動系統的啟動服務聯繫必須有一個IP地址(可能來自DHCP服務)。通過多播或單播一個帶有特殊的PXE選項的DHCPREQUEST包(擴展DHCPREQUEST包)到4011/UDP埠,或者廣播(網路)這種包到67/UDP埠。這種包包含有PXE啟動服務類型和PXE啟動層,一個守護進程允許運行多個啟動服務類型。一個擴展DHCPREQUEST包可能是一個DHCPINFORM包。