天天看點

Linux ❀ PXE-預啟動執行環境

PXE-preboot execute environment-預啟動執行環境

  • 是由Intel公司開發的最新技術,工作于Client/Server的網絡模式,支援工作站通過網絡從遠端伺服器下載下傳鏡像,并由此支援通過網絡啟動作業系統,在啟動過程中,終端要求伺服器配置設定IP位址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協定下載下傳一個啟動軟體包到本機記憶體中執行,由這個啟動軟體包完成終端(用戶端)基本軟體設定,進而引導預先安裝在伺服器中的終端作業系統。pxe可以引導多種作業系統。

1、PXE需要的最基礎元件或服務

(1)PXE: 伺服器或主機需要支援PXE啟動(放心,一般都支援)。可以簡單的認為,自動化刷機伺服器(以下簡稱PXE伺服器)為PXE服務端,需要安裝系統的主機為PXE用戶端

(2)DHCP: 搭建DHCP伺服器,主要是給PXE用戶端配置設定IP位址并且指向網絡上的啟動資源,比如TFTP伺服器上的vmlinuz檔案和initrd檔案。

(3)TFTP: 搭建TFTP伺服器,主要是提供網絡上的啟動資源,比如pxelinux.0、vmlinuz檔案和initrd檔案

上面三個是最基礎的的元件,卻一不可! 下面介紹一下輔助伺服器。

這些伺服器主要是檔案伺服器,用來存放和管理iso鏡像。比如 nfs,ftp,http等

2、PXE啟動過程

首先,PXE client端(BIOS裡面的PXE固件)廣播一個DHCPDISCOVER的包,它詢問所需的網絡配置以及網絡啟動的參數。标準DHCP伺服器(非PXE enabled)将回複一個普通的DHCPOFFER包,其中包含網絡資訊(如IP位址),但并不能提供PXE相關參數,是以PXE Client并不能啟動。而PXE enabled的DHCP伺服器所回複的DHCPOFFER包裡則包含PXE相關資訊。

在解析一個PXE enabled的DHCP伺服器傳回的DHCPOFFER包後,PXE client就能夠設定自己的IP位址、IP Mask等等,并且指向網絡上的啟動資源,比如TFTP伺服器上的vmlinuz檔案和initrd檔案。

然後PXE client就通過TFTP下載下傳這些啟動資源到自己的記憶體中;如果是UEFI Secure Boot(而不是Legacy的BIOS)則還會檢驗一下這些啟動資源。下載下傳完成後就會用這些資源來啟動了。

這些啟動資源其實就是最小的作業系統(比如WindowsPE,又比如一個basic Linux kernel+initrd)。這個最小作業系統在裝載了網絡驅動和TCP/IP協定棧之後,就會開始boot或者install完整的作業系統了。而這個boot或install的過程,就不再通過TFTP來做,而是通過更加健壯的網絡傳輸協定(如HTTP、CIFS、iSCSI或NFS)來做。而boot或者install所用到的實體,比如磁盤或者CD-ROM,是位于遠端的,是以需要通過網絡傳輸協定來做。

繼續閱讀