跳转至

从 NetWare RPL 启动 ROM 链式加载 iPXE

Novell NetWare 支持 RPL 网络启动协议,它比 PXE 标准更早。它经常作为非常老的网卡上的启动 ROM 出现。

你可以使用 RPL 启动 ROM 链式加载到 iPXE,然后使用 iPXE 通过 HTTP(或 HTTPS、iSCSI、PXE,或 iPXE 支持的任何其他启动机制)启动。

服务器软件

A chain

你需要安装 rpld,以便向你的 RPL 启动客户端提供 iPXE 二进制文件。

如果你使用 Fedora,可以使用预打包的版本:

  sudo dnf install -y rpld

对于其他发行版,你可能需要从源代码构建 rpld

构建 iPXE

你需要构建一个用于通过 RPL 启动的 .raw iPXE 二进制文件。例如,要构建包含所有支持的驱动程序的版本,可以使用:

  make bin/ipxe.raw

把你的 iPXE 二进制文件复制到 RPL 服务器上的一个目录。例如:

  sudo mkdir -p /var/rpl
  sudo cp bin/ipxe.raw /var/rpl/ipxe.raw

配置服务器

创建配置文件 /etc/rpld.conf,内容如下:

  HOST {
    ethernet = 00:00:00:00:00:00/6;
    FILE {
      path="/var/rpl/ipxe.raw";
      load=0x2000;
    };
    execute=0x2000;
  };

这将指示 rpld 向所有客户端提供你的 iPXE 二进制文件 ipxe.raw

loadexecute 地址必须相同,并且必须按 16 字节边界对齐。值 0x2000 应该适用于所有系统。

创建配置文件后,你需要重启 rpld。例如:

  systemctl restart rpld

测试

尝试启动你的一个 RPL 客户端。你应该会看到类似以下的输出:

  Novell NetWare Ready Firmware  v3.00 (980108)
  (C) Copyright 1995 - 1997 Novell, Inc.  All Rights Reserved.
  Realtek 8029 PCI Ethernet MLID v6.20 (971113)
  (C) Copyright 1993 - 1997 Realtek Semiconductor Co., LTD. All Rights Reserved.

  RPL-ROM-ADR: 0050 BF4E FCA0
  RPL-ROM-IRQ: 10
  RPL-ROM-PIO: 6000

  RPL-ROM-FFC: 1
  RPL-ROM-SFC: 1
  RPL-ROM-SEQ: 229

  iPXE initialising devices...ok

  iPXE 1.21.1 -- Open Source Network Boot Firmware -- http://ipxe.org
  Features: DNS HTTP iSCSI TFTP SRP AoE ELF MBOOT PXE bzImage Menu PXEXT

  net0: 00:50:bf:4e:fc:a0 using rtl8029 on 0000:00:09.0 (Ethernet) [open]
    [Link:up, TX:0 TXE:0 RX:0 RXE:0]
  Configuring (net0 00:50:bf:4e:fc:a0)....ok
  net0: 192.168.0.42/255.255.255.0 gw 192.168.0.1

恭喜你成功使用 RPL 链式加载!

Success