1. 程式人生 > >pxe網路安裝作業系統 原理與詳細過程

pxe網路安裝作業系統 原理與詳細過程

摘要:在實際工作中,我們經常會遇到這樣的情況:想要安裝Linux但是計算機不帶光碟機或軟碟機,或者是筆記本配置的非標準的軟碟機和光碟機,如1394介面,USB介面等,在Linux安裝時所引導的Linux核心一般都不會帶這些介面的驅動,所以也無法通過本地安裝Linux,此外,在一些場合,如機房,IT實驗室,工廠生產線,有大量的計算機需要同時安裝Linux,如果通過光碟機的方式一個個安裝,不僅效率低,也不利於維護。這是時候你就需要PXE的強大功能了。本文將就PXE的基本原理和工作方式進行簡要介紹。具體的時間過程需要比較豐富的網路知識。

1.作業系統安裝的流程

    通用流程:首先,bios啟動

,選擇作業系統的啟動(安裝)模式(此時,記憶體是空白的),然後根據相關的安裝模式,尋找作業系統的載入程式(不同的模式,對應不同的載入程式當然也對應著不同的載入程式存在的位置),載入程式載入檔案系統初始化(initrd)程式和核心初始映象(vmlinuz),完成操作系統安裝前的初始化;接著,作業系統開始安裝相關的系統和應用程式。

    硬碟安裝的流程:bios啟動——MBR尋找grub——grub程式讀取menu.list等配置檔案,找到核心啟動映象和相關初始化程式,安裝(或者啟動)。  

    PXE(Pre-boot Execution Environment)是由Intel設計,可以使計算機通過網路啟動的協議。協議分為client和server兩端,PXE client在網絡卡的ROM中,當計算機啟動時,BIOS把PXE client調入記憶體執行,並顯示出命令選單,經使用者選擇後,PXE client將放置在遠端的作業系統通過網路下載到本地執行。 

    pxe網路安裝的流程:bios啟動——pxe client中的程式進入記憶體,顯示命令選單——此程式開始尋找網路載入程式(bootstrap檔案,這個檔案的名字隨著發行版的不同而不同,在centos中,它是pxelinux.0)——載入程式讀取配置檔案pxelinux.cfg,獲得系統初始化的相關檔案資訊——系統啟動,開始進行安裝。

2.pxe模式安裝作業系統的原理

2.1安裝流程

       客戶機從自己的PXE網絡卡啟動,向本網路中的DHCP伺服器索取IP,並搜尋引導檔案的位置        DHCP伺服器返回分給客戶機IP以及bootstrap檔案的放置位置(該檔案一般是放在一臺TFTP伺服器上)
       客戶機向本網路中的TFTP伺服器索取bootstrap檔案        客戶機取得bootstrap檔案後之執行該檔案        根據bootstrap的執行結果,通過TFTP伺服器載入核心和檔案系統        進入安裝畫面, 此時可以通過選擇FTP,HTTP,NFS方式之一進行安裝 2.2流程小結 總結就是: 1)網絡卡的client              網絡卡rom                         尋找dhcp伺服器,由/etc/dhcp.conf得到ip和載入程式所在地點 2)有dhcp.conf(載入程式檔名)和tftp的配置(tftp跟路徑,裡面有載入程式和系統初始化程式),得到載入程式pxelinux啟動檔案的絕對路徑,執行載入程式,讀取啟動配置檔案pxelinux.cfg/default,得到作業系統初始化的兩個相關檔案 3)選擇安裝方式  客戶端廣播dhcp請求——伺服器相應請求,建立連結——由dhcp和tftp配置得到ip還有載入程式所在地點——客戶端下載載入程式並開始執行——載入程式讀取
2.3.相關檔案位置與內容: dhcp配置檔案/etc/dhcpd/dhcp.conf——ip管理與載入程式名稱 tftp配置檔案/etc/xinetd.d/tftp——tftp根目錄,和上面的載入程式名稱組成完整路徑 載入程式讀取的配置檔案/tftpboot/pxelinux.cfg/default——啟動核心其他

3.實戰過程

實戰環境;centos 6.3,kernel 2.6.32

3.1安裝前的準備:

軟硬體配置:網絡卡要支援pxe啟動,作業系統也要支援pxe啟動,另外有ftp伺服器用於儲存作業系統的安裝檔案,dhcp伺服器用於分配ip

3.2伺服器配置

1)配置dhcp伺服器

 由於PXE客戶機通常是尚未裝系統的裸機,因此為了和伺服器取得聯絡並正確下載相關引導檔案,需要預先配置好DHCP服務來自動分配地址並告知引導檔案的位置。

[[email protected] /]#yum -y install dhcp

[[email protected] /]#vim /etc/dhcp/dhcp.conf

ddns-update-style none;

default-lease-time 21600;

max-lease-time 43200;

option domain-name         "benet.com";

option domain-name-servers 8.8.8.8;

subnet 192.168.122.0 netmask 255.255.255.0 {

   option routers 192.168.122.1;

   option subnet-mask 255.255.255.0;

   range 192.168.122.100 192.168.122.200;

   next-server 192.168.122.1;   #指定TFTP伺服器的地址

   filename "pxelinux.0";     #指定PXE載入程式的檔名

   }

[[email protected] /]#service dhcpd start

註明:filename這一個選項很重要,它的作用是指明bootstrap所在的位置,一般是指向一個TFTP伺服器的某個目錄下。這裡是相對路徑,其中路徑的上半部分在的一個配置檔案之中。

2)配置tftp伺服器


TFTP服務的配置檔案是/etc/xinetd.d/tftp,RedHat9 預設安裝已經生成了該檔案,不過Centos沒有安裝這個軟體,需要安裝tftpserver,會自動生成這個配置檔案。

service tftp
{
        disable        = no   #這裡的yes需要改成no
        socket_type                = dgram
        protocol                = udp
        wait                        = yes
        user                        = root
        server                        = /usr/sbin/in.tftpd
        server_args        = -s /tftpboot
        per_source                = 11
        cps                                = 100 2
        flags                        = IPv4
}
註明:這個檔案基本上不用改動,但是需要注意的的是server_args= -s /tftpboot這一行,它的含義是將/tftpboot作為root目錄,這樣在dhcpd.conf中的filename一行就應該寫bootstrap的相對路徑: filename “pxelinux.0”,這是出於安全方面考慮的.如果你去掉了-s這個引數,那么就要在filename一行指出bootstrap的絕對路徑: filename “/tftpboot/pxelinux.0”.注意,這裡-s的內容會因為發行版的內容不同而不同,一般不用改動。

tftp伺服器的配置方法如下:

在網路協議中,TFTP協議大家應該是比較瞭解的。那麼今天我們則重點講解一下關於配置tftp伺服器的內容。TFTP(Trivial File Transfer Protocol簡樸檔案傳輸協議)是TCP/IP協議族中的一個用來在客戶機與伺服器之間進行簡單檔案傳輸的協議,提供不復雜、開銷不大的檔案傳輸服務。TFTP承載在UDP上,提供不可靠的資料流傳輸服務,不提供存取授權與認證機制,使用超時重傳方式來保證資料的到達。與FTP相比,TFTP的大小要小的多,TFTP是用來下載遠端檔案的最簡單網路協議,它基於UDP協議而實現。它使用的是UDP的69埠 。

配置tftp伺服器1、檢查系統是否安裝tftp服務

  1. [[email protected] ~]# rpm -qa | grep tftp  
  2. tftp-0.42-3.1.el5.centos  
  3. tftp-server-0.42-3.1.el5.centos 

假如沒有安裝可以掛載CentOS5.2光碟安裝

  1. [[email protected] ~]# mount -t auto /dev/cdrom /mnt/cdrom  
  2. mount: block device /dev/cdrom is write-protected mounting read-only  
  3. [[email protected] ~]# cd /mnt/cdrom/CentOS  
  4. [[email protected] CentOS]# rpm -ivh tftp-0.42-3.1.el5.centos.i386.rpm  
  5. [[email protected] CentOS]# rpm -ivh tftp-server-0.42-3.1.el5.centos.i386.rpm 

配置tftp伺服器2、修改啟動配置檔案

預設情況下TFTP服務是禁用的,所以要修改檔案來開啟服務。

修改檔案/etc/xinetd.d/tftp。主要是設定TFTP伺服器的根目錄,開啟服務。

修改後的配置檔案如下:

  1. service tftp  
  2. {  
  3. disable = yes 把這裡的yes改為no  
  4. socket_type = dgram  
  5. protocol = udp  
  6. wait = yes  
  7. user = root  
  8. server = /usr/sbin/in.tftpd   
  9. server_args = -s /tftpboot -c   
  10. per_source = 11  
  11. cps = 100 2   
  12. flags = IPv4    

這裡指定/tftpboot 為tftp伺服器的根目錄

引數-s指定chroot,-c指定了可以創立檔案。

配置tftp伺服器3、創立tftp根目錄,關閉防火牆,啟動tftp-server

  1. [[email protected] ~]# mkdir /tftpboot  
  2. [[email protected] ~]# chmod -R 777 /tftpboot  
  3. [[email protected] ~]# /etc/init.d/iptables stop  
  4. [[email protected] ~]# service xinetd restart 

重啟xinetd服務,因為TFTP服務受控與xinetd服務,xinetd是管服務的服務,它是不開埠的。

所以要驗證一下TFTP是否開啟69埠起來了:

  1. [[email protected] ~]# netstat -nlp  
  2. udp 0 0 0.0.0.0:67 0.0.0.0:* 5172/dnsmasq  
  3. udp 0 0 0.0.0.0:67 0.0.0.0:* 4745/dhcpd  
  4. udp 0 0 0.0.0.0:69 0.0.0.0:* 6171/xinetd  
  5. udp 0 0 0.0.0.0:994 0.0.0.0:* 4633/rpc.rquotad 

配置tftp伺服器4、測試tftp伺服器

  1. [[email protected] ~]# tftp 192.168.0.110  
  2. tftp>get  
  3. tftp>put  
  4. tftp>q 

3.3新增載入程式

Bootstrap對於支援網路安裝的作業系統,Bootstrap基本上都可以從安裝原始檔上找到,對於本例來說,centos的bootstrap就是cdrom:/isolinux/pxelinux.0我們把它們都拷貝到tftpboot下.

3.4編輯引導配置檔案

把centos第一張安裝光碟上images/pxeboot目錄下的initr.img和vmlinux也考到tftpboot/目錄下。在/tftpboot建立pxelinux.cfg目錄,用於放isolinux的配製檔案。光碟isolinux/下有一個isolinux.cfg檔案,把它拷貝到/tftpboot/pxelinux.cfg/目錄下並改名為default.下面為修改後的default檔案:

default linux
prompt 1
timeout 30 
label linux
kernel vmlinuz
append ks=ftp://192.168.122.1/centos6.3/ksftpsimple.cfg,initrd=initrd.img
這個Default 檔案很容易看懂,就是告訴啟動後使用那個核心引導,使用的配置檔案在什麼地方。

3.5開始安裝

1)確保:伺服器端剛才配置的幾個服務都處於開啟狀態;關閉防火牆;bios中選擇從網路啟動

2)剩下的步驟和從硬碟安裝相同

相關推薦

pxe網路安裝作業系統 原理詳細過程

摘要:在實際工作中,我們經常會遇到這樣的情況:想要安裝Linux但是計算機不帶光碟機或軟碟機,或者是筆記本配置的非標準的軟碟機和光碟機,如1394介面,USB介面等,在Linux安裝時所引導的Linux核心一般都不會帶這些介面的驅動,所以也無法通過本地安裝Linux,此外,

libpcap丟包原理分析及Fedora 9 核心2.6.25.14下安裝PF-RING的詳細過程

      看到網上有人講解fedora 9下安裝PF-RING的過程,都是幾年前的了,比較老了,我安裝PF-RING就是為了使用libpcap庫,libpcap的原理是通過socket將資料包從網絡卡 捕獲資料包,然後在提交給應用程式,和winpcap很大的區別是,libpcap採用的是2個緩衝區,核心類似

深度學習-卷積神經網路CNN-BN(Batch Normalization) 原理使用過程詳解

前言 Batch Normalization是由google提出的一種訓練優化方法。參考論文:Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shif

安裝數據庫詳細過程

oracle 數據庫 在運行中輸入netca 便會出來如上監聽程序名字可以自己改動選擇tcp/ip端口不能沖突,如有沖突自行修改查看服務是否開啟在運行在輸入service.msc本文出自 “大李子” 博客,轉載請與作者聯系!安裝數據庫詳細過程

LVM原理實現過程

LVM原理與實現過程一、什麽是LVM 不管是使用傳統的MBR分區方式或者是GPT的分區方式,在最後數據量逐漸變大的過程中都會出現空間不足的情況,但是若是使用將此分區的數據全部遷移至一個更大空間的磁盤上的遷移時間也是不可想象的,為了解決這個問題,LVM就誕生了。LVM(Logical volume Manag

iOS安裝和使用CocoaPods詳細過程

轉載自 https://blog.csdn.net/apple7758991/article/details/76585315 iOS安裝CocoaPods詳細過程 一、簡介 什麼是CocoaPods CocoaPods是OS X和iOS下的一個第三類庫管理工具,通過Coco

IPsec VPN之IKE原理交換過程

IKE原理 IKE定義:internet key exchange  密匙交換協議 IKE作用:用於在兩個peer之間協商建立IPsec-VPN通道 IKE功能:建立隧道 >>>協商引數 >>>身份認證 >>>金

Atitit 計算機網路體系結構原理實踐attilax總結 目錄 1. 計算機網路體系結構 1 1.1. Wmi 1 1.2. IPMIBMC 1 1.3. Tcp/udp 2 1.4. 代理

Atitit 計算機網路體系結構原理與實踐attilax總結   目錄 1.  計算機網路體系結構 1 1.1. Wmi 1 1.2. IPMI與BMC 1 1.3. Tcp/udp 2 1.4. 代理與反向代理 2 1.5. TCP/IP的體系結

centos安裝配置hadoop超詳細過程【轉】

轉自:http://www.centoscn.com/image-text/install/2014/1121/4158.html 1、叢集部署介紹 1.1 Hadoop簡介           Hadoop是Apache軟體基金會旗下的一個開源分散式計算平臺。以Hadoop分散式檔案系統

解除安裝安裝Node.jsnpm過程詳解

下面記錄一下在本地 Windwos 環境用 vagrant 搭建的虛擬機器(Homestaead)和生產環境阿里雲 CentOS 系統安裝 Node.js 的步驟,以及 npm 安裝依賴的不同之處。 使用原始碼編譯的方式安裝 node.js.首先將機子上的 Node.js

網站滲透測試原理詳細過程

滲透測試(Penetration Testing)目錄 零、前言 一、簡介 二、制定實施方案 三、具體操作過程 四、生成報告 五、測試過程中的風險及規避 參考資料 FAQ集 零、前言 滲透測試在未得到被測試方授權之前依據某些地區法律規定是違法行為。 這裡我們提供的所有滲透測試方法均為(假設為)合法的

Ubuntu下安裝VMware Tools的詳細過程

前一段時間博主在VMware虛擬機器上安裝了Ubuntu系統,如果還沒有安裝的同學可以參考博主上一篇文章:VMware Ubuntu安裝詳細過程。 猿友們都知道linux不太好用,如果你想將你主機Windows上的檔案或安裝包放到虛擬機器上,VMware Tools是必不可少的工具。 歡迎關注,相互學習討

在VMware安裝Ubuntu系統的詳細過程

1、Vmware下的Ubuntu下載安裝 VMware虛擬機器我是早就裝好了的,按照下面的連結下載安裝Ubuntu系統,親測有效。 2、VMware Tools的安裝 為了能夠從兩個系統(Windows、Ubuntu)之間實現通過拖拽共享檔

WIN7下安裝Oracle 10g 的詳細過程以及有關問題的解決(轉)

安裝Oracle10的時候出錯 錯誤描述如下: "無法定位程式輸入點GetProcessImageFileNameW 於動態連結庫PSAPI.DLL上""ORA-12546 "因為oracle 10g暫時沒有與win7相容的版本,我們可以通過對安裝軟體中某些檔案的修改

神經網路二之神經網路反向傳播原理python程式設計實現

技術交流qq群: 659201069 誤差   樣本資料的真實值與神經網路的輸出值之間的差值稱為誤差,當然一般不會直接使用直接的差值,常用的有迴歸演算法的均方差、分類的交叉熵,這方面不影響我們來討論神經網路的反向傳播原理與過程,所以不做過多討論。

《密碼編碼學網路安全》原理實踐筆記(一)

第一章: 安全服務有:同等實體i認證、資料來源認證、訪問控制、保密性、流量保密性、資料完整性、不可否認性、可用性 安全機制有:加密、資料簽名、訪問控制、資料完整性、認證交換、流量填充、路由控制、公證 關鍵術語:訪問控制、拒絕服務、被動威脅、主動威脅、加密、重播、認證、完整

redhat linux as 5 安裝oracle 10g的詳細過程(已經做過測試)

#!/bin/bash # # chkconfig: 2345 91 19 # description: starts the oracle listener and instance status() {    pid=`ps -ef | grep ora_pmon | grep -v grep | aw

Spring Session實現Session管理的原理詳細配置

原理請參考這篇文章很詳細:點選檢視 以下是我的在開發中使用配置 如果是maven工程,加入如下依賴: <!-- spring-session --> <dependency> <groupId>

Tomcat安裝CA證書(詳細過程篇)

以Verisign 測試證書為例1.建立一個本地證書:C:\j2sdk1.4.2_05\bin>;keytool -genkey -alias tomcat -keyalg RSA -keystore keystore輸入keystore密碼:  12345678您的

解除安裝mysql資料庫(詳細過程附截圖)

如何完全解除安裝mysql8.0.12資料庫 Mysql資料庫的安裝比較簡單,但其解除安裝卻比較麻煩。不管是使用用第三方的電腦管家,亦或是是用控制面板的程式和功能,想要完全解除安裝Mysql都不太方便,下面介紹下如何簡單的即可解除安裝乾淨Mysql資料庫的