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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...