这是我可用的一个例子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 选项。
添加一个GRUB 的 PXE 网络引导选项会很棒的。就像是:
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
我现在通过选择 PXE 作为 BIOS 中的第一个启动选项来修复该问题,但我并不总是希望 PXE 作为第一个启动选项。
只要 GRUB 包含一些真正有用的程序,例如grub-reboot
或者至少接受远程重新配置,向 GRUB 添加 PXE 可能是一个完美的解决方案。
是否有可能添加 PXE 选项到 GRUB 启动菜单?
答案1
是的,您可以添加一个(一)PXE启动器到 Grub。
为了包装袋基于 Debian 和衍生品的系统:仅apt-get install ipxe
是必需的
我希望其他发行版也能相当轻松地集成它。
==> 下次重新启动时将存在“PXE Boot”菜单项。
如果您想了解内部工作细节:
安装后挂钩脚本使用“模板”文件自动将 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 配置更改为“一次性”启动除默认值之外的另一种选择。
答案2
对于最新版本的 iPXE efi 链式加载是可能的。 ipxe.iso 中有一个映像 (esp.imp),其中包含所需的 efi 结构。您可以将 BOOTX64.EFI 文件复制到 EFI 分区中的其他位置,并使用 grub 链式加载它。
答案3
一般来说,我发现 PXE 启动选项只存在于系统 BIOS 启动选择菜单中。一旦你进入 grub 就基本上为时已晚了。
在戴尔计算机上,似乎可以根据您安装的硬件远程(并以编程方式)对此操作进行编程。特别是使用 Dell iDRAC。此功能也可能在其他供应商硬件上实现。