一、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 將放置在遠端的文件通過網絡下載到本地運行,工作流程圖如下:
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安裝配置
涉及的服務:
tftp,dhcp,http,yum倉庫,kickstart文件,pxe(syslinux)
1.安裝tftp
在server172.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服務是否正常
2.安裝DHCP服務
在server 172.16.47.101上安裝dhcp服務,和tftp服務是在同一臺機器上
3.yum源
把光盤掛載上
4.配置httpd web服務
安裝httpd:yum install httpd;并把yum源掛載在http下,讓客戶端能夠訪問
可以看到httpd能正常服務,不過操作的時候要注意selinux和iptables
5.安裝syslinux
安裝syslinux:yum install syslinux,并復制系統引導啟動所需要的文件到相應的目錄中
編輯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
新建虛擬機,可以看到啟動的引導過程如下:
啟動界面如下:
如上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
如下圖,可以看到,正在安裝,分區中
至此,我們就實現了linux的全自動化安裝。
原創文章,作者:Lurker,如若轉載,請注明出處:http://www.www58058.com/66215