1. 程式人生 > >PXE支持系統安裝

PXE支持系統安裝

linux

PXE支持系統安裝

在企業中經常會用到的一種自動安裝系統的方法就是pxe安裝,他是怎麽實現的呢。

PXE全稱Preboot Excution Environment中文翻譯:預啟動執行環境,是由Intel公司研發基於Client/Server 的網絡模式,支持遠程主機通過網絡從遠端服務器下載映像,並由此支持通過網絡啟動操作系統。PXE可以引導和安裝Windows,linux等多種系統。

要完成這項工作需要多種服務同時完成,例如dhcp,tftp等服務,他的工作原理是:

Client向PXE Server 上的DHCP 發送IP 地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),如果合法則返回Client的IP地址,同時將啟動文件pxelinux.0 的位置信息一並傳送給Client。

Client向PXE Server 上的TFTP發送獲取pxelinux.0請求消息,TFTP接收到消息之後再向Client發送pxelinux.0大小信息,試探Client是否滿意,當TFTP 收到Client發回的同意大小信息之後,正式向Client發送pxelinux.0。

Client 執行接收到的pxelinux.0 文件

Client向TFTP Server 發送針對本機的配置信息文件(在TFTP 服務的

pxelinux.cfg 目錄下),TFTP將配置文件發回Client ,繼而Client 根據配置文件執行後續操作。

Client 向TFTP 發送Linux 內核請求信息,TFTP 接收到消息之後將內核文件

發送給Client

Client 向TFTP 發送根文件請求信息,TFTP 接收到消息之後返回Linux根文件系統

Client啟動Linux內核

Client下載安裝源文件,讀取自動化安裝腳本


首先準備一下:關閉防火墻和selinux,DHCP服務器設置靜態ip

·yum 安裝DHCP,tftp-server,syslinux

因本人在虛擬機上實驗,兩個虛擬機一個centos6一個centos7,7當服務器端6為DHCP服務器,還有一個實驗開機。



·在centos7上需要把http的相關功能啟動。

systemctl enable httpd       ---> 開機啟動
systemctl start httpd        ---> 啟動服務
mkdir /var/www/html/centos/7     -->創建目錄
mount /dev/sr0 /var/www/html/centos/7   -->掛載光盤在該目錄上

這樣就有了centos7的yum源了。(如果需要安裝centos其他版本掛載其他光盤就好)

接下來要準備kickstart文件(在每個系統家目錄下有anaconda-ks.cfg文件,該文件為世紀路安裝系統的過程可以把它拿過來修改當啟動文件)

cp ~/anaconda-ks.cfg /var/www/html/ks/centos7.cfg   -->把該文件拷貝到ks目錄下(ks自己創建的目錄)

跟上面一樣,若需要其他系統啟動添加其他.cfg結尾文件。



·重點我感覺在tftp服務器端配置:

mkdir /var/lib/tftpboot/pxelinux.cfg/   -->tftpboot為tftp默認目錄pxelinux.cfg為自己創建
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /misc/cd/isolinux/isolinux.cfg
/var/lib/tftpboot/pxelinux.cfg/default

安裝syslinux包時有兩個文件是必要的(雖然都是必要的。。。。)/usr/share/syslinux{pxelinux.0,menu.c32}這兩個文件需要放在tftp默認目錄下(tftpboot下)。

這樣tftp裏面啟動文件也有了initrd.img和vmlinuz文件也有了這樣差不多就齊全了。

差不多是這個樣子:

/var/lib/tftpboot/
├── initrd.img
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│      └── default
└── vmlinuz



·在centos6裏面配置了一個dhcp服務端,在配置文件裏面

subnet 192.168.192.0 netmask 255.255.255.0 {
        range 192.168.192.100 192.168.192.200;
    option routers 192.168.37.254;(客戶端自動獲取ip時分配默認網關,下面dns一樣)
    option domain-name-servers 8.8.8.8 8.8.4.4;
    option domain-name "magedu.com";(域名)
    filename "pxelinux.0";
    next-server 192.168.100.100;
}

subnet後面跟上dhcp地址的網段,range為範圍,其他的都不是很重要,但要pxe功能的實現少不了兩行命令:

filename "pxelinux.0";

next-server 192.168.100.100; 指向下一跳地址(也就是tftp的地址)

這樣就齊全了。可以通過網絡啟動來自動安裝系統了。

(其中ks文件路徑指向需註意,這裏就不涉及了)




本文出自 “mlon客” 博客,請務必保留此出處http://13154101.blog.51cto.com/13144101/1970786

PXE支持系統安裝