PXE系列之一 PXE環境搭建

2021-05-01 00:24:00 字數 3172 閱讀 8657

(一)原理

簡單說來,pxe伺服器就是dhcp伺服器+tftp伺服器。網路啟動過程大概是這樣的(可能並不嚴謹):客戶端傳送動態獲得ip位址的廣播包到網路上,dhcp伺服器在收到該廣播包後,傳送給客戶端分配ip位址的回應包,客戶端收到回應包後設定自己的ip位址,然後從dhcp伺服器獲得啟動伺服器的ip位址(dhcp伺服器066選項,這就是tftp伺服器的ip位址)及啟動檔名(dhcp伺服器067選項,這裡的啟動檔名就是pxelinux.0或者支援pxe的grub4dos的grldr,當然,也可以是startrom.n12或者使用3com image edit建立的pxe啟動選單檔案,總之,它應該是一種由pxe啟動規範規定的固定格式的可執行檔案),然後客戶端到聯絡啟動伺服器(tftp伺服器)獲得啟動檔案並執行,這樣基本上就完成了pxe啟動過程。

在unix或者linux系統下,dhcp伺服器和tftp伺服器一般都是分開設定的,兩台伺服器甚至可以在兩台不同的機器上,其實windows下的設定也是一樣的,但在windows下,我們可以通過使用hanewin dhcp伺服器軟體或tftpd32乙個軟體就搞定(我個人推薦使用hanewin dhcp伺服器軟體,但tftpd32設定起來更簡單一些,就是效率有些低),詳細的設定方法請自己摸索,你只要知道,在設定pxe伺服器時,要設定好dhcp和tftp兩個伺服器,其中dhcp伺服器要設定啟動伺服器名(066選項)和啟動檔名(067選項)。

(二)實驗環境

區域網環境:乙個ibm刀片機,建設vmware infrastructure,虛擬乙個區域網,裡面新建多台虛擬機器

伺服器:以其中一台172.16.2.96作伺服器(dhcp和tftp服務都在它上面), 作業系統是centos 5.3

(三)過程

大致流程:

a. 客戶端通過網絡卡的 pxe 功能,從 dhcp 伺服器獲取 ip 位址; 

b. dhcp 伺服器將 "filename "pxelinux.0";" 引數中指定的檔案(pxelinux.0)推送給客戶端; 

c. 客戶端執行 pxelinux.0; 

d. pxelinux.0 程式讀取 tftp 伺服器上的配置檔案(通常是 '''/tftpboot/pxelinux.cfg/default''',

但是也可以根據客戶端機器的mac 位址單獨指定); 

e. 客戶端執行配置檔案中指定的動作。

(流程**網路:http://code.google.com/p/redhatsolution/wiki/rhel_pxe_installation_server)

下面詳細過程:

1. dhcp伺服器

a.先檢查系統有沒有帶dhcp伺服器,

#service dhcpd status, 如果顯示 "unrecognized service" 話就要安裝,否則轉到c.

b. 安裝dhcp

如果有外網,直接:

#yum install dhcpd

沒有外網的話,可以去網上找個rpm包來手動安裝(附錄有推薦**)

我下了個dhcp-3.0.5-18.el5.rpm, 安裝命令:

#rpm -ivh dhcp-3.0.5-18.el5.rpm

c. 配置

配置服務開機自動執行級別:

# chkconfig --level 345 dhcpd on

配置/etc/dhcpd.conf,我的該檔案內容如下,重要的地方有注釋:

2.  tftp伺服器

a. 先檢查系統是否安裝tftp server.

# rpm -qa | grep xinetd, 

# rpm -qa | grep tftp,  如果沒有某個包沒有,則轉到b安裝之,否則轉到c.

b. 安裝xinetd(執行tftp所必須的), tftp-server,建議同時安裝tftp客戶端(方便除錯tftp伺服器)

如果有外網,直接:

#yum install xinetd tftp-server tftp

沒有外網的話,可以去網上找這三個rpm包來手動安裝(附錄有推薦**)

找到後,按順序用rpm -ivh安裝。

c. 配置

配置服務開機自動執行級別:

#chkconfig --level 345 xinetd on

#chkconfig --level 345 tftp on

修改檔案: /etc/xinetd.d/tftp,我的檔案內容如下:

其中:-v 指定把日誌輸出到/var/log/messages中,

-m  /tftpboot/rules指定乙個對映規則檔案,把所有的tftp請求檔名按規則轉換;

當tftp伺服器為linux,無盤站引導windows時,由於大小寫敏感問題,需要轉換。

-s  指定tftp伺服器的根目錄,上面pxelinux/pxelinux.0的相對路徑就是相對/tftpboot而言

3. syslinux( 這個東西有pxe過程所要用到的引導檔案,類似於grub的功能)

a. 可以先檢查有沒有裝這個東西

# rpm -qa | grep syslinux,如果沒有轉b,否則直接到c.

c. 配置:

主要有三步:

其一、把pxelinux.0複製到/tftpboot的合適位置

其二、在/tftpboot下新建乙個pxelinux.cfg目錄

我的/tftpboot下目錄組織如下:

這裡/tftpboot/下的目錄可以自行組織,但pxeliux.0與pxelinux.cfg應在同一目錄下

4.  啟動。

(四)常見問題

1. tftp server問題

a.配置好tftp-server後,最好再裝個tftp客戶端(yum install tftp),分別從本地,別的機子上來

測試tftp-server是否是通的。

b. 如果是手動用rpm包安裝的,則要注意這兩個包是否是相容的,有的xinetd不支援tftp中的某些選項

同理,也要注意tftp-server的版本是否支援remap等功能

c. 使用好日誌,需要-v選項,日誌在/var/log/messages裡

d. 如果從外面連不上本機的tftp服務,應該檢查防火牆(一般情況開放upd 69埠,除非你另行設定tftp服務埠)

2. dhcp 問題

2. 關於syslinux的配置有很多內容,感興趣的話,可以參考以下**:

用Linux 搭建 PXE 網路引導環境

本例子中使用了centos7.4 minimal 系統,並且關閉了防火牆和selinux,並使用了dhcp tftp http和samba服務。假設pxe伺服器是192.168.4.104 tftp的根目錄在 var lib tftpboot下面,以後引數配置,均按此配置。關閉防火牆和selinux...

PXE預啟動執行環境的搭建

搭建dhcp位址伺服器 discovery offer request ack 乙個區域網內不能同時有兩台dhcp伺服器 一 裝包dhcp 二 修改配置檔案 etc dhcp dhcpd.conf 用到 r 命令調取example內容保留以下內容 subnet 192.168.4.0 netmask...

dhcp搭建 pxe安裝系統

grub加密 dhcp過程 續約租期 修改dhcpd.conf 配置檔案 pxe 預啟動執行環境,在作業系統之前執行 可用於遠端安裝,構建無盤工作站 工作模式 pxe client整合在網絡卡rom在中 在計算機引導時,bios把pxe client調入記憶體執行,獲取pxe server 配置,顯...