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 將放置在遠端的文件通過網絡下載到本地運行,工作流程圖如下:

blob.png

blob.png

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服務是否正常

blob.png

2.安裝DHCP服務

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

blob.png

3.yum源

把光盤掛載上

blob.png

4.配置httpd web服務

安裝httpd:yum install httpd;并把yum源掛載在http下,讓客戶端能夠訪問

blob.png

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

blob.png

5.安裝syslinux

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

blob.png

編輯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

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

blob.png

啟動界面如下:

blob.png

如上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

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

blob.png

blob.png

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

原創文章,作者:Lurker,如若轉載,請注明出處:http://www.www58058.com/66215

(4)
LurkerLurker
上一篇 2017-01-10
下一篇 2017-01-10

相關推薦

  • linux中文本處理工具cat 、less、more、head、tail、cut等使用

    文本內容查看工具:cat和less  cat 使用:查看文件內容          cat  選項      文件        …

    Linux干貨 2016-08-08
  • 五.Linux博客-2016年7月28日索引、硬鏈接、軟連接、inode表、file、重定向、tr、管道、用戶、組

    格式說明: 操作 概念 命令 說明及舉例 五.索引、硬鏈接、軟連接、inode表、file、重定向、tr、管道、用戶、組 索引節點 原數據保存在inode table表中每個文件或目錄都有一個獨立的inode number(節點編號在一個分區中是唯一的,每個分區都有自己的inode table) ls -i 查看節點編號 硬鏈接 ln&n…

    Linux干貨 2016-08-23
  • 學習宣言

    人所缺乏的不是才干而是志向,不是成功的能力而是勤勞的意志。

    Linux干貨 2016-10-30
  • ansible基礎應用

    ansible基礎 一、運維主要工作 ansible聚集以上功能于一身,能夠完整輕易的實現應用部署和批量命令功能,適用于主機數量不太多,再大的用puppet。 二、ansible特性 (1)模塊化:調用特定的模塊,完成特定任務; (2)基于python語言實現,由paramiko,PYYAML和JINJa2三個關鍵模塊組成 (3)部署簡單:agentless…

    Linux干貨 2017-01-04
  • 建立私有CA的方法

    建立私有CA的方法 建立私有CA的工具:     OpenCA     Openssl 證書申請及簽署步驟:     1,生成申請請求:     2,RA核驗;    &…

    Linux干貨 2016-09-19
  • Linux文本處理工具grep,egrep

    簡介:     grep即(Global search REgular expression and Print out the line)全局的搜索正則表達式并且打印顯示出來。     通俗點講:根據用戶指定的文本模式(搜索條件)對目標文件進行逐行搜索,顯示能匹配到的行。 &n…

    Linux干貨 2015-05-11
欧美性久久久久