1. 程式人生 > >網絡啟動一:之IPXE初識及其簡單應用

網絡啟動一:之IPXE初識及其簡單應用

releases 依賴包 放置 art 配置 ces sdi ftw bootsect

IPXE初識及其簡單應用

最近迷上了網絡啟動這回事,查詢了部分文檔,做了基本測試和總結,以供以後參考。


概述:

PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網絡啟動操作系統,在啟動過程中,終端要求DHCP服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成終端(客戶端)基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。PXE可以引導多種操作系統,如:

Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系統等。

IPXE 官方網址 http://ipxe.org/

gPXE/iPXE是PXE的擴展版,支持HTTP協議,可以通過http、ISCSI SAN、Fibre Channel SAN via FCoE AoE SAN wireless network Infiniband network等方式啟動

iPXE由gPXE分支而來(fork),功能更豐富。

iPXE is free, open-source software licensed under the GNU GPL (with some portions under GPL-compatible licences)


使用過程:winboot網絡啟動windows系列PE

環境:PXE主機:Centos6.9 min + dhcp + tftp 主機IP 172.16.30.73

http主機 http://172.16.30.121/win10/boot window10PE目錄/opt/nfsdata/win10/boot


源碼下載

源碼下載位置統一放置到/usr/local/src目錄。

http://git.ipxe.org/ipxe.git

IPXE:

1.依賴包安裝,具體安裝方式略過。

yum install gcc binutils make perl liblzma mtools mkisofs xz-devel

2.解包

cp ipxe-79e81f8.tar.gz /usr/local/src

cd /usr/local/src

tar zxvf ipxe-79e81f8.tar.gz

cd ipxe-79e81f8


3.編譯

make

具體編譯參數,請參考buliding介紹 http://ipxe.org/buildcfg


4.Wimboot:

http://git.ipxe.org/releases/wimboot/wimboot-latest.zip

cd /usr/local/src

unzip wimboot-latest.zip


5.安裝dhcp tftp xinetd 服務

yum install dhcp tftp-server xinetd


5.1配置dhcp服務。

vi /etc/dhcp/dhcpd.conf

------------------

option client-arch code 93 = unsigned integer 16;


default-lease-time 600;

max-lease-time 7200;

#ddns-update-style interim;


subnet 172.16.30.0 netmask 255.255.255.0 {

range 172.16.30.50 172.16.30.70;

option routers 172.16.30.73;


class "pxeclients" {

match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";


next-server 172.16.30.73;

if option client-arch != 00:0 {

filename "ipxe.efi";

} else {

#filename "pxelinux/pxelinux.0";

filename "undionly.kpxe";

}

}

server-name "BobWong";

}

-----------------

5.2修改tftp配置

sed -i '/disable/s/yes/no/' /etc/xinetd.d/tftp


啟動相關服務

service dhcpd restart

service xinetd restart

加入開機啟動

chkconfig dhcpd --level 345 on


5.3防火墻添加放行策略

-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT

-A INPUT -i eth0 -p udp -m udp --sport 67:69 -j ACCEPT


5.6

掛載windows10安裝盤ISO文件到/mnt/share目錄

mount -o loop windows10-mul-x64.iso /mnt/share

拷貝啟動文件及其boot.wim 到http主機制定目錄

說明:可以直接拷貝win10安裝盤裏面的boot.wim,也可以使用windows ADK 裏面的winpe.wim。

具體定制過程略過,本文用的是win10安裝盤裏面的boot.wim 文件,刪除了鏡像2裏面的setup.exe 並添加了exsi主機網卡驅動。


http windows啟動目錄如下

---------------------------

├── boot

│ ├── bcd

│ ├── bootfix.bin

│ ├── boot.sdi

│ ├── bootsect.exe

│ ├── etfsboot.com

├── boot.ipxe

├── bootmgr

├── bootmgr.efi

├── efi

│ ├── boot

│ │ └── bootia32.efi

│ └── microsoft

│ └── boot

│ ├── bcd

│ ├── cdboot.efi

│ ├── cdboot_noprompt.efi

│ ├── efisys.bin

│ ├── efisys_noprompt.bin

│ ├── fonts

│ │ ├── chs_boot.ttf

│ │ ├── cht_boot.ttf

│ │ ├── jpn_boot.ttf

│ │ ├── kor_boot.ttf

│ │ ├── malgun_boot.ttf

│ │ ├── malgun_console.ttf

│ │ ├── malgunn_boot.ttf

│ │ ├── meiryo_boot.ttf

│ │ ├── meiryo_console.ttf

│ │ ├── meiryon_boot.ttf

│ │ ├── msjh_boot.ttf

│ │ ├── msjh_console.ttf

│ │ ├── msjhn_boot.ttf

│ │ ├── msyh_boot.ttf

│ │ ├── msyh_console.ttf

│ │ ├── msyhn_boot.ttf

│ │ ├── segmono_boot.ttf

│ │ ├── segoen_slboot.ttf

│ │ ├── segoe_slboot.ttf

│ │ └── wgl4_boot.ttf

│ ├── memtest.efi

│ ├── resources

│ │ └── bootres.dll

│ └── winsipolicy.p7b

├── sources

│ └── boot.wim

└── wimboot

------------------------------

5.7

在http服務器windows10啟動目錄創建boot.ipxe文件,內容如下。

-------------

#!ipxe

#Windows BOIS

kernel wimboot

initrd boot/bcd BCD

initrd boot/boot.sdi boot.sdi

initrd sources/boot.wim boot.wim

boot

-----------------

說明:以上支持bois啟動,如需支持uefi啟動,只需添加bootmgr.efi文件即可。



6.開機測試。

1.開機,選擇網卡啟動,按ctrl+b 進入cmdline

技術分享圖片


2.獲取ip

dhcp net0

3.訪問http服務器上的目錄

chain http://172.16.30.121/win10/boot/boot.ipxe

技術分享圖片


速度還是很快的,就進入了PE

技術分享圖片


如需自己測試,請根據自己的環境修改主機地址和http服務器地址及其windows啟動目錄位置即可。


其它設置待續... ...





網絡啟動一:之IPXE初識及其簡單應用