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 00:23
下一篇 2017-01-10 09:20

相關推薦

  • N25-第六周作業

    第六周 請詳細總結vim編輯器的使用并完成以下練習題 文本編輯器: vim:     模式化的編輯器         基本模式:          &…

    Linux干貨 2016-12-28
  • 使用replicate-rewrite-db 實現復制映射 + Replicate_Wild_Do_Table實現復制過濾

    實驗環境:CentOS7.2 + MySQL5.7 node1(192.168.2.171)和node2(192.168.2.172) 為兩臺不同業務的MySQL服務器。 業務方有個需求,需要將node1上的employees庫的departments 、dept_manager 這2張表同步到 node2 的 hellodb 庫下面。 node1的empl…

    Linux干貨 2017-05-06
  • linux文件系統(ext2\ext3\ext4,xfs,btrfs…)的介紹[轉載]

    ext2\ext3\ext4,xfs,btrfs 都是針對服務器系統越來越高效實用的日志文件系統 日志文件系統:    日志文件系統是一種即使在斷電或者是操作系統崩潰的情況下保證文件系統一致性的途徑。XFS對文件系統元數據提供了日志支持。當文件系統更新時,元數據會在實際的磁盤塊被更新之前順序寫入日志。XFS的日志被保存在磁盤塊的…

    Linux干貨 2017-01-31
  • 學習linux第四天

    Linux學習第4天   Linux內部命令和外部命令    內部命令:實際上是shell程序的一部分,其中包含的是一些比較簡單的linux系統命令,這些命令由shell程序識別并在shell程序內部完成運行,通常在linux系統加載運行時shell就被加載并駐留在系統內存中。內部命令是寫在bashy源碼里面的,其執行速度比外部…

    Linux干貨 2016-10-29
  • 配置NTP服務器

    配置NTP時間服務器 一.安裝ntp軟件 1.檢查是否安裝了ntp相關包。 rpm -qa | grep ntp 2.安裝ntp軟件。 yum -y install ntp 二.參數講解 ignore  :關閉所有的 NTP 聯機服務 nomodify:客戶端不能更改服務端的時間參數,但是客戶端可以通過服務端進行網絡校時。 notrust :客戶端…

    Linux干貨 2016-10-30
  • 配額、RAID、軟RAID以及LVM管理

    磁盤配額允許控制用戶或者組織對磁盤的使用,它能防止個人或者組織使用文件系統中超過自己使用的部分,或者造成系統完全擁堵。配額必須由root用戶或者具有root權限的用戶啟用和管理。 硬RAID以及軟RAID :RAID是Redundant Array of Independent Disks的簡寫,即獨立硬盤冗余陣列,簡稱磁盤陣列。通過實現的方式不同…

    Linux干貨 2016-11-23
欧美性久久久久