我想知道是否有人曾经尝试过使用 Linux PXE 服务器进行此操作?
我已经将它设置好,并且几乎可以在所有其他笔记本电脑和台式机上使用。
这是我第一次尝试这样做,我们有官方的 Microsoft Surface USB 转 LAN 适配器。
这是我的 dnsmasq 配置:
interface=eno16777736,lo,eth0
#bind-interfaces
domain=netdec.lan
# DHCP range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.60,255.255.255.0,1h
# PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.133
# Gateway
dhcp-option=3,192.168.1.1
# DNS
dhcp-option=6,192.168.1.1, 8.8.8.8
server=8.8.4.4
# Broadcast Address
dhcp-option=28,10.0.0.255
# NTP Server
dhcp-option=42,0.0.0.0
user=nobody
pxe-prompt="Press F8 for menu.", 120
pxe-service=x86PC, "Proceed and choose your operating system", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot
log-dhcp
使用上述配置时,我们无法获取 PXE 菜单(继续并选择您的操作系统),只有在注释掉以下“dhcp-boot=pxelinux.0,pxeserver,192.168.1.133”时,我们才能获取 pxe 菜单。
在日志中我可以看到 PXE 启动表面时的以下内容;
Jun 15 14:12:15 localhost dnsmasq-dhcp[17425]: DHCPDISCOVER(eth0) c0:33:5e:74:41:65
Jun 15 14:12:15 localhost dnsmasq-dhcp[17425]: DHCPOFFER(eth0) 192.168.1.34 c0:33:5e:74:41:65
Jun 15 14:12:31 localhost dnsmasq-dhcp[17425]: DHCPREQUEST(eth0) 192.168.1.34 c0:33:5e:74:41:65
Jun 15 14:12:31 localhost dnsmasq-dhcp[17425]: DHCPACK(eth0) 192.168.1.34 c0:33:5e:74:41:65
Jun 15 14:12:31 localhost dnsmasq-tftp[17425]: error 8 User aborted the transfer received from 192.168.1.34
Jun 15 14:12:31 localhost dnsmasq-tftp[17425]: failed sending /var/lib/tftpboot/pxelinux.0 to 192.168.1.34
Jun 15 14:12:31 localhost dnsmasq-tftp[17425]: sent /var/lib/tftpboot/pxelinux.0 to 192.168.1.34
这是当表面尝试通过 TFTP 检索 pxelinux.0 文件时的 tcpdump。 15:06:29.757118 IP 192.168.1.34.sdsc-lm > 192.168.1.133.tftp: 40 RRQ
“pxelinux.0”八位字节 blksize 1468 15:06:29.758004 IP 192.168.1.133.54039 > 192.168.1.34.sdsc-lm: UDP,长度 27 15:06:29.759410 IP 192.168.1.34.sdsc-lm > 192.168.1.133.54039: UDP,长度 30 15:06:29.782301 IP 192.168.1.34.3ds-lm > 192.168.1.133.tftp:32 RRQ
“pxelinux.0”八位字节blksize 1468
这真的很简单吗?我错过了什么,还是根本就不可能?
感谢你们。
答案1
Microsoft Surface 是仅支持 UEFI 的设备;您永远无法在该设备上启动 pxelinux.0 NBP(仅限 BIOS)。这就是您看不到启动菜单的原因。
如果你想使用 PXE 运行 Microsoft Surface,你需要类似塞瓦能够自动 PXE 启动/安装 UEFI 和 BIOS 客户端。(我与 Serva 开发相关)