PXE 从 pxelinux 服务器启动 FreeBSD iso

PXE 从 pxelinux 服务器启动 FreeBSD iso

我在用着多雾路段作为 TFTP / PXE 服务器,并希望能够启动 FreeBSD LiveCD(特别是普富思,但实际上它可以是任何 LiveCD);我找到了用于启动“网络启动”BSD 的 HOWTO,但它们似乎都使用 BSD 服务器。所以:

  • 是否可以通过 PXE 从 Linux 服务器启动 BSD?
  • 是否可以通过 PXE 启动 BSD LiveCD?
  • 是否可以通过 PXE 启动 Linux LiveCD?

我的主要动机是能够启动小型 LiveCD 映像(例如 < 100MB),我可能只使用一次并且不想刻录物理 CD。

答案1

我不知道 FOG,但它应该可以正常工作镜像是否可以从 NFS 启动(这可能是 pfSense 等滚动版本的症结所在)。您应该能够按照手册中的基本说明进行操作并使其正常运行。

我还考虑运行虚拟机来测试这些东西。QEmu 在 fBSD 上运行良好。

编辑: 如果你熟悉这些部分,这里有一个快速而简单的 FreeBSD PXEBoot 指南
如果你不太熟悉,那么手册的 无盘操作部分内容更像是一种演练。

步骤的简要概述:
将计算机设置为从其网卡进行 PXE 启动。这通常是 bios 选项。
在 DHCP 服务器上设置 DHCP 选项,以告诉 PXE 在哪里找到 FreeBSD 的加载程序 (pxeboot)。DHCP
选项还会告诉加载程序在哪里找到根文件系统 (NFS 共享)。
加载程序会挂载 NFS 根文件系统,找到内核,然后从那里正常启动。
(请注意,内核需要支持从 NFS 共享启动,而这通常不会编译到内核中)

答案2

两年后,出现了从 FOG 启动 PXE 启动 ISO 的通用说明:

MEMDISK wiki 也有启动 ISO 的说明;我已经成功使用 ISOHYBRID 技术加载 PartedMagic(即将其作为磁盘映像加载),但 ISO 技术也应该适用于 FreeBSD。

答案3

事实证明这是 FreeBSD 9.1 中的回归。这曾经运行良好:

LABEL FreeBSD-8.1-i386
    MENU LABEL FreeBSD 8.1 i386
    kernel memdisk
    append initrd=freebsd/FreeBSD-8.1-RELEASE-i386-bootonly.iso iso raw

但现在不再是这样了:

LABEL FreeBSD-9.1-amd64
    MENU LABEL FreeBSD 9.1 AMD64
    kernel memdisk
    append initrd=freebsd/FreeBSD-9.1-RELEASE-amd64-memstick.img raw

答案4

我不使用 FOG,但我能够从 pxelinux 启动 pfSense。

  1. 首先我安装了 pfSense LiveCD ISO 并复制了文件。cp -r pfsenseiso/* os/pfsense/
  2. 确保你已通过 NFS 以某种方式共享该路径。我使用这些选项ro,async,no_subtree_check,insecure,no_root_squash
  3. 使用 NFS 挂载点将根路径添加到 dhcpd.conf(据我所知 pxelinux 不使用根路径)

dhcpd配置文件

    option root-path "10.3.128.10:/opt/data/tftpboot/os/pfsense";

4. 链式加载在 pfSense ISO 中找到的 FreeBSD pxeboot(此 pxeboot 利用根路径)。

pxe 配置

    LABEL pfsense
      MENU LABEL pfSense installer
      PXE http://10.3.128.10:8080/os/pfsense/boot/pxeboot

一切已设置完毕,您可以通过 pxe 启动和/或安装 pfSense。

相关内容