PXE 技術簡單說就是利用網卡上的PXE BootROM(自啟動芯片)截取系統引導控制權,并通過DHCP指定的TFTP服務下載系統啟動所需的鏡像文件。BootROM目前是通用網卡默認的硬件固件,此技術主要用于遠程系統的安裝和部署等環境。
嚴格來說,PXE 并不是一種安裝方式,而是一種引導方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE Client。PXE 協議可以使計算機通過網絡啟動。此協議分為 Client端和 Server 端,而PXE Client則在網卡的 ROM 中。當計算機引導時,BIOS 把 PXE Client 調入內存中執行,然后由 PXE Client 將放置在遠端的文件通過網絡下載到本地運行。運行 PXE 協議需要設置 DHCP 服務器和 TFTP 服務器。DHCP 服務器會給 PXE Client(將要安裝系統的主機)分配一個 IP 地址,由于是給 PXE Client 分配 IP 地址,所以在配置 DHCP 服務器時需要增加相應的 PXE 設置。此外,在 PXE Client 的 ROM 中,已經存在了 TFTP Client,那么它就可以通過 TFTP 協議到 TFTP Server 上下載所需的文件了。
PXE的工作過程:
1. PXE Client 從自己的PXE網卡啟動,向本網絡中的DHCP服務器索取IP;
2. DHCP 服務器返回分配給客戶機的IP 以及PXE文件的放置位置(該文件一般是放在一臺TFTP服務器上) ;
3. PXE Client 向本網絡中的TFTP服務器索取pxelinux.0 文件;
4. PXE Client 取得pxelinux.0 文件后之執行該文件;
5. 根據pxelinux.0 的執行結果,通過TFTP服務器加載內核和文件系統 ;
6. 進入安裝畫面, 此時可以通過選擇HTTP、FTP、NFS 方式之一進行安裝;
詳細工作流程,請參考下面這幅圖:
實際工作中,我們經常會遇到這樣的情況:想要安裝Linux但是計算機不帶光驅或軟驅,或者是筆記本配置的非標準的軟驅和光驅,如1394接口,USB接口等,在Linux安裝時所引導的Linux內核一般都不會帶這些接口的驅動,所以也無法通過本地安裝Linux,此外,在一些場合,如機房,IT實驗室,工廠生產線,有大量的計算機需要同時安裝Linux,如果通過光驅的方式一個個安裝,不僅效率低,也不利于維護。這是時候你就需要PXE的強大功能了。
1.操作系統安裝的流程
通用流程:首先,bios啟動,選擇操作系統的啟動(安裝)模式(此時,內存是空白的),然后根據相關的安裝模式,尋找操作系統的引導程序(不同的模式,對應不同的引導程序當然也對應著不同的引導程序存在的位置),引導程序加載文件系統初始化(initrd)程序和內核初始鏡像(vmlinuz),完成操作系統安裝前的初始化;接著,操作系統開始安裝相關的系統和應用程序。
硬盤安裝的流程:bios啟動——MBR尋找grub——grub程序讀取menu.list等配置文件,找到內核啟動鏡像和相關初始化程序,安裝(或者啟動)。
PXE(Pre-boot Execution Environment)是由Intel設計,可以使計算機通過網絡啟動的協議。協議分為client和server兩端,PXE client在網卡的ROM中,當計算機啟動時,BIOS把PXE client調入內存執行,并顯示出命令菜單,經用戶選擇后,PXE client將放置在遠端的操作系統通過網絡下載到本地運行。
pxe網絡安裝的流程:bios啟動——pxe client中的程序進入內存,顯示命令菜單——此程序開始尋找網絡引導程序(bootstrap文件,這個文件的名字隨著發行版的不同而不同,在centos中,它是pxelinux.0)——引導程序讀取配置文件pxelinux.cfg,獲得系統初始化的相關文件信息——系統啟動,開始進行安裝。
安裝流程
客戶機從自己的PXE網卡啟動,向本網絡中的DHCP服務器索取IP,并搜尋引導文件的位置
DHCP服務器返回分給客戶機IP以及bootstrap文件的放置位置(該文件一般是放在一臺TFTP服務器上)
客戶機向本網絡中的TFTP服務器索取bootstrap文件
客戶機取得bootstrap文件后之執行該文件
根據bootstrap的執行結果,通過TFTP服務器加載內核和文件系統
流程小結
總結就是:
1)網卡的client 網卡rom 尋找dhcp服務器,由/etc/dhcp.conf得到ip和引導程序所在地點
2)有dhcp.conf(引導程序文件名)和tftp的配置(tftp跟路徑,里面有引導程序和系統初始化程序),得到引導程序pxelinux啟動文件的絕對路徑,運行引導程序,讀取啟動配置文件pxelinux.cfg/default,得到操作系統初始化的兩個相關文件
3)選擇安裝方式
客戶端廣播dhcp請求——服務器相應請求,建立鏈接——由dhcp和tftp配置得到ip還有引導程序所在地點——客戶端下載引導程序并開始運行——引導程序讀取
進入安裝畫面, 此時可以通過選擇FTP,HTTP,NFS方式之一進行安裝
相關文件位置與內容:
dhcp配置文件/etc/dhcpd/dhcp.conf——ip管理與引導程序名稱
tftp配置文件/etc/xinetd.d/tftp——tftp根目錄,和上面的引導程序名稱組成完整路徑
引導程序讀取的配置文件/tftpboot/pxelinux.cfg/default——啟動內核其他
安裝前的準備:
軟硬件配置:網卡要支持pxe啟動,操作系統也要支持pxe啟動,另外有ftp服務器用于存儲操作系統的安裝文件,dhcp服務器用于分配ip
服務器配置
1)配置dhcp服務器
由于PXE客戶機通常是尚未裝系統的裸機,因此為了和服務器取得聯系并正確下載相關引導文件,需要預先配置好DHCP服務來自動分配地址并告知引導文件的位置。
[root@localhost /]#yum -y install dhcp
[root@localhost /]#vim /etc/dhcp/dhcp.conf
ddns-update-style none;
default-lease-time 21600;
max-lease-time 43200;
option domain-name “benet.com”;
option domain-name-servers 8.8.8.8;
subnet 192.168.122.0 netmask 255.255.255.0 {
option routers 192.168.122.1;
option subnet-mask 255.255.255.0;
range 192.168.122.100 192.168.122.200;
next-server 192.168.122.1; #指定TFTP服務器的地址
filename “pxelinux.0”; #指定PXE引導程序的文件名
}
[root@localhost /]#service dhcpd start
注明:filename這一個選項很重要,它的作用是指明bootstrap所在的位置,一般是指向一個TFTP服務器的某個目錄下。這里是相對路徑,其中路徑的上半部分在的一個配置文件之中。
2)配置tftp服務器
TFTP服務的配置文件是/etc/xinetd.d/tftp,RedHat9 默認安裝已經生成了該文件,不過Centos沒有安裝這個軟件,需要安裝tftpserver,會自動生成這個配置文件。
service tftp
{
disable = no #這里的yes需要改成no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
注明:這個文件基本上不用改動,但是需要注意的的是server_args= -s /tftpboot這一行,它的含義是將/tftpboot作為root目錄,這樣在dhcpd.conf中的filename一行就應該寫bootstrap的相對路徑: filename “pxelinux.0”,這是出于安全方面考慮的。如果你去掉了-s這個參數,那幺就要在filename一行指出bootstrap的絕對路徑: filename “/tftpboot/pxelinux.0”.注意,這里-s的內容會因為發行版的內容不同而不同,一般不用改動。
tftp服務器的配置方法如下:
在網絡協議中,TFTP協議大家應該是比較了解的。那么今天我們則重點講解一下關于配置tftp服務器的內容。TFTP(Trivial File Transfer Protocol簡樸文件傳輸協議)是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。TFTP承載在UDP上,提供不可靠的數據流傳輸服務,不提供存取授權與認證機制,使用超時重傳方式來保證數據的到達。與FTP相比,TFTP的大小要小的多,TFTP是用來下載遠程文件的最簡單網絡協議,它基于UDP協議而實現。它使用的是UDP的69端口 。
配置tftp服務器1、檢查系統是否安裝tftp服務
這里指定/tftpboot 為tftp服務器的根目錄
參數-s指定chroot,-c指定了可以創立文件。
配置tftp服務器3、創立tftp根目錄,關閉防火墻,啟動tftp-server
添加引導程序
Bootstrap對于支持網絡安裝的操作系統,Bootstrap基本上都可以從安裝源文件上找到,對于本例來說,centos的bootstrap就是cdrom:/isolinux/pxelinux.0我們把它們都拷貝到tftpboot下.
編輯引導配置文件
把centos第一張安裝光盤上images/pxeboot目錄下的initr.img和vmlinux也考到tftpboot/目錄下。在/tftpboot創建pxelinux.cfg目錄,用于放isolinux的配制文件。光盤isolinux/下有一個isolinux.cfg文件,把它拷貝到/tftpboot/pxelinux.cfg/目錄下并改名為default.下面為修改后的default文件:
default linux
prompt 1
timeout 30
label linux
kernel vmlinuz
append ks=ftp://192.168.122.1/centos6.3/ksftpsimple.cfg,initrd=initrd.img
這個Default 文件很容易看懂,就是告訴啟動后使用那個內核引導,使用的配置文件在什么地方。
開始安裝
1)確保:服務器端剛才配置的幾個服務都處于開啟狀態;關閉防火墻;bios中選擇從網絡啟動
2)剩下的步驟和從硬盤安裝相同
評論
查看更多