是否可以向 GRUB 添加一些“PXE 网络启动”选项?

Sop*_*rez 8 networking grub boot pxe

这是我可用的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
Run Code Online (Sandbox Code Playgroud)

为了修复/重新配置/救援没有键盘和屏幕的服务器或机器,能够将远程机器引导到 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
Run Code Online (Sandbox Code Playgroud)

我现在通过在 BIOS 中选择 PXE 作为第一个引导选项来修补这个问题,但我并不总是希望 PXE 作为第一个引导选项。
只要 GRUB 包含一些非常有用的程序,例如grub-reboot或至少接受远程重新配置,将 PXE 添加到 GRUB 可能是一个完美的解决方案。

是否可以在 GRUB 启动菜单中添加 PXE 选项

Ale*_*ies 11

是的,您可以向 Grub添加(i)PXE Launcher。

对于基于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
}
Run Code Online (Sandbox Code Playgroud)

这只是意味着,grub 不是 (linux-) 内核,而是将计算机完全控制权交给另一个“简单”程序,在这种情况下ipxe.lkrn。MemTestx86 的启动方式基本相同。

PXE 堆栈是通常存储在主板某处的软件。只是在这种情况下,我们从 GRUB 的驱动程序可以访问的地方加载它。

使用场景示例:

您需要在驱动器上安装一个基本的 GRUB,首先具有 PXE 条目,然后在位置 2 上回退到从(比如说)分区 1 的本地链引导。

iPXE 将使用的配置将取决于驻留在引导配置服务器上的文件。在那里,您将进行默认设置,第一个菜单选择“从本地分区 1 启动”,然后是更多选择(Boot-AV、SuperGrub、Debian NetInst...)。

==> 您的用户通常不会触摸任何东西,直到他们看到本地安装的图形登录提示。

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

==> 实际出现在 PC 上,您可以选择其他引导选项。

==> PC 上没有实际存在,您可以将服务器端 PXE 配置更改为“一次性”启动,而不是默认选择。