PXE Boot thingies
Posted: Sat Nov 30, 2024 4:32 am
Long time (sorry I've been busy af (sorta)) but here is my blog post on my kinda funny (and painful) journey on PXE Boot thingies!
The current system
What I have running now is Windows Deployment Services in a Server 2019 Datacenter VM with a few images
Pros:
- Simple to set up
- Integrates well with what I install mostly (pre-release Windows builds)
Cons:
- Sometimes doesn't work and you need to troubleshoot things
- Doens't support linux (though i think there are ways around this?)
What I had tried before
Attempt 1: WDS
How it went? Good (for a little bit), then it went to shit
Problems it had:
- Windows was Windowsing and deciding to be slow and choppy regarding disk speed
- Would randomly recieve an error about BCD things, trying to fix this once resulted in this happening always with UEFI
- Didn't work with Legacy BIOS on Proxmox
What I did:
scrapped it, tried iventoy
Attempt 2: iVentoy + deploying images via smb share
What went well:
- Could boot any image
What went wrong:
- Could break at any time with the wrong iso added
- Deploying Windows Images would often go wrong due to bcdbooting
- The custom WinPE i made for it had to have the absolute right screen res set, or else it'd look stupid
Attempt 3: WDS Attempt 2
What went good:
- I figured out how to set WDS up properly and more important, what not to do.
- The setup mostly works now
What went wrong:
- Was a pain in the ass to set up, well not really, but it was a tedious rabbit hole of finding random answers on old forums that may have worked.
Anyway, here is my guide on how to set up WDS:
How to set up WDS
Step 1: Install Windows Server 2019 Desktop Experience , standard or datacenter doesn't matter (2022 may also work, don't think 2025 does)
Step 2: Enable WDS Role via server manager (look up how to do this)
Step 3: Configure via right-clicking in the Windows Deployment Services manager
Step 4: Close out of the add images window, and add the boot (boot.wim files) and install (install.wim) files to the boot and install images directory
(OPTIONAL, but i'd recommened these 2 steps:
1: Set up seperate image groups (some for pre-release, some for release, some for custom)
2: Change security to require a different account via the security settings (i.e. [email protected]), you don't want everyone knowing your server admin password)
Step 5: Add the following to DNSMASQ (if you're using it, unsure about other solutions):
Step 6:
You are done, happy WDSing
Important notes:
- Do NOT, and I repeat, do NOT mess with files in the WDS directories, you will have to reinstall if smthn goes wrong
- If you are using proxmox VMs, set the machine type to "pc-q35-9.0", else you get a firewall error for no reason
- If the server dies, don't reinstall, instead, disable or remove the latest image you added
I hope you guys learned something from this blog post![Smile :)](./images/smilies/icon_e_smile.gif)
The current system
What I have running now is Windows Deployment Services in a Server 2019 Datacenter VM with a few images
Pros:
- Simple to set up
- Integrates well with what I install mostly (pre-release Windows builds)
Cons:
- Sometimes doesn't work and you need to troubleshoot things
- Doens't support linux (though i think there are ways around this?)
What I had tried before
Attempt 1: WDS
How it went? Good (for a little bit), then it went to shit
Problems it had:
- Windows was Windowsing and deciding to be slow and choppy regarding disk speed
- Would randomly recieve an error about BCD things, trying to fix this once resulted in this happening always with UEFI
- Didn't work with Legacy BIOS on Proxmox
What I did:
scrapped it, tried iventoy
Attempt 2: iVentoy + deploying images via smb share
What went well:
- Could boot any image
What went wrong:
- Could break at any time with the wrong iso added
- Deploying Windows Images would often go wrong due to bcdbooting
- The custom WinPE i made for it had to have the absolute right screen res set, or else it'd look stupid
Attempt 3: WDS Attempt 2
What went good:
- I figured out how to set WDS up properly and more important, what not to do.
- The setup mostly works now
What went wrong:
- Was a pain in the ass to set up, well not really, but it was a tedious rabbit hole of finding random answers on old forums that may have worked.
Anyway, here is my guide on how to set up WDS:
How to set up WDS
Step 1: Install Windows Server 2019 Desktop Experience , standard or datacenter doesn't matter (2022 may also work, don't think 2025 does)
Step 2: Enable WDS Role via server manager (look up how to do this)
Step 3: Configure via right-clicking in the Windows Deployment Services manager
Step 4: Close out of the add images window, and add the boot (boot.wim files) and install (install.wim) files to the boot and install images directory
(OPTIONAL, but i'd recommened these 2 steps:
1: Set up seperate image groups (some for pre-release, some for release, some for custom)
2: Change security to require a different account via the security settings (i.e. [email protected]), you don't want everyone knowing your server admin password)
Step 5: Add the following to DNSMASQ (if you're using it, unsure about other solutions):
Code: Select all
dhcp-boot=net:BIOS,Boot%5Cx64%5Cwdsnbp.com,,(insert wds server ip here)
dhcp-boot=net:UEFI32,boot%5Cx86%5Cwdsmgfw.efi,,(insert wds server ip here)
dhcp-boot=net:UEFI,boot%5Cx64%5Cwdsmgfw.efi,,(insert wds server ip here)
dhcp-option-force=3,192.168.1.1
dhcp-option=vendor:PXEClient, 1,0.0.0.0 #(this actually needs to be 0.0.0.0)
dhcp-vendorclass=BIOS,PXEClient:Arch:00000
dhcp-vendorclass=UEFI32,PXEClient:Arch:00006
dhcp-vendorclass=UEFI,PXEClient:Arch:00007
dhcp-vendorclass=UEFI64,PXEClient:Arch:00009
You are done, happy WDSing
Important notes:
- Do NOT, and I repeat, do NOT mess with files in the WDS directories, you will have to reinstall if smthn goes wrong
- If you are using proxmox VMs, set the machine type to "pc-q35-9.0", else you get a firewall error for no reason
- If the server dies, don't reinstall, instead, disable or remove the latest image you added
I hope you guys learned something from this blog post
![Smile :)](./images/smilies/icon_e_smile.gif)