按iPXE 官網(wǎng)的介紹是這樣的:iPXE 是領(lǐng)先的開源網(wǎng)絡(luò)啟動(dòng)固件。它提供了一個(gè)完整的 PXE 實(shí)現(xiàn),增強(qiáng)了其他功能,例如通過 HTTP 從 Web 服務(wù)器啟動(dòng)、從 iSCSI SAN 啟動(dòng) 等等.
官方編譯文檔:
http://ipxe.org/download
http://ipxe.org/appnote/buildtargets#special_targets
git clone git://git.ipxe.org/ipxe.git
或
git clone https://github.com/ipxe/ipxe.git
cd ipxe/src make bin/undionly.kpxe
編譯后會(huì)在 bin 目錄下生成 undionly.kpxe 文件,這個(gè)就是 iPXE 網(wǎng)絡(luò)啟動(dòng)固件
官網(wǎng)說明文檔:http://ipxe.org/appnote/buildtargets#special_targets
cd ipxe/src make bin-x86_64-pcbios/undionly.kpxe
編譯前先安裝這些依賴環(huán)境
gcc (version 3 or later)
binutils (version 2.18 or later)
make
perl
liblzma or xz header files
mtools
mkisofs (needed only for building .iso images)
syslinux (for isolinux, needed only for building .iso images)
編譯好以后默認(rèn)開啟的功能有
DNS、HTTP、iSCSI、TFTP、AoE、ELF、MBOOT、PXE、bzImage、Menu、PXEXT
在上圖的啟動(dòng)界面可以看到。
如果要加載 HTTPS web 的內(nèi)容,那就要開啟 HTTPS
還有一些系統(tǒng)啟動(dòng)需要開啟 COMBOOT 功能
下面以開啟 HTTPS 和 COMBOOT 功能為例進(jìn)行編譯
修改源碼下 src/config/general.h 文件
vi config/general.h
找到 DOWNLOAD_PROTO_HTTPS,將 DOWNLOAD_PROTO_HTTPS 前面有#undef 改成 #define
找到 IMAGE_COMBOOT 將前面的注釋去掉
#define DOWNLOAD_PROTO_HTTPS #define IMAGE_COMBOO
或者將上面的代碼添加到源碼目錄 src/config/local/general.h 文件里
修改完用前面的 make bin/undionly.kpxe 重新編譯即可
現(xiàn)在用新生成的 undionly.kpxe 固件網(wǎng)絡(luò)啟動(dòng)后就多了 HTTPS 和 COMBOOT
官方文檔:http://ipxe.org/embed
默認(rèn)編譯啟動(dòng)后按 Ctrl+B 進(jìn)入命令模式
可以輸入下面的命令進(jìn)入到外國友人做的 menu 界面
注:首先你網(wǎng)絡(luò)啟動(dòng)的 DHCP 服務(wù)器設(shè)置的 DNS 能訪問網(wǎng)絡(luò)
dhcp chain --autofree https://boot.netboot.xyz
進(jìn)入后如圖
如果想網(wǎng)絡(luò)啟動(dòng)后直接進(jìn)入 menu 界面,而不通過命令行輸入命令,那就需要編譯的時(shí)候加入自定義腳本
我們把上面的進(jìn)入 menu 的代碼編譯進(jìn)固件
在源碼 src 目錄下新建腳本文件 script.ipxe,將上面的命令 copy 到文件
vi script.ipxe #!ipxe dhcp chain --autofree https://boot.netboot.xyz
重新編譯增加參數(shù) EMBED=script.ipxe
make bin/undionly.kpxe EMBED=script.ipxe
使用新的 undionly.kpxe 網(wǎng)絡(luò)引導(dǎo),直接會(huì)進(jìn)入 netboot.xyz 的 menu 界面
也可以使用自己的菜單界面
加入下面的自定義腳本
vi script.ipxe #!ipxe dhcp chain --autofree tftp://${next-server}/boot.ipxe
網(wǎng)絡(luò)啟動(dòng)后就能進(jìn)入自己的菜單了
有時(shí)候會(huì)遇到一些奇葩問題不知道如何解決,這時(shí)候可以開啟debug模式,這里以開啟iSCSI的debug為例
在編譯的時(shí)候增加 DEBUG=iscsi 參數(shù)
ake bin/undionly.kpxe EMBED=script.ipxe DEBUG=iscsi
編譯后用新固件引導(dǎo)啟動(dòng),在sanhook iscsi命令的時(shí)候就會(huì)出現(xiàn)debug日志信息
https://github.com/veelove/netboot-tftp
開啟群暉 web station 并設(shè)置虛擬主機(jī)用來加載一些系統(tǒng)的引導(dǎo)文件
測試是否可以加載到iso文件安裝包
命令:initrd例子: initrd http://10.10.10.250:88/Install/ESXI/123.iso # ip地址及端口號(hào)及路徑改為你自己的
測試是否可以去讀取上面加載到的安裝包
chain memdisk iso raw
測試是否連接到群暉的ISCSI
由于群暉機(jī)型不同,ISCSI的LUN的序號(hào)默認(rèn)也不同,這里舉例 918+和3617+ ,3617默認(rèn)的就是0 而918+默認(rèn)的則是1
ISCSI LUN默認(rèn)是0的代碼:
sanhook iscsi:10.10.10.250::::ESXi:iqn.2000-01.com.synology:ipxe.ESXI
ISCSI LUN默認(rèn)是0的代碼:
sanhook iscsi:10.10.10.250:::1:iqn.2000-01.com.synology:ipxe.ESXI
聯(lián)系客服