Professional Documents
Culture Documents
< Technical
Best practices
Windows Deployment Services (WDS) is a great addition to the Windows product set. Out of the box, it’s able to deploy Windows VMs, and with a couple of
small tweaks, it’s possible to have WDS build Linux and VMware servers, all from a selectable Preboot eXecution Environment (PXE) boot menu.
To configure WDS to be able to deploy Windows and Linux systems requires some command line changes. Essentially, the PXE boot loader used by
Windows needs to be swapped out for a Linux one. Once done, a menu entry is created to allow the Linux PXE boot menu to hand over to Windows for
Windows builds, and IIS is used to provide a web interface for downloading the Linux config files.
The WDS setup I currently use builds Windows, CentOS and ESXi. I’ll be focusing on those three operating systems as I go through this article. There is no
reason that others couldn’t be used.
Taking a clean Windows server, I like to provide a 60GB C: drive for the OS and a 300GB WDS drive for the various WIM files for deployment of Windows
and for the Linux install files.
Now that we have the basic Windows Deployment Services server installed, we need to make some changes to the DHCP pool. If you like, you can add a
second NIC to this server and have a dedicated network built off it, but personally, I like to be able to build my servers on the main network anyway, so I
prefer to update the central DHCP server with the additional WDS DHCP attributes:
The “Boot Server Host Name” is the IP address of the WDS server.
The “Bootfile Name” is the WDS executable that we want the client to run.
The other three options are pretty standard for most DHCP setups.
On the WDS server, launch the configuration wizard and finish up the WDS configuration. There are a few minor changes I like to make to the setup.
https://www.veeam.com/blog/windows-deployment-service-guide.html 1/7
10/15/2022 Step-by-step guide to deploy different OSes through Windows Deployment Services
You can integrate this server with AD, as at this point we are configuring the Windows options, but I prefer a standalone server that responds to all requests
and doesn’t need AD pre-staging.
https://www.veeam.com/blog/windows-deployment-service-guide.html 2/7
10/15/2022 Step-by-step guide to deploy different OSes through Windows Deployment Services
I change the C:\RemoteInstall to E:\RemoteInstall – E: being the second drive that I add to the WDS server specifically for WIM files, Linux files and so on.
Menu FREE TRIAL
As above, I like my PXE server to respond to all requests as it just saves having to approve things in AD.
The last option to change is on the PXE menu, for that you’ll have to launch the WDS deployment console and right-click on the server name and change the
option under the boot tab from “Require the user to press F12 key to continue the PXE boot” to “Always continue the PXE boot.”
You can now add .WIM files to WDS. Grab a “boot.wim” and “install.wim” from a Windows 2016 ISO and you’re good to go with WDS deploying Windows
images.
You should be able to PXE boot a VM and get the standard Windows-only WDS boot screen. It’s good to test at this point just to make sure that everything
works because from here we start to make some changes to the fundamentals of WDS which will allow it to provide both Linux and ESXi installs.
To do this, we need a copy of sysLinux. Do NOT download anything newer than 3.86 as it won’t work with ESXi as their installer is still based on 3.86.
Once you have a copy of sysLinux 3.86, extract it all to a temp folder, and we need to move a few files around. This is a little bit of messing around and the
most annoying part of the whole install!
core\pxeLinux.0
com32\menu\vesamenu.c32
com32\modules\chain.c32
https://www.veeam.com/blog/windows-deployment-service-guide.html 3/7
10/15/2022 Step-by-step guide to deploy different OSes through Windows Deployment Services
From the CLI, run the following commands — this changes the boot loader over to the Linux PXE loader.
Finally, in both the x86 and x64 folders, create a subfolder called pxeLinux.cfg, and in there create a file called “default” and copy in the following text — this
will set up your boot menu.
DEFAULT vesamenu.c32
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
TIMEOUT 0
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
#—
LABEL wds
MENU DEFAULT
KERNEL pxeboot.0
#—
LABEL CentOS68
KERNEL /web/CentOS/6.8/images/pxeboot/vmlinuz
#—
LABEL CentOS72
KERNEL /web/CentOS/7.2/images/pxeboot/vmlinuz
Menu FREE TRIAL
append initrd=/web/CentOS/7.2/images/pxeboot/initrd.img
#—
LABEL VMWare500U3
KERNEL /web/VMWare/5.0.0/U3/mboot.c32
APPEND -c /web/VMWare/5.0.0/U3/boot.cfg
#—
LABEL VMWare553b
KERNEL /web/VMWare/5.5.0/U3b/mboot.c32
APPEND -c /web/VMWare/5.5.0/U3b/boot.cfg
#—
LABEL VMWare60
KERNEL /web/VMWare/6.0/mboot.c32
APPEND -c /web/VMWare/6.0/boot.cfg
#—
LABEL VMWare65
KERNEL /web/VMWare/6.5/mboot.c32
APPEND -c /web/VMWare/6.5/boot.cfg
#—
LABEL Abort
Kernel abortpxe.0
#—
LABEL local
LOCALBOOT 0
Type 0x80
In IIS, file browsing needs to be enabled so that the Linux installer and the VMware installer can pull files.
https://www.veeam.com/blog/windows-deployment-service-guide.html 5/7
10/15/2022 Step-by-step guide to deploy different OSes through Windows Deployment Services
Launch the IIS administration tool and click on your server -> Default site -> Directory browsing and enable it.
Menu FREE TRIAL
You can also make the server HTTPS which isn’t a bad idea.
Add Linux
At this point, we can add in a Linux install. The way I do this is:
download the smallest ISO version of CentOS (normally the minimal ISO install), mount the ISO and copy the contents to “E:\web\centos\7.x\7.[version]” or
something that is equally memorable. Once done, you can add in things like a kickstart file to make the install truly hands off. As an example of this, here is
the entry I use in the default pxeLinux.cfg file:
LABEL CentOS72
KERNEL /web/CentOS/7.2/images/pxeboot/vmlinuz
Add VMware
And for the final part, let’s drop in ESXi 6.5. Again, this is just a matter of copying all the files from the VMware ISO into the relevant folder on the WDS
server, but once that’s done, you should edit the boot.cfg file in the VMware folder and remove the spaces. So it looks like this:
In conclusion, modifying the WDS server, IIS and the various config files can be a bit of pain, but once the tweaks have been made, you’ll be able to use the
PXE menu to hand over to WDS and select any Windows OS that supports a WIM file. Plus you can get it to launch Linux installs that perform a full hands off
install and the same goes for VMware. You can also add in other applications such as GParted and Memtest which can all come in quite handy.
See Also:
https://www.veeam.com/blog/windows-deployment-service-guide.html 6/7
10/15/2022 Step-by-step guide to deploy different OSes through Windows Deployment Services
Gary Williams
Menuadministrator
Gary is a virtualisation, storage and Windows systems FREE
whoTRIAL
also occasionally ventures into Linux, networking and cloud areas.
Container user, Windows tech, Veeam Vanguard, Spiceworks moderator
and a very firm believer that the best way to solve a problem is to start with
a hot cup of tea.
NEW
V11A
Eliminate Data Loss
START FREE TRIAL
Eliminate Ransomware
Connect with us
1 800 691 1991
9am - 8pm ET
Change language
©2022 Veeam® Software | Privacy Notice | Cookie Notice | EULA | Licensing Policy | Supplier Resources
https://www.veeam.com/blog/windows-deployment-service-guide.html 7/7