使用 TFTP32 E32 超时问题从 Windows 7 PC 进行 PXE 网络启动

使用 TFTP32 E32 超时问题从 Windows 7 PC 进行 PXE 网络启动

我正在尝试通过网络启动一台没有 CD 驱动器和 USB 启动选项的 PC(在 BIOS 中可用但无法识别 USB,可能由于某种原因损坏)。

无论如何,这是来自 TFTP32 的日志:

Rcvd DHCP Discover Msg for IP 0.0.0.0, Mac 00:1F:D0:8D:8B:09 [06/12 13:06:48.916]
DHCP: proposed address 192.168.2.1 [06/12 13:06:48.917]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:1F:D0:8D:8B:09 [06/12 13:06:51.113]
Previously allocated address 192.168.2.1 acked [06/12 13:06:51.113]
Connection received from 192.168.2.1 on port 2070 [06/12 13:06:51.125]
Read request for file <netboot\pxelinux.0>. Mode octet [06/12 13:06:51.126]
Using local port 53708 [06/12 13:06:51.127]
Connection received from 192.168.2.1 on port 2071 [06/12 13:06:53.125]
Read request for file <netboot\pxelinux.0>. Mode octet [06/12 13:06:53.126]
Using local port 53709 [06/12 13:06:53.127]
Connection received from 192.168.2.1 on port 2072 [06/12 13:06:57.136]
Read request for file <netboot\pxelinux.0>. Mode octet [06/12 13:06:57.137]
Using local port 53710 [06/12 13:06:57.137]
Connection received from 192.168.2.1 on port 2073 [06/12 13:07:03.122]
Read request for file <netboot\pxelinux.0>. Mode octet [06/12 13:07:03.123]
Using local port 53711 [06/12 13:07:03.124]
TIMEOUT waiting for Ack block #1  [06/12 13:07:06.129]
TIMEOUT waiting for Ack block #1  [06/12 13:07:08.129]
Connection received from 192.168.2.1 on port 2074 [06/12 13:07:11.086]
Read request for file <netboot\pxelinux.0>. Mode octet [06/12 13:07:11.087]
Using local port 53717 [06/12 13:07:11.088]
TIMEOUT waiting for Ack block #1  [06/12 13:07:12.139]
TIMEOUT waiting for Ack block #1  [06/12 13:07:18.126]
TIMEOUT waiting for Ack block #1  [06/12 13:07:26.090]

另外,当我 ping 计算机时,我得到:

Pinging 192.168.2.1 with 32 bytes of data:
Reply from 10.20.21.188: Destination net unreachable.
Reply from 10.20.21.188: Destination net unreachable.
Reply from 10.20.21.188: Destination net unreachable.
Reply from 10.20.21.188: Destination net unreachable.

Ping statistics for 192.168.2.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
PS C:\Windows\system32>

如果有人知道我应该如何纠正这个问题,我将不胜感激。

问候

編輯_>

可能有用的其他信息

  1. 我没有使用交叉线;但是,我的服务器计算机上的网卡是千兆的,我不确定这是否意味着我仍然需要交叉线。两台电脑仅通过一个快速以太网交换机连接。

  2. 网络启动的最终目的是在客户端计算机上安装 Debian。我目前正在运行 Apache 服务器,但我尚未确定下一步是什么。我正在启动 pxelinux.0(还不确定它到底是什么,我按照指南从网上下载了 Debian tar.gz 文件,然后从中获取了它这里)。

答案1

您的 IP 子网肯定有问题。一台机器在 10.20.21.x 上,另一台在 192.168.2.x 上,你们处于完全不同的网络类型中。您可能想与网络管理员或了解网络的人交谈。除非您已将 TFTP 服务器的交换机打开到其他子网,否则两台机器都需要位于同一网络和同一子网中。

答案2

不久前,我在使用 tftpd32 时也遇到了同样的“等待确认超时”问题。解决这个问题的方法是暂时禁用 Windows 计算机上的防火墙。在防火墙不受干扰的情况下进行通信后,我的传输就成功了。正如在不同的博客您可能还想确保在选项中的“TFTP 服务器”选项卡上正确配置了所有内容(例如 pxe 兼容性),并确保 DHCP 服务器的子网与您插入计算机的接口的子网相匹配,并且当您处理此操作时,您的网络上没有其他 DHCP 服务器。

关闭防火墙可能很危险,所以要小心,不要忘记重新启用它!

更新:

现在我重新阅读了该内容并进行了进一步思考,看起来这肯定是您的 IP 寻址问题。从 ping 输出来看,您的 Windows 计算机的 IP 为 10.20.21.188,而您要部署到的计算机从 tftp32 获取 IP 地址 192.168.2.1。由于它们位于不同的网络上,因此使用您描述的设置,它们无法相互通信。为了使其正常工作,您必须编辑 tftp32 中的 DHCP 池或将计算机的 IP 更改为正确网络中的静态地址以匹配 DHCP 池。

答案3

我遇到了同样的问题,每当客户端尝试从我的 tftpd 服务器获取文件时,都会出现“等待 Ack 块 #1 超时”错误。

我首先尝试在服务器防火墙中启用 TFTP UDP 端口 69,但这没有帮助。
最终,问题的根本原因被证明是在客户端,而不是在服务器端!
原因是 TFTP 使用动态分配的 UDP 端口将数据发送回客户端。
需要在客户防火墙,允许客户端 tftp 应用程序在任何 UDP 端口上接收数据。即 Windows 客户端上的 C:\Windows\System32\tftp.exe。

答案4

节省您的时间并避免 PXE 环境中的 DHCP 问题;使用您已经到位的 DHCP 基础设施并设置您的 PXE 服务器(即塞瓦) 在代理DHCP模式。这样,您就不必处理不同的子网 IP 错误(例如您现在遇到的错误),也不必更改当前的 DHCP 服务器配置。

相关内容