我想知道是否有可能从 dos 实用程序固件制作 PXE 可启动映像。对于某些具体情况,固件更新程序通常安装在USB记忆棒。我拥有所有平面文件。我是否应该只将平面文件转储到我的 tftpboot 服务器上,然后只添加 pxemenu 的适当位,还是这个过程更复杂一些?
我找到了 FreeDOS,但他们不提供大于 1.44MB 的镜像,这是一个问题,因为固件 rom 本身就有 5MB 大小。我尝试创建一个更大的镜像使用这些步骤但没有任何成功,因为每次我启动映像时它都不会显示通常的 FreeDOS 菜单(它只打印出 FreeDOS 并且不提供命令提示符)。
编辑:我能够从 FreeDOS 映像中获取运行的 rom这里但是当运行 rom 时,系统会提示 rom 已损坏,因为整个 rom 实际上并不在那里,而且由于映像上只有 1.44MB 的空间,所以只有部分 rom 在那里。更复杂的是,rom 仅在 himem.exe 和 emm386.exe 运行时才会运行(它们是在 FreeDOS 上选择第二个选项启动的)。
编辑 2:在将平面文件添加到 USB 棒并从我找到的自定义 freedos USB 棒中添加 COMMAND.COM 后,我终于让 USB 棒工作了。将文件复制到 USB 映像并尝试从 PXE 启动时,它仍然拒绝启动。
答案1
您可以在此处查看分步教程:http://www.smop.co.uk/mediawiki/index.php/PXE_booting_floppy_images
或者尝试搜索“通过 PXE 启动 ISO”、“通过 PXE 启动 DOS”等。
延伸編輯
以下内容已经过测试并且正常运行。
您需要的是完整的 FreeDOSISO,最近Linux 实时光盘,已安装的 Linux 和虚拟机。
然后我做了以下事情:
- 创建一个虚拟机,硬盘为仅有的20 MB 大小,还将完整的 FreeDOS ISO 作为 CD-ROM 附加。
- 从 FreeDOS ISO 启动虚拟机并在虚拟硬盘上安装最低版本的 FreeDOS。
- 确保在安装过程中使用提供的 FreeDOS 工具对硬盘进行分区和格式化。磁盘应可启动并格式化为 FAT16。
- 弹出 ISO 映像并尝试从虚拟硬盘启动。重复这些步骤,直到成功启动到虚拟硬盘。对我来说,它仅适用于第三个 FreeDOS 启动选项,但你应该尝试所有选项。
- 将 Linux LiveCD 附加到虚拟机并启动 LiveCD。然后将虚拟硬盘挂载到文件系统的某个位置。
- 将所需的 DOS 工具传输到已安装的硬盘上。可以通过 HTTP、SCP、FTP、SMB 或真正的 USB 闪存驱动器传输。创建虚拟硬盘的子文件夹并将文件放入其中不是必需的,但建议这样做。您应该从外部或 Linux LiveCD 系统中提取文件。确保不要覆盖硬盘上的任何 FreeDOS 文件。
- 卸载虚拟硬盘。
- 创建虚拟硬盘的磁盘映像
dd if=/dev/sda of=/tmp/freedos.img
(将 /dev/sda 替换为虚拟硬盘的正确设备名称) - 将图像传输
/tmp/freedos.img
到真实机器(SCP、SMB、FTP 或其他)。 - 关闭 Linux LiveCD 系统,弹出 LiveCD 映像,重新启动并尝试重新引导到 FreeDOS 硬盘(而不是映像)。
如果它正常工作并且您看到复制的程序,则一切正常,您可以再次关闭系统。如果没有,请从步骤 5 重复。 - 如果您在某处安装了 Linux,请尝试安装该
syslinux
软件包。这比编译您自己的二进制文件或从某处下载预编译的图像更容易。
安装后,memdisk
在文件系统中找到二进制文件。我的位于/usr/lib/syslinux/memdisk
。 - 将
memdisk
和传输freedos.img
到您的 PXE 环境的 tftp 服务器并使用以下配置条目对其进行配置。
。
label freedos
menu label FreeDOS flash environment
kernel memdisk
append initrd=freedos.img harddisk
通过 PXE 启动并通过网络享受 FreeDOS。
作为读者的练习,你应该尝试远程控制这是一个开源 PXE 固件。有了它,您可以跳过所有 tftp/PXE 垃圾,而是通过 HTTP 启动!在这种情况下,您可以从 iPXE 引导加载程序启动并输入以下命令:
dhcp
imgfetch http://192.168.1.1/freedos.img
chain http://192.168.1.1/memdisk harddisk
dhcp
为您提供来自 DHCP 服务器的任何 IP,以便与 192.168.1.1 或任何 (内部) Web 服务器进行通信。您也可以改为设置静态 IP。其他命令从 HTTP 下载并安装引导加载程序和磁盘映像,然后启动映像。令人印象深刻。
答案2
您可以使用记忆磁盘制作启动磁盘映像(例如从软盘或硬盘驱动器)或 iso 映像。例如,这是我用于启动 DBAN 的 PXE 配置。
label dban
menu label Wipe hard drive
kernel memdisk
append initrd=dban/dban.img floppy
这足以与一些供应商的更新工具配合使用。但是,看起来固件更新不是以图像形式分发的,而是以多个文件形式分发的。
AUTOEXEC.BAT CONFIG.SYS HPQUSB.exe O37_0323.ROM AFU0323.BAT AFUDOS.exe ID.exe
我要尝试使用 HPQUSB.exe 实用程序准备一个 USB 密钥,制作该 USB 密钥的映像,然后使用 memdisk 启动该映像。