1

I'm wondering if anyone has ever attempted this before with a Linux PXE Server?

I've got it setup and working for pretty much every other laptop and desktop out there.

This is the first time I have attempted this and we have the official Microsoft Surface USB to LAN Adapter.

Here's my dnsmasq config:

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

We fail to get the PXE Menu (proceed and choose your operating system) when using the above configuration, we only get the pxe menu when commenting out the following "dhcp-boot=pxelinux.0,pxeserver,192.168.1.133".

In the logs I can see the following when PXE booting the surface;

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

Here's a tcpdump when the surface is attempting to retrieve the pxelinux.0 file via TFTP. 15:06:29.757118 IP 192.168.1.34.sdsc-lm > 192.168.1.133.tftp: 40 RRQ
"pxelinux.0" octet blksize 1468 15:06:29.758004 IP 192.168.1.133.54039 > 192.168.1.34.sdsc-lm: UDP, length 27 15:06:29.759410 IP 192.168.1.34.sdsc-lm > 192.168.1.133.54039: UDP, length 30 15:06:29.782301 IP 192.168.1.34.3ds-lm > 192.168.1.133.tftp: 32 RRQ
"pxelinux.0" octet blksize 1468

Is this really simple and I have missed something or is it just not possible?

Thankyou guys.

2

Microsoft Surface is an UEFI only device; you won't ever be able to boot pxelinux.0 NBP (which is BIOS only) on that device. That's why you cannot see the booting menu.

If you want to PXE a Microsoft Surface you need something like Serva able to automatically PXE boot/install UEFI and BIOS clients. (I'm related to Serva development)

  • Pat, how can I add UEFI support to the linux pxe server? – user156235 Jun 20 '16 at 9:55
  • 1
    >how can I add UEFI support to the linux pxe server? this does not have an easy answer; basically your dhcp depending on the client architecture provides the corresponding NBP, and the NBP chainloads to the corresponding bootloader. In a multi-asset when offering Windows OSs you also need to deal with the BCD creation and all thta stuf – Pat Jun 20 '16 at 11:52
  • 1
    >want to move it away from running on a windows based server well there's not a Linux based PXE server today doing what Serva does. I could recommend SCCM or MDT but they are also Windows based. I could mention FOG or even Clonezilla but they are HDD image based solutions. – Pat Jun 20 '16 at 11:55
  • 1
    >to serve UEFI devices I need bootx64.efi this is a big misunderstanding; bootx64.efi is a "generic" name that can gotten when renaming syslinux,grub,ipxe,etc UEFI agents... then you need a correctly tuned UEFI boot manager; also not an easy task these days. The last versions of syslinux it includes syslinux.efi but til today it cannt chainload efi images then you cannot install windows. iPXE is a different world good for experimenting bad for working, your only choice could be Grub. – Pat Jun 20 '16 at 14:16
  • 1
    Serva was getting stuck when loading a Windows 7 ISO: bootmgfw.efi if Serva gets stuck when loading bootmgfw.efi you might have a network issue, or a client with old firmware, etc. Also for UEFI compatibility reasons (old clients not implementing the UEFI standard correctly) Serva includes 3 Boot Manager Modes; try i.e. BMM=2; You should probably add a new question with this issue if you want. – Pat Jun 20 '16 at 14:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.