从 dos 实用程序固件更新程序创建可引导的 PXE 映像

Wil*_*ire 4 linux firmware pxe-boot

我想知道是否可以从 dos 实用程序固件制作 PXE 可启动映像。对于某些细节,固件更新程序通常安装在U 盘上。我有所有的平面文件。我应该将平面文件转储到我的 tftpboot 服务器上,然后为 pxemenu 添加适当的位,还是该过程涉及更多?

我找到了 FreeDOS,但他们不提供大于 1.44MB 的映像,这是一个问题,因为仅固件 rom 的大小就为 5MB。我尝试使用这些步骤创建一个更大的图像,但没有任何成功,因为每次我进入该图像时,它不显示通常的 FreeDOS 菜单(它只打印出 FreeDOS 并且不提供命令提示符)。

编辑:我能够从这里让 rom 从 FreeDOS 映像中运行,但是当然,当运行 rom 时,它说 rom 已损坏,因为整个 rom 实际上并不在那里,并且由于只有 1.44 而只是部分在那里图像上的 MB 空间。更复杂的是,rom 只会在 Himem.exe 和 emm386.exe 运行时运行(它们是通过在 FreeDOS 上选择第二个选项来启动的)。

EDIT2:在将平面文件添加到 U 盘和我找到的自定义 freedos U 盘中的 COMMAND.COM 后,我终于让 U 盘工作了。仍然将文件复制到 USB 映像并尝试从 PXE 启动它拒绝启动。

mai*_*ilq 7

您可以在此处查看分步教程:http : //www.smop.co.uk/mediawiki/index.php/PXE_booting_floppy_images

或者尝试搜索“通过 PXE 启动 ISO”、“通过 PXE 启动 DOS”等。


扩展编辑

以下是经过测试和工作的。

您只需要完整的 FreeDOS ISO、最新的Linux LiveCD、已安装的 Linux 和虚拟机

然后这就是我所做的:

  1. 创建一个只有20 MB 大小的硬盘的虚拟机,同时将完整的 FreeDOS ISO 作为 CD-ROM 附加。
  2. 从 FreeDOS ISO 启动虚拟机并在虚拟硬盘上安装最小版本的 FreeDOS。
  3. 确保在安装过程中使用提供的 FreeDOS 工具对硬盘进行分区和格式化。磁盘应该是可引导的并且格式化为 FAT16。
  4. 弹出 ISO 映像并尝试从虚拟硬盘启动。重复以上步骤,直到成功启动到虚拟硬盘。对我来说,它只适用于第 3 个 FreeDOS 引导选项,但您应该尝试所有这些选项。
  5. 将 Linux LiveCD 附加到虚拟机并启动 LiveCD。然后将虚拟硬盘挂载到文件系统的某处。
  6. 将所需的 DOS 工具转移到已安装的硬盘上。通过 HTTP、SCP、FTP、SMB 或什至通过真正的 USB 闪存驱动器。没有必要但建议创建虚拟硬盘的子文件夹并将文件放入其中。您应该已经在外部或在 Linux LiveCD 系统中提取了文件。确保您没有覆盖硬盘上的任何 FreeDOS 文件。
  7. 卸载虚拟硬盘。
  8. 创建虚拟硬盘的磁盘映像dd if=/dev/sda of=/tmp/freedos.img(将 /dev/sda 替换为虚拟硬盘的正确设备名称)
  9. 将图像传输/tmp/freedos.img到真机(SCP、SMB、FTP 或其他)。
  10. 关闭 Linux LiveCD 系统,弹出 LiveCD 映像,重新启动并尝试引导回 FreeDOS 硬盘(不是映像)。
    如果它有效并且您看到复制的程序一切正常,您可以再次关闭系统。如果不是,请从步骤 5) 开始重复。
  11. 如果您在某处安装了 Linux,请尝试安装该syslinux软件包。这比编译您自己的二进制文件或从某处下载预编译图像更容易。
    安装后memdisk在文件系统中找到二进制文件。我的是在/usr/lib/syslinux/memdisk
  12. memdisk和传输freedos.img到 PXE 环境的 tftp 服务器并使用以下配置条目对其进行配置。

.

label freedos
menu label FreeDOS flash environment 
kernel memdisk
append initrd=freedos.img harddisk
Run Code Online (Sandbox Code Playgroud)

通过 PXE 启动并从网络享受 FreeDOS。


作为读者的练习,您应该尝试iPXE,它是一个开源 PXE 固件。有了它,您可以跳过所有 tf​​tp/PXE 废话,而是通过 HTTP 启动!在这种情况下,您可以从 iPXE 引导加载程序引导并输入以下命令:

dhcp
imgfetch http://192.168.1.1/freedos.img
chain http://192.168.1.1/memdisk harddisk
Run Code Online (Sandbox Code Playgroud)

dhcp为您提供来自您的 DHCP 服务器的任何 IP,只是为了与 192.168.1.1 或您的(内部)网络服务器进行通信。您也可以改为设置静态 IP。其他命令从 HTTP 下载并安装引导加载程序和磁盘映像,然后引导映像。感人的。