pxe+kickstart部署多個版本的Linux操作系統(上)---原理篇

来源:http://www.cnblogs.com/sunhongleibibi/archive/2017/11/17/7851382.html
-Advertisement-
Play Games

PXE概述: PXE(Pre-bootExecution Environment),預啟動執行環境 通過網路介面啟動電腦 支持工作站通過網路從遠端伺服器下載映像,並由此支持通過網路啟動操作系統,在啟動過程中,終端要求伺服器分配IP地址,再用TFTP協議下載一個啟動軟體包到本機記憶體中執行,由這個啟動 ...


PXE概述:

  • PXE(Pre-bootExecution Environment),預啟動執行環境
  • 通過網路介面啟動電腦
  • 支持工作站通過網路從遠端伺服器下載映像,並由此支持通過網路啟動操作系統,在啟動過程中,終端要求伺服器分配IP地址,再用TFTP協議下載一個啟動軟體包到本機記憶體中執行,由這個啟動軟體包完成終端基本軟體設置,從而引導預先安裝在伺服器中的終端操作系統。
  • 此協議分為 Client端和 Server 端:
        PXE Client會調用網際協議(IP)、用戶數據報協議(UDP)、動態主機設定協議(DHCP)、小型文件傳輸協議(TFTP)等網路協議(用於下載Linux內核和根文件系統)。         PXE Client存放在網卡的 ROM 中(進行 PXE 安裝的必要條件:設備具有支持PXE的網卡(NIC))。當電腦引導時,BIOS 把 PXE Client 調入記憶體中執行,然後由 PXE Client 將放置在遠端的文件通過網路下載到本地運行。    PXE Server可以抽象理解為提供pxe啟動文件的伺服器(關於PXE Server網路中並未有明確說明,有見解的朋友請指教)  

PXE的工作過程:

PXE協議運行的詳細工作流程,請參考以下圖文描述: 1. PXE Client 從自己的PXE網卡啟動,向本網路中的DHCP伺服器請求IP; 2. DHCP 伺服器返回分配給客戶機的IP 以及PXE文件的放置位置(該文件一般是放在一臺TFTP伺服器上) ; 3. PXE Client 向本網路中的TFTP伺服器索取pxelinux.0 文件(在 PXE Client 的 ROM 中,已經存在 TFTP Client 4. PXE Client 取得pxelinux.0 文件後之執行該文件; 5. 根據pxelinux.0 的執行結果,通過TFTP伺服器載入內核和文件系統 ; 6. 進入安裝畫面, 此時可以通過選擇HTTP、FTP、NFS 方式之一進行安裝
      •  圖:PXE工作流程

 

什麼是KickStart:

KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,並生成一個名為ks.cfg的文件;在其後的安裝過程中(不只局限於生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程式會首先去查找KickStart生成的文件,當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以只告訴安裝程式從何處取ks.cfg文件,然後去忙自己的事情。等安裝完畢,安裝程式會根據ks.cfg中設置的重啟選項來重啟系統,並結束安裝。
  • PXE+Kickstart 無人值守安過程如下:

  • PXE Client向DHCP發送請求
  PXE Client從自己的PXE網卡啟動,通過PXE BootROM(自啟動晶元)會以UDP(簡單用戶數據報協議)發送一個廣播請求,向本網路中的DHCP伺服器索取IP。
  • DHCP伺服器提供信息
  DHCP伺服器收到客戶端的請求,驗證是否來至合法的PXE Client的請求,驗證通過它將給客戶端一個“提供”響應,這個“提供”響應中包含了為客戶端分配的IP地址、pxelinux啟動程式(TFTP)位置,以及配置文件所在位置。
  • PXE客戶端請求下載啟動文件
  客戶端收到伺服器的“回應”後,會回應一個幀,以請求傳送啟動所需文件。這些啟動文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
  • Boot Server響應客戶端請求並傳送文件
  當伺服器收到客戶端的請求後,他們之間之後將有更多的信息在客戶端與伺服器之間作應答, 用以決定啟動參數。BootROM由TFTP通訊協議從Boot Server下載啟動安裝程式所必須的文件(pxelinux.0、pxelinux.cfg/default)。default文件下載完成後,會根據該文件中定義的引導順序,啟動Linux安裝程式的引導內核。
  • 請求下載自動應答文件
  客戶端通過pxelinux.cfg/default文件成功的引導Linux安裝內核後,安裝程式首先必須確定你通過什麼安裝介質來安裝linux,如果是通過網路安裝(NFS, FTP, HTTP),則會在這個時候初始化網路,並定位安裝源位置。接著會讀取default文件中指定的自動應答文件ks.cfg所在位置,根據該位置請求下載該文件。 這裡有個問題,在第2步和第5步初始化2次網路了,這是由於PXE獲取的是安裝用的內核以及安裝程式等,而安裝程式要獲取的是安裝系統所需的二進位包以及配置文件。因此PXE模塊和安裝程式是相對獨立的,PXE的網路配置並不能傳遞給安裝程式,從而進行兩次獲取IP地址過程,但IP地址在DHCP的租期內是一樣的。
  • 客戶端安裝操作系統
  將ks.cfg文件下載回來後,通過該文件找到OS Server,並按照該文件的配置請求下載安裝過程需要的軟體包。 OS Server和客戶端建立連接後,將開始傳輸軟體包,客戶端將開始安裝操作系統。安裝完成後,將提示重新引導電腦。  

PXE + KickStart安裝的條件:

  1. DHCP伺服器:為 PXE-client 分配 IP ,獲得安裝程式文件位置
  2. TFTP伺服器:傳輸安裝文件、內核、菜單文件等給 PXE-client
  3. Xinetd: TFTP服務超級守護進程, 用於喚醒TFTP服務;
  4. syslinux: 提供pxelinux.0文件, 此文件用於引導系統, 相當於bootloader;
  5. Kickstart:生成的ks.cfg配置文件
  6. HTTP/NFS/FTP 服務中的任意一種,用於傳送安裝源文件給 PXE-client
   不同傳輸協議需要安裝的服務如下:
  1. ftp: yum -y install dhcp tftp-server xinetd syslinux vsftpd  ftp
  2. http: yum -y install dhcp tftp-server xinetd syslinux httpd
  3. nfs:yum -y install dhcp tftp-server xinetd syslinux vsftpd nfs-utils rpcbind
    相關知識鏈接: 1.http://www.cnblogs.com/fiberhome/articles/6418320.html 2.http://blog.zhubiaook.com/linux/2017/09/17/PXE+DHCP+Apache+KickStart/ 3.http://blog.csdn.net/oWangChen1234567/article/details/78015737?locationNum=5&fps=1 4.https://my.oschina.net/VASKS/blog/389539

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Oracle導入備份 輸入imp 用戶名/密碼@資料庫名 file=導入的.dmp文件路徑 full=y 按回車. Oracle導出備份 輸入exp 用戶名/密碼@資料庫名 file=導出的.dmp文件存放的路徑 owner=用戶名 按回車 成功終止導出,沒有出現警告. ...
  • 既然是開篇,那就來閑話叨一叨FPGA吧。 掰掰指頭,結識FPGA估計有5年多。作為嵌入式工程師,每天的日常充斥著ARM、DSP、操作系統、通訊、匯流排等耳熟能詳的辭彙,日日徜徉其中,而這當中,最特立獨行的就是FPGA。FPGA沒有形狀,但又可以捏出任何形狀,相對於MCU/CPU開發來說,FPGA至少意 ...
  • 記憶體對齊問題之大小端對齊問題 郝東東寫 所謂的大小端問題,也就是位元組序。處理器(CPU)對記憶體數據操作有兩種模式:讀和寫。這樣,處理器在讀寫一個多位元組記憶體的時候,高位元組是在記憶體的高地址還是低地址就是一個問題,不同的大小端模式可能有不同的結果。 當處理器讀寫指令針對數據不一致的時候就涉及到大小端問題, ...
  • 第1章 NFS介紹 1.1 NFS的概念 NFS是Network File System的縮寫,即網路文件系統,它的主要功能是通過網路(一般是區域網)讓不同的主機系統之間可以共用文件或目錄。NFS客戶端(一般為應用伺服器如web)可以通過mount掛載的方式將NFS伺服器端共用的數據目錄掛載到NFS ...
  • 一、 定義: 1. Apache Apache HTTP伺服器是一個模塊化的伺服器,可以運行在幾乎所有廣泛使用的電腦平臺上。其屬於應用伺服器。Apache支持支持模塊多,性能穩定,Apache本身是靜態解析,適合靜態HTML、圖片等,但可以通過擴展腳本、模塊等支持動態頁面等。 (Apche可以支持 ...
  • 俗話說,沒圖說個JB。好我馬上上圖 提醒:我在這裡只是提供一個思路過程,希望可以幫到你,同時我也做一個記錄,有任何問題歡迎 0、0、:1870194664 威信 :gklbb520 註意:在安裝之前必須要root,小米手機root可能要先解BL鎖 環境:linux deploy 、busybox p ...
  • ch /etc/ chmod 644 passwd group shadow chmod 400 gshadow cd ssh chmod 600 moduli ssh_host_dsa_key ssh_host_key ssh_host_rsa_key chmod 644 ssh_config s ...
  • 說明:系統版本為 Linux version 3.10.0-327.el7.x86_64 step1. 查看現有磁碟信息,可以看出根分區有45G step2. 查看新增加的磁碟信息 step3. 根據以上信息,對新增加的磁碟進行分區 step4. 創建物理捲 step5. 查看物理捲信息 step6 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...