1. 程式人生 > >PXE預啟動執行環境

PXE預啟動執行環境

PXE

1 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系列系統等。

2 pxe表現形式: 

PXE最直接的表現是,在網路環境工作站可以省去硬碟,但又不是通常所說的無盤站的概念,因為使用該技術的PC在網路方式下的執行速度要比有盤PC快3倍以上。當然使用PXE的PC也不是傳統意義上的TERMINAL終端,因為使用了PXE的PC並不消耗伺服器的CPU,RAM等資源,故伺服器的硬體要求極低。

3 PXE啟動原理

當計算機引導時,BIOS把 PXE Client 調入記憶體中執行,然後由 PXE Client 將放置在遠端的檔案通過網路下載到本地執行

4 啟動過程

PXE是RPL的升級品,它是Preboot Execution Environment的縮寫。它們的不同之處在於RPL是
靜態路由
,而PXE是動態路由。其通訊協議採用TCP/IP,與Internet連線高效而可靠,PXE無盤工作站的啟動過程分析如下:¨ 客戶端個人電腦開機後, 在 TCP/IP Bootrom 獲得控制權之前先做自我測試。¨ Bootprom 送出 BOOTP/DHCP 要求以取得 IP。¨ 如果伺服器收到個人電腦所送出的要求, 就會送回 BOOTP/DHCP 迴應,內容包括客戶端的 IP 地址, 預設閘道器, 及開機映像檔案。否則,伺服器會忽略這個要求。¨ Bootprom 由 TFTP 通訊協議從伺服器下載開機映像檔案。¨ 個人電腦通過這個開機映像檔案開機, 這個開機檔案可以只是單純的開機程式也可以是作業系統。¨ 開機映像檔案將包含 kernel loader 及壓縮過的 kernel,此 kernel 將支援NTFS root系統。¨ 遠端客戶端根據下載的檔案啟動機器。

下面讓我們用PXE網路載入程式來安裝一個虛擬機器吧:得意

1.install  #安裝
yum install httpd dhcp tftp-server syslinux -y
httpd        ##共享安裝資源
dhcp        ##分配ip以及讓客戶主機獲取pxelinux.0檔案
pxelinux.0    ##預安裝環境標頭檔案,用來指定讀取後續檔案的程式
tftp-server    ##提供tftp協議,令客戶主機可以讀取到預安裝環境
syslinux    ##提供pxelinux.0檔案
2.啟動服務:

systemctl stop firewalld
systemctl disable firewalld
systemctl start httpd
systemctl enable httpd
##啟用tftp服務
vim /etc/xinetd.d/tftp
14         disable= no
systemctl restart xinetd
chkconfig --list
xinetd based services:
    chargen-dgram:     off
    chargen-stream:    off
    daytime-dgram:     off
    daytime-stream:    off
    discard-dgram:     off
    discard-stream:    off
    echo-dgram:        off
    echo-stream:       off
    tcpmux-server:     off
    tftp:              on        ##tftp服務開啟
    time-dgram:        off
    time-stream:       off
2.1##啟用dhcp服務
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
option domain-name "example.com";    ##客戶主機域名
option domain-name-servers 172.25.254.254; ##客戶主機獲得到的dns
default-lease-time 600;            ##預設租約期
max-lease-time 7200;            ##最長租約期
log-facility local7;            ##日誌級別
subnet 172.25.254.0 netmask 255.255.255.0 {    ##網段,子網掩碼
  range 172.25.254.60 172.25.254.70;    ##ip地址池
  option routers 172.25.254.250;    ##客戶主機獲得到的閘道器
  filename "pxelinux.0";        ##客戶主機獲得到的預安裝環境標頭檔案
  next-server 172.25.254.100;        ##指定標頭檔案所在主機的ip
}

systemctl start dhcpd
systemctl enable dhcpd
3.設定共享檔案
##製作安裝源
mkdir  /var/www/html/rhel7.0
mkdir  /iso
mv /root/rhel-server-7.0-x86_64-dvd.iso  /iso/
mount /iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0/
vim /etc/rc.d/rc.local
mount /iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0/
chmod +x /etc/rc.d/rc.local
##製作預安裝環境

cp /var/www/html/rhel7.0/isolinux/*  /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
systemctl restart xinetd
##設定自動化部署
yum install system-conifig-kickstart
system-config-kickstart        ---->/var/www/html/rhel7.0.cfg

vim /var/lib/tftpboot/pxelinux.cfg/default

label autoinstall    ##選項標籤
  menu label ^Autoinstall RHEL7.0    ##標題
  kernel vmlinuz            ##啟動的核心檔案
  append initrd=initrd.img repo=http://172.25.254.100/rhel7.0 ks=http://172.25.254.100/rhel7.0.cfg
         ##初始化映象         ##安裝資源                ##自動安裝指令碼
實驗操作:
  
   PXE網路載入程式:
    1  yum install httpd dhcp tftp-server syslinux -y
    2  systemctl stop firewalld.service
    3  systemctl disable firewalld.service
    4  systemctl start httpd
    5  systemctl enable httpd
    6  vim /etc/xinetd.d/tftp
    7  systemctl restart xinetd.service
    8  chkconfig --list


有映象操作:   製作預安裝環境

    1  vim /etc/rc.d/rc.local     2  chmod +x /etc/rc.d/rc.local     3  df     4  scp /var/www/html/source7.0/isolinux/* [email protected]:/var/lib/tftpboot/     9  cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf    10  vim /etc/dhcp/dhcpd.conf    11  systemctl restart dhcpd    12  systemctl enable dhcpd    13  cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/    14  mkdir /var/lib/tftpboot/pxelinux.cfg    15  cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default    16  systemctl restart xinetd    設定自動化部署    17  yum install system-conifig-kickstart    18  vim /var/lib/tftpboot/pxelinux.cfg/default

開啟dhcp服務,並部署dhcp服務

製作安裝源:

vim /var/lib/tftpboot/pxelinux.cfg/default


安裝一個虛擬機器:


此時該虛擬機器需要從dhcp伺服器上獲取到一個動態ip,然後kickstart 會告訴他接著去訪問什麼檔案,然後通過tftp協議從安裝源裡獲取到映象從而完成虛擬機器的pxe安裝


相關推薦

PXE啟動執行環境

PXE1 pxe是什麼?        PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網路模式,支援工作站通過網路從遠端伺服器下載映像,並由此支援通過網路啟動作業系統,在啟動

pxe啟動執行環境

mount 文件內容 stat jpg ado splash centos7 ipv4 rep # pxe服務器 pxe:(preboot exe

linuxPXE啟動執行環境

eas vim pxelinux 技術分享 步驟 shadow 安裝軟件 -c name 聲明:我們這裏用kvm做測驗。centos7u3的系統PXE+kickstart 全自動安裝操作系統。原理圖:註釋:圖中有錯誤,vmlinuz文件。抱歉!!各位客戶端尋找dhcp服務

LinuxserverJboss執行環境搭建步驟和開機自己主動啟動腳本編寫執行

web bin 路徑 for scrip 環境變量 pro app 版本號 Jboss執行環境:Linux+Jdk+Jboss+jsp系統Jboss軟件說明:相似於Tomcat。就是一個跑Jsp系統的環境,他的網站路徑跟Tomcat相似,Tomcat存放網站文件到web

預備JS執行環境執行腳本

turn tps pre urn itl func function () mis page.evaluateOnNewDocument(pageFunction, ...args) pageFunction <function|string> Functio

【netcore基礎】ubuntu 16.04 搭建.net core 2.1 linux 執行環境 nginx反向代理 supervisor配置自啟動 【.NetCore學習】ubuntu16.04 搭建.net core mvc api 執行環境 .Net Core 部署到Ubuntu 16.0

今天來整理下netcore在linux(ubuntu)上的執行環境搭建   對應版本 ubuntu 16.04 .net core 2.1 nginx version: nginx/1.10.3 (Ubuntu) supervisor Supervisorhttp://super

依賴JAVA執行環境的軟體 啟動失敗時 無需重啟 環境變數立即生效的辦法

我們在工作中使用一些軟體例如STARTEAM,需要先安裝JAVA環境, 然後配置JAVA環境變數,之後重啟電腦。 但是日常工作中會發現,依賴JAVA執行環境的軟體開啟有時會報錯, 提示就是JAVA環境失敗,一般情況下再次重啟或登出電腦就好了, 但是這樣比較麻煩,直接在CMD執行如下兩

1.3 Ruby On Rails執行環境安裝 建立並啟動專案

一. Ruby On Rails環境安裝 1、開啟Ubuntu系統(Windows系統開啟虛擬機器登入到Ubuntu系統;IOS系統在終端開啟rails-va資料夾cd rails-va,輸入vagrant up,再輸入vagrant ssh),更新源列表 vagrant@vag

解決瀏覽器訪問Applet頁面時不能啟動JRE執行環境

發現瀏覽器打不開含有Applet的頁面: your security settings have blocked an application from running with an out-of-date or expired version of java 以下是解

第8章2節《MonkeyRunner源代碼剖析》MonkeyRunner啟動執行過程-解析處理命令行參數

path 轉載 iss 命令 code rst pri bsp ack MonkeyRunnerStarter是MonkeyRunner啟動時的入口類,由於它裏面包括了main方法.它的整個啟動過程主要做了以下幾件事情:解析用戶啟動MonkeyRunner時從命令行傳輸

python 004 執行環境對比

為什麽 返回值 logs code ini dmi spa 執行 python 對比:os.system os.popen subprocess.Popen subprocess.call 為什麽要搞這麽多? # --*--encoding: utf-8--*-- im

第四章:執行環境與作用域

logs 執行 引用傳遞 按值傳遞 ons fun col func clas 函數中對象的值是按值傳遞的 !(function () { //對象的按值傳遞or按引用傳遞在函數中 function setName(obj) {

javascript篇-----執行環境和作用域

uil 聲明變量 swap 調用函數 不能訪問 left with gin 初始   執行環境是javascript中最為重要的一個概念。執行環境定義了變量或函數有權訪問的其他數據,決定了它們各自的行為。每個執行環境都有一個與之關聯的變量對象,環境中定義的所有變量和函數都保

執行環境,作用域

復雜 colors tab 程序 str chang 閉包 將不 ges 在javascript的學習中,執行環境、作用域是2個非常非常重要和基本的概念,理解了這2個概念對於javsacript中很多腳本的運行結果就能明白其中的道理了,比如搞清作用域和執行環境對於閉包的理

執行環境、作用域、作用域鏈、調用對象、閉包

作用 嵌套 頂部 擁有 函數 新的 保持 綁定 全局 執行環境 :  每調用一個函數時(執行函數時),系統會為該函數創建一個封閉的局部的運行環境,即該函數的執行環境。函數總是在自己的執行環境中執行,如讀寫局部變量、函數參數、運行內部邏輯。創建執行環境的過程包含了創建

執行環境及作用域

存在 com logs 但是 進入 tps 找不到 圖片 之前 主要的是執行環境和作用域鏈。 執行環境 執行環境定義了變量或函數有權訪問的其他數據,每個函數都有一個執行環境,每個執行環境都有一個與之關聯的變量對象,環境中定義的所有變量和函數都保存在這個變量對象中,但是我們編

js的閉包中關於執行環境和作用鏈的理解

style 帶頭結點 理解 result name http script 不同 參數 首先講一講執行環境:   執行環境按照字面上來理解就是指目前代碼執行所在的環境。 當JavaScript代碼執行的時候,會進入不同的執行上下文,這些執行上下文會構成了一個執行上下文棧(E

Javascript執行環境、作用域鏈

post 所在 不存在 其他 後臺 對象 AC src tex 一、執行環境 執行環境(也叫做執行上下文,Execution Context)是Javascript中最為重要的一個概念。執行環境定義了變量或函數有權訪問其他數據,決定了它們各自的行為。每個執行環境都有

javascript 執行環境,作用域鏈和閉包

strong str AI UNC 形參 場景 我們 引用 pos 首先看下這條語句: (function($) {…})(jQuery); 1.原理: function(arg){…}這就定義了一個匿名函數,參數為arg 而調用函數時,

web項目啟動執行方法

ets 創建 web web項目 contex web服務器 sce 執行 ring   近期在項目中需要將用戶在web啟動時就查詢出來,當作緩存使用。 一、首先需要實現 ServletContextListener 接口 1 public class UserCach