Use WDS to PXE Linux

lupinlicious 136 Reputation points
2023-10-20T04:04:00.0333333+00:00

Hello,

I'm trying to accomplish to integrate syslinux together with WDS, and i'm tried the following guides:

https://kenvb.gitbook.io/deploy-linux-with-microsoft-wds/adding-syslinux

https://www.d7xtech.com/tech-info/network-boot-guide/install-syslinux-on-wds/

Unfortunately, either nothing happens or WDS encountering an error 0x000000102

It would be nice to PXE boot and start MDT/WDS, Ubuntu and other tools like memtest etc.

Anyone who succeeded with this or can share their steps, guides/videos?

If you like to give it and try and then restore WDS config, you can do it with the following commands

wdsutil /set-server /bootprogram:boot\x86\pxeboot.com /architecture:x86

wdsutil /set-server /bootprogram:boot\x64\pxeboot.com /architecture:x64

wdsutil /set-server /bootprogram:boot\arm64\bootmgfw.efi /architecture:arm64

wdsutil /set-server /bootprogram:boot\arm\bootmgfw.efi /architecture:arm

wdsutil /set-server /bootprogram:Boot\x86\bootmgfw.efi /architecture:x86uefi

wdsutil /set-server /bootprogram:Boot\x64\bootmgfw.efi /architecture:x64uefi

wdsutil /set-server /N12bootprogram:boot\x86\pxeboot.n12 /architecture:x86

wdsutil /set-server /N12bootprogram:boot\x64\pxeboot.n12 /architecture:x64

wdsutil /set-server /N12bootprogram:boot\arm64\bootmgfw.efi /architecture:arm64

wdsutil /set-server /N12bootprogram:boot\arm\bootmgfw.efi /architecture:arm

wdsutil /set-server /N12bootprogram:Boot\x86\bootmgfw.efi /architecture:x86uefi

wdsutil /set-server /N12bootprogram:Boot\x64\bootmgfw.efi /architecture:x64uefi

and WDS should boot your Litetouch image again.

Microsoft Deployment Toolkit
Microsoft Deployment Toolkit
A collection of Microsoft tools and documentation for automating desktop and server deployment. Previously known as Microsoft Solution Accelerator for Business Desktop Deployment (BDD).
915 questions
{count} votes

2 answers

Sort by: Most helpful
  1. lupinlicious 136 Reputation points
    2023-10-20T16:04:15.86+00:00

    I'm able to PXE boot with legacy, I see the menu with WDS and if I click on the menu it starts to load LiteTouch.wim.

    But if I'm switching to UEFI, I get "Windows Deployment Services encountered an error:
    Error code: 0x000026c

    User's image

    0 comments No comments

  2. lupinlicious 136 Reputation points
    2023-10-21T05:38:45.0166667+00:00

    With this I can PXE-boot with UEFI and I see my menu, but when I click on WDS nothing happens.
    I have also added C:\RemoteInstall\Boot\x64\pxelinux.cfg\default and in the default it looks like

    DEFAULT      vesamenu.c32
     PROMPT       0
     NOESCAPE     0
     ALLOWOPTIONS 0
     # Timeout in units of 1/10 s
     TIMEOUT 300
     MENU MARGIN 10
     MENU ROWS 16
     MENU TABMSGROW 21
     MENU TIMEOUTROW 26
     MENU COLOR BORDER 30;44        #20ffffff #00000000 none
     MENU COLOR SCROLLBAR 30;44        #20ffffff #00000000 none
     MENU COLOR TITLE 0         #ffffffff #00000000 none
     MENU COLOR SEL   30;47        #40000000 #20ffffff
    
     MENU TITLE PXE Boot Menu
      #---
     LABEL wds
     MENU LABEL Windows Deployment Services
     KERNEL pxeboot.0
      #---
     LABEL Abort
     MENU LABEL AbortPXE
     Kernel    abortpxe.0
      #---
     LABEL local 
     MENU DEFAULT
     MENU LABEL Boot from Harddisk
     LOCALBOOT 0
     Type 0x80
    

    Save this as a bat file

    @echo off

    :: Download syslinux version 6.04-pre2

    echo Downloading syslinux 6.04-pre2...

    powershell -Command "Invoke-WebRequest https://www.zytor.com/pub/syslinux/Testing/6.04/syslinux-6.04-pre2.zip -OutFile syslinux-6.04-pre2.zip"

    :: Extract files from the syslinux archive

    echo Extracting syslinux 6.04-pre2...

    powershell Expand-Archive -Path "syslinux-6.04-pre2.zip" -DestinationPath "syslinux-6.04-pre2"

    :: Copy EFI syslinux files

    copy "syslinux-6.04-pre2\efi64\efi\syslinux.efi" "c:\remoteinstall\boot\x64\pxelinux.0"

    copy "syslinux-6.04-pre2\efi64\com32\elflink\ldlinux\ldlinux.e64" "c:\remoteinstall\boot\x64\ldlinux.e64"

    copy "syslinux-6.04-pre2\efi64\com32\menu\menu.c32" "c:\remoteinstall\boot\x64\menu.c32"

    copy "syslinux-6.04-pre2\efi64\com32\menu\vesamenu.c32" "c:\remoteinstall\boot\x64\vesamenu.c32"

    copy "syslinux-6.04-pre2\efi64\com32\chain\chain.c32" "c:\remoteinstall\boot\x64\chain.c32"

    copy "syslinux-6.04-pre2\efi64\com32\modules\reboot.c32" "c:\remoteinstall\boot\x64\reboot.c32"

    copy "syslinux-6.04-pre2\efi64\com32\modules\poweroff.c32" "c:\remoteinstall\boot\x64\poweroff.c32"

    copy "syslinux-6.04-pre2\efi64\com32\lib\libcom32.c32" "c:\remoteinstall\boot\x64\libcom32.c32"

    copy "syslinux-6.04-pre2\efi64\com32\libutil\libutil.c32" "c:\remoteinstall\boot\x64\libutil.c32"

    copy "syslinux-6.04-pre2\efi64\com32\modules\linux.c32" "c:\remoteinstall\boot\x64\linux.c32"

    copy "syslinux-6.04-pre2\efi64\com32\cmenu\libmenu\libmenu.c32" "c:\remoteinstall\boot\x64\libmenu.c32"

    copy "syslinux-6.04-pre2\efi64\com32\gpllib\libgpl.c32" "c:\remoteinstall\boot\x64\libgpl.c32"

    copy "syslinux-6.04-pre2\efi64\com32\lua\src\liblua.c32" "c:\remoteinstall\boot\x64\liblua.c32"

    copy "syslinux-6.04-pre2\bios\memdisk\memdisk" "c:\remoteinstall\boot\x64\memdisk"

    :: Rename files

    echo Renaming files...

    copy /y c:\RemoteInstall\boot\x64\pxeboot.n12 c:\remoteinstall\boot\x64\pxeboot.0

    copy /y c:\RemoteInstall\boot\x64\abortpxe.com c:\remoteinstall\boot\x64\abortpxe.0

    :: Set the server boot program

    echo Setting PXE default path...

    wdsutil /set-server /bootprogram:boot\x86\pxelinux.com /architecture:x86

    wdsutil /set-server /bootprogram:boot\x64\pxelinux.com /architecture:x64

    wdsutil /set-server /N12bootprogram:boot\x86\pxelinux.com /architecture:x86

    wdsutil /set-server /N12bootprogram:boot\x64\pxelinux.com /architecture:x64

    wdsutil /set-server /bootprogram:boot\x64\syslinux.efi /architecture:x64UEFI

    wdsutil /set-server /N12bootprogram:boot\x64\syslinux.efi /architecture:x64UEFI

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.