天天看點

HCNP學習筆記之PXE原理詳解及實踐

一、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啟動原理

當計算機引導時,BIOS把PXE Client 調入記憶體中執行,然後由 PXE Client 将放置在遠端的檔案通過網絡下載下傳到本地運作,工作流程圖如下

HCNP學習筆記之PXE原理詳解及實踐
HCNP學習筆記之PXE原理詳解及實踐

PXE工作原理示意圖說明:

#1.Client向PXE Server上的DHCP發送IP位址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC位址),如果合法則傳回Client的IP位址,同時将啟動檔案pxelinux.0的位置資訊一并傳送給Client。

#2.Client向PXE Server上的TFTP發送擷取pxelinux.0請求消息,TFTP接收到消息之後再向Client發送pxelinux.0大小資訊,試探Client是否滿意,當TFTP收到Client發回的同意大小資訊之後,正式向Client發送pxelinux.0。

#3.Client執行接收到的pxelinux.0檔案。

#4.Client向TFTP發送針對本機的配置資訊(記錄在TFTP的pxelinux.cfg目錄下),TFTP将配置檔案發回Client,繼而Client根據配置檔案執行後續操作。

#5.Client向TFTP發送Linux核心請求資訊,TFTP接收到消息之後将核心檔案發送給Client。

#6.Client向TFTP發送根檔案請求資訊,TFTP接收到消息之後傳回Linux根檔案系統。

#7.Client啟動Linux核心(啟動參數已經在4中的配置檔案中設定好了)。

#8.Client通過NFS下載下傳鏡像檔案,讀取autoyast自動化安裝腳本。      

三、PXE安裝配置

1.安裝tftp

在server 172.16.47.101上:

[root@node1~]# yum install tftp tftp-server -y
[root@node1~]# systemctl start tftp.socket
[root@node1~]# systemctl enable tftp.socket      

tftp的預設目錄為/var/lib/tftpboot/,如下圖,拷貝一個檔案到該目錄下,測試tftp服務是否正常

HCNP學習筆記之PXE原理詳解及實踐

2.安裝DHCP服務

在server 172.16.47.101上安裝dhcp服務,和tftp服務是在同一台機器上

HCNP學習筆記之PXE原理詳解及實踐

3.yum源

把CD光牒挂載上

HCNP學習筆記之PXE原理詳解及實踐

4.配置httpd web服務

安裝httpd:yum install httpd;并把yum源挂載在http下,讓用戶端能夠通路

HCNP學習筆記之PXE原理詳解及實踐

可以看到httpd能正常服務,不過操作的時候要注意selinux和iptables

HCNP學習筆記之PXE原理詳解及實踐

5.安裝syslinux

安裝syslinux:yum install syslinux,并複制系統引導啟動所需要的檔案到相應的目錄中

HCNP學習筆記之PXE原理詳解及實踐

編輯default檔案

default menu.c32
prompt 5
timeout 30
MENU TITLE CentOS 7_Lurker PXE Menu
LABEL linux-Lurker
MEMU LABEL Install CentOS 7_Lurker X86_64
KERNEL vmlinuz
APPEND initrd=initrd.img
inst.repo=http://172.168.47.101/centos/7/x86_64      

建立虛拟機,可以看到啟動的引導過程如下:

HCNP學習筆記之PXE原理詳解及實踐

啟動界面如下:

HCNP學習筆記之PXE原理詳解及實踐

如上default檔案中并沒有指定kickstart檔案,無法應答安裝時的各步驟,無法實作全自動安裝。

現我們修改一下/root/目錄下的anaconda-ks.cfg檔案,放到/var/www/html/kickstarts/下,并重新修改default檔案如下:

default menu.c32
prompt 5
timeout 30
MENU TITLE CentOS 7_Lurker PXE Menu
 
LABEL Linux-Lurker
MEMU LABEL ^Install CentOS 7_Lurker X86_64
KERNEL vmlinuz
APPEND initrd=initrd.img
inst.repo=http://172.168.47.101/centos/7/x86_64
 
LABEL Linux_Autoinst
MENU LABEL ^AutoInstall CentOS 7 x86_64
KERNEL vmlinuz
APPEND initrd=initrd.img
inst.repo=http://172.168.47.101/centos/7/x86_64
ks=http://172.16.47.101/kickstarts/centos7.cfg      

如下圖,可以看到,正在安裝,分區中

HCNP學習筆記之PXE原理詳解及實踐
HCNP學習筆記之PXE原理詳解及實踐

至此,我們就實作了linux的全自動化安裝。

​​參考​​

繼續閱讀