![我可以通过手动指定静态 IP 来使用没有 DHCP 的 PXE 吗?](https://linux22.com/image/77894/%E6%88%91%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E6%89%8B%E5%8A%A8%E6%8C%87%E5%AE%9A%E9%9D%99%E6%80%81%20IP%20%E6%9D%A5%E4%BD%BF%E7%94%A8%E6%B2%A1%E6%9C%89%20DHCP%20%E7%9A%84%20PXE%20%E5%90%97%EF%BC%9F.png)
我想第一次尝试进行 PXE 安装。
我读过的每个教程似乎都表明它需要将 DHCP 服务器配置为使用启动映像指向 TFTP 服务器。我不明白为什么需要 DHCP,不是可以手动配置计算机的 IP 和网络设置,并手动指定 TFTP 服务器所在的 IP 吗?
如果没有,是否有任何特殊原因不允许您执行此操作,或者在 pxe 菜单中给出一个简单的提示,要求手动指定网络路径?
答案1
DHCP 服务器为客户端提供 IP 地址、静态路由、DNS 服务器、要加载的文件名、“下一个服务器”名称或从中加载的 IP 以及其他配置详细信息。
问题是“如果不是通过 DHCP,您将在哪里配置这些详细信息”?
您的 BIOS 是否为您提供了输入这些详细信息的选项和字段?很可能不会。
您可以为某些 NIC 创建您自己的自定义 ROM(例如使用 ipxe),并将此信息硬编码 - 但为什么呢?您不仅必须为每个 NIC(用于 IP 地址)制作一个独特的单独 ROM,而且硬编码的配置细节几乎总是会很痛苦,因为细节会发生变化,而您需要能够轻松更改它们...... .您可以使用 DHCP 或 bootp 服务器来完成此操作,只需编辑 dhcpd.conf
没有什么可以阻止 PXE ROM 具有配置菜单(事实上,我见过一些服务器能够指定 NIC 的 IP 地址和其他一些详细信息 - 主要用于 Dell iDRAC
、HPiLO
和 Sun等远程管理卡LOM
),但有制造商几乎没有动力这样做——这是一个已经解决的问题,而 DHCP/bootp 就是解决方案。
答案2
我和你有同样的问题。我用ipxe解决了。 pxe必须使用ip,pxe没有提到交互界面,你必须使用替代工具ipxe。
答案3
如果您不想覆盖现有的 DHCP 服务器,请设置“代理 DHCP 服务器”。流行的 proxyDHCP 服务器是dnsmasq
,您可以将其配置为仅响应 PXEBoot 请求。我通过阅读发现了这一点以下SO帖子:
PXE 确实需要 DHCP。
PXE 可以从 proxyDHCP 服务器运行 - 它仅提供所需的引导选项,并且不向任何客户端提供 IP 租用。
Linux 下 proxyDHCP 最常见的服务可能是 dnsmasq,示例配置文件提到了您需要的大部分内容,我自己的经验是使用 iPXE 并作为您可以使用的最小配置 https://ipxe.org/appnote/proxydhcp
如果您有静态 IP 分配,并且不允许 DHCP,那么在 USB 上使用 iPXE 之类的东西可能是一个替代选项(当然需要允许 USB,或者 CD 或类似设备)