Networking

是否可以向 GRUB 添加一些“PXE 網路啟動”選項?

  • July 25, 2016

這是我可用的GRUB 菜單引導選項的範例:

1     menu label   ^  1) Xubuntu 14.04.02 LTS
2     menu label   ^  2) Windows 7, x86 & AMD64
3     menu label   ^  3) Windows 8, AMD64
4     menu label   ^  4) Hirens Boot CD 8.8, x86
5     menu label   ^  5) Kali 1.0.7 Live, amd64

為了在沒有鍵盤和螢幕的情況下修復/重新配置/救援伺服器或機器,能夠將遠端機器引導到 PXE 網路而無需物理靠近電腦以在 BIOS 中選擇 PXE 選項,這將非常有用。

PXE 網路引導選項添加到 GRUB會很棒。就像是:

1     menu label   ^  1) Xubuntu 14.04.02 LTS - Sopalajo Mod, amd64
2     menu label   ^  2) Windows 7, x86 & AMD64
3     menu label   ^  3) Windows 8, AMD64
4     menu label   ^  4) Hirens Boot CD 8.8, x86
5     menu label   ^  5) Kali 1.0.7 Live, amd64
6     menu label   ^  6) PXE Network server on this LAN

我現在通過在 BIOS 中選擇 PXE 作為第一個引導選項來解決這個問題,但我並不總是希望 PXE 作為第一個引導選項。

只要 GRUB 包含一些真正有用的程序grub-reboot,例如或至少接受遠端重新配置,將 PXE 添加到 GRUB 可能是一個完美的解決方案。

是否可以在 GRUB 引導菜單中添加 PXE 選項?

是的,您可以將(i)PXE啟動器添加到 Grub。

對於基於dpkg的系統,例如 Debian&derivatives:僅apt-get install ipxe需要

我希望其他發行版也能相當舒適地集成它。

==> 下次重新啟動時將存在“PXE 啟動”菜單項。

如果您想了解內部工作細節:

安裝後掛鉤腳本使用“模板”文件自動將 iPXE 條目添加到 grub 配置中/etc/grub.d/20_ipxe

你最終會得到一個像下面這樣的條目/boot/grub/grub.cfg

menuentry 'Linux NetBoot Environment' {
 set root='(hd0,1)'
 <More, less important options>
 linux16 /boot/ipxe.lkrn
}

這只是意味著,在這種情況下,grub 將完全的電腦控制權交給了另一個“簡單”程序,而不是(linux-)核心ipxe.lkrn。MemTestx86 的啟動方式基本相同。

PXE 堆棧是通常儲存在主機板某處的軟體。就在這種情況下,我們從 GRUB 的驅動程序可以訪問的某個地方載入它。

使用場景範例:

您將需要在驅動器上安裝基本 GRUB,首先具有 PXE 條目,然後在位置 2 上從(例如)分區 1 回退到本地鏈引導。

然後,iPXE 將使用的配置將取決於駐留在引導配置伺服器上的文件。在那裡,您將首先設置預設菜單選項“從本地分區 1 引導”,然後是更多選項(Boot-AV、SuperGrub、Debian NetInst…)。

==> 您的使用者通常不會觸摸任何東西,直到他們從本地安裝中看到圖形登錄提示。

引導順序:GRUB - iPXE - OS-in-Partition-1(如果 PXE 不成功,則回退到 OS-In-Partition-1)

==> 實際存在於 PC 上,您可以選擇其他引導選項。

==> 實際不在 PC 上,您可以將伺服器端 PXE 配置更改為“一次性”引導,而不是預設設置。

引用自:https://unix.stackexchange.com/questions/190865