PXE 启动 .IMG 和 .DD 映像

PXE 启动 .IMG 和 .DD 映像

我已阅读了许多论坛帖子,但仍然无法 PXE 启动映像文件。

usb-image.dd 是我的映像文件。我不想使用 USB 记忆棒,而是想使用 PXE 来启动实时 Linux。

DEFAULT menu.c32
PROMPT 0
timeout 300

MENU TITLE PXE Menu

LABEL memtest86
 MENU LABEL Memtest86+ 5.01
 KERNEL /memtest/memtest86+-5.01

LABEL Live Linux
 MENU LABEL Live Linux test
 KERNEL memdisk
 APPEND initrd=/test/usb-image.dd

PXE 菜单正在运行,我可以启动 Memtest86+,但 Live Linux 测试失败,我不明白为什么。菜单立即重新加载。

我正在使用 Ubuntu 16.04 LTS。

我该如何继续?

编辑1: 有关我的 usb-image.dd 的信息。

user@PXE-server:/var/lib/tftpboot/test$ fdisk -l usb-image.dd
Disk usb-image.dd: 3 GiB, 3270508544 bytes, 6387712 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 597F78FB-1090-4C9B-A779-1DC99DDAC259

Laite           Start   Loppu Sektorit  Size Tyyppi
usb-image.dd1    2048  450559   448512  219M EFI System
usb-image.dd2  450560 6371327  5920768  2,8G Microsoft basic data
usb-image.dd3 6371328 6385663    14336    7M Linux filesystem

编辑2:

我禁用了菜单并看到了错误消息。

Loading /test/usb-image.dd...failed: Bad file number

答案1

首先,确保 memdisk 确实存在于您的 TFTP 服务器上并且可以提供给客户端。这不是一个神奇的调用,memdisk 是 syslinux 的一个独立组件。

其次,以这种方式加载 ISO 通常需要你向 memdisk 内核传递更多参数,特别是“iso”参数,通常还有“raw”参数。请尝试以下操作:

KERNEL memdisk
INITRD /test/usb-image.dd
APPEND iso raw

如果你的镜像是一个 isohybrid 镜像(可能是为了从 USB 驱动器加载)并且有一个 MBR,那么你很可能将其视为硬盘,以及:

KERNEL memdisk
INITRD /test/usb-image.dd
APPEND harddisk

第三,考虑到 TFTP 效率很低,可能不一定支持提供大文件(您的 Linux LiveUSB 图像肯定支持)。如果您的 TFTP 服务器不支持块大小协商,则它无法提供大于 32MB 的任何文件 - 您可能正在使用不支持此功能的实现或旧版本的实现。考虑用lpxelinux变体支持通过 HTTP 加载其他资源,并从 Web 服务器提供内核/图像文件。速度会快得多。

KERNEL http://webserver.mydomain/memdisk
INITRD http://webserver.mydomain/test/usb-image.dd
APPEND harddisk

相关内容