Creating a generic (hardware independent) Windows 10 installation media with latest updates?

henris

New Member
I'm evaluating NTLite to be used in our Windows 10 installation process. We build custom PCs and thus the hardware and drivers differ most times. We would like to inject latest updates to the Windows image especially for Windows 10 Enterprise 2019 LTSC which takes a lot of time and reboots to update online. We are not looking to include any special drivers but the original generic drivers should be there. We are using autounattend.xml for automated installation.

The updates part seemed to go well and according to tutorials. It nicely matched our manual dism / Microsoft catalog based method. But I do not understand the drivers part. If i want the original drivers from the original installation media to be available what should I select/do? When I went through couple of the tutorials and produced an USB media, the installation failed with drivers missing error. The other documentation seemed to indicate that the drivers are based either the computer creating the image or hwlist exported from a target computer. We want neither, we want a generic driver set identical to the original Windows 10 installation media.

I think I'm missing something obvious as this must be one of the most common use cases. I just could not find a tutorial which I could follow and have a working installation media.

Any help is appreciated!
 
Solution
I can confirm that the simplified process worked. So fully automated Win 10 Enterprise IoT 2019 LTSC installation with 2021-10 updates integrated! From start to finish it took ~20 minutes where most of the time was spent in the update integration.

The simplified process
  1. Windows \ Mount original ISO-image
  2. Windows \ Copy original install.wim from the mounted image to a working dir <workdir>
  3. NTLite \ Start \ Source \ Add \ Image File <workdir>\install.wim
  4. NTLite \ Start \ Source \ Load the added image
  5. NTLite \ Integrate \ Updates \ Add \ Latest online updates.
    1. The default selected ones seem to be correct latest updates.
    2. Enqueue updates (to be downloaded, extracted and integrated when writing the final...
drivers aside(leaving that for the more knowledgable people),

2019 LTSC which takes a lot of time and reboots to update online.
i use a single language iso which i manually update post install then sysprep.

updates etc i currently use, listed in their installation order.
02-windows10.0-kb5005112-x64.msu SS
03-enable-net-3.5.cmd
04-windows10.0-kb4486153-x64.msu Net 4.8
05-windowsdesktop-runtime-5.0.11-win-x64.exe
06-windows10.0-kb5004332-x64-ndp48.msu Nets CU
07-windows10.0-kb5005030-x64.msu CU (17763.2114)

all updates are gathered beforehand. Net4.8 and CU both require a restart but are safe to do in a single restart, restart then sysprep.
i know the full update process is quick in my opinion, so im gonna take a conservative guess at somewhere between 10 to 15 minutes.
what do you call a lot of time?

my guess its windows update scanning that is eating up the time.
 
Last edited:
I meant that 2019 LTSC takes a lot of time if it is updated via the "normal" Windows online update method when using the original installation media. But this has nothing to do with NTLite, it is just the inspriration to use NTLite or DISM to inject the updates to the installation media.

The updates seem to be working fine with NTLite but the problem is including the generic drivers from the original installation media.
 
The updates part seemed to go well and according to tutorials. It nicely matched our manual dism / Microsoft catalog based method. But I do not understand the drivers part. If i want the original drivers from the original installation media to be available what should I select/do? When I went through couple of the tutorials and produced an USB media, the installation failed with drivers missing error. The other documentation seemed to indicate that the drivers are based either the computer creating the image or hwlist exported from a target computer. We want neither, we want a generic driver set identical to the original Windows 10 installation media.

I think I'm missing something obvious as this must be one of the most common use cases. I just could not find a tutorial which I could follow and have a working installation media.
The default drivers that are on the media are not touched if you didn't remove them.
Btw for a generic image which gets deployed to other machines, don't remove components, probably goes without saying.

For updates there is no need for any work other than - Load image - Updates page - toolbar - Add - Latest online updates - Enqueue.

For your particular driver error, does the non-updated ISO works in the same machine?
If so, one cause comes to mind:
updated image with Dynamic Update KB, but the boot.wim wasn't copied to the destination, only Install.wim.
Meaning, allow NTLite to update both install.wim and boot.wim when integrating Dynamic Updates, and copy both to the USB, if you do selective copying.
If you use a generated ISO from the whole image folder to prepare a USB stick, then these 2 files are already copied and the issue is elsewhere.
Note that first you need to have a working method for an original ISO, to be able to test the updated ones.
 
windows update scanning time cant be helped.
You're missing the point, he helped the times by integrating the updates, so not all machines need to go over the update on install.
The drivers, or more correctly the boot driver error is the only question.
 
The non-updated ISO is an original Windows 10 LTSC 2019 ISO-image without any changes. It is fully functional both with manual and autounattend setup methods.

None of the tutorials I have followed have mentioned anything about the boot.wim. They are all just loading the install.wim, adding updates and then Apply to create the final iso. This is also how the dism handles the update injection. We have succesfully created a working installation media with dism. We had some trouble with split wim so we ended up using the FAT32+NTFS partition USB method described here:
https://win10.guru/usb-install-media-with-larger-than-4gb-wim-file/

What would be the additional steps to allow NTLite also to update/include boot.wim?

I think I will also take a deeper dive to the NTLite documentation and make sure I have followed all the critical steps of the standard workflow.
 
Just read through the documentation and guides. Could not find anything obvious but I realised that I could use NTLite in a simpler way. Previously I had loaded the full iso (not just the install.wim), modified it and then created a completely new ISO. Instead I could just load the install.wim, add updates and then apply to the install.wim. Then I can just replace the install.wim in our FAT32/NTFS USB media with the NTLite created one. It should work identially to the install.wim created with dism.

And this is now under work. I'll report back if I get this barebone process working.

Really appreciate the answers given. Lightning fast :)
 
Last edited:
You're missing the point,
Yes but on occasion things can go really wrong, weve seen it many times here where something takes an hour or hours that should take minutes so giving the OP a comparison knows whether that bit is going right or wrong for them.
 
I can confirm that the simplified process worked. So fully automated Win 10 Enterprise IoT 2019 LTSC installation with 2021-10 updates integrated! From start to finish it took ~20 minutes where most of the time was spent in the update integration.

The simplified process
  1. Windows \ Mount original ISO-image
  2. Windows \ Copy original install.wim from the mounted image to a working dir <workdir>
  3. NTLite \ Start \ Source \ Add \ Image File <workdir>\install.wim
  4. NTLite \ Start \ Source \ Load the added image
  5. NTLite \ Integrate \ Updates \ Add \ Latest online updates.
    1. The default selected ones seem to be correct latest updates.
    2. Enqueue updates (to be downloaded, extracted and integrated when writing the final image)
  6. NTLite \ Finish \ Apply \ Process
    1. Saving mode = Save the image
    2. Image format = Standard, editable (WIM) Note: this will generate a wim file larger than 4GB so you will need to use FAT32/NTFS dual partition USB to hold it.
  7. Prepare a dual partition USB to support the larger than 4GB wim file
    1. Follow these instructions https://win10.guru/usb-install-media-with-larger-than-4gb-wim-file/
    2. Copy the generated install.wim to the sources folder of the larger NTFS partition
  8. Sprinkle some autounattend.xml magic on top, well actually place the file in the root of the NTFS partition
    1. I created the autounattend.xml file with SIM.
    2. I used Win 10 Home image and then just duplicated the file to different versions (Home, Pro, LTSC) and languages.
    3. Between versions the only difference was the generic product key used
    4. Between languages we had multiple combinations of installation, display and reqional settings.

Some additional notes:
  • I will make a workflow where I always start from the original installation ISO image and then apply latest updates. I don't think it makes sense to incrementally add new updates. At least you would have to remove the old, unnecessary packages.
  • We provide most of our computers with a local admin user OOBE completed. This is what our customers prefer.
  • I will later analyse what went wrong when using the image folder + ISO creation process.
 
Solution
None of the tutorials I have followed have mentioned anything about the boot.wim. They are all just loading the install.wim, adding updates and then Apply to create the final iso.

boot.wim only needs special drivers if the boot image doesn't boot, or requires disk or controller support. After Setup completes copying files, the system reboots into the extracted install.wim image to continue installation.

LTSC 2019 is relatively new, its generic drivers can handle most HW. But older releases may need help. This is where the "install drivers into boot.wim" advice comes from.
 
You can also simply not include dynamic update. This is only useful in in-place upgrade scenarios. For clean installations it won't matter as far as I know.
 
I guess this was related to the previous comment by nuhi
updated image with Dynamic Update KB, but the boot.wim wasn't copied to the destination, only Install.wim.
Meaning, allow NTLite to update both install.wim and boot.wim when integrating Dynamic Updates, and copy both to the USB, if you do selective copying.
I didn't explicitly add or enable dynamic updates. I used NTLite \ Integrate \ Updates \ Add \ Latest online updates with default settings and selections. Does this include dynamic updates?
 
Dynamic updates for the boot.wim - Microsoft Windows Setup are included in the tools update lists, you may have to select it though. im showing kb5005545 for 1809, windows10.0-kb5005545-x64_b476c22b52917ad95a4f16c615c9d10c328b0347.cab
it'll be the last on the list at the bottom once downloaded.
 
Dynamic updates may be useful if your image is slightly out of date. Let's compare different possibilities:

- System builder/integrator who will update their images quickly. DU has no benefit.
- IT organization who will update their image once or twice a year. DU is helpful since you don't need to run WU post-setup.
- Image is out of date for a year or more. DU has no benefit, since it's better to create a new image.
 
Thank you for all these answers on the dynamic updates! Our current needs are related to having an updated installation media for deploying computers with varying hardware. We are using current versions (Win 10/11 and their variants) so I think we will not need dynamic updates. But it is still important to understand the concept.

I have marked the "Simplified process" post as the solution to this thread. Our original issue has been fully solved. Thanks for the help!
 
I didn't explicitly add or enable dynamic updates. I used NTLite \ Integrate \ Updates \ Add \ Latest online updates with default settings and selections. Does this include dynamic updates?
Yes, dynamic updates are selected by default.
Capture.png

But it looks like in the new version 2.3.1.8454 nuhi has fixed this :)

Dynamic updates are just updated setup files that are copied to the media folder. As the sources\setup.exe file is usually changed it is necessary to copy this file to the sources folder of the boot.wim index 2 also otherwise the error during setup appears.

More information at the link below.

Dynamic Update
 
So, I just saw the term "dynamic update" in the NTLite list of available updates for Win10.

On its face, I don't like the idea of anything "dynamic" from MS - implies sniffing and phoning home. So if I'm going to install an update (which I've stopped doing), I want it to be static.

After reading this thread, it seems that a dynamic update is only "needed' (or perhaps desired) when installing Windows fresh into a bare bones PC.

Is this correct?

I read from MS, that "This topic explains how to acquire and apply Dynamic Update packages to existing Windows images prior to deployment ..."

That is, normal users who are just updating a Live image don't need to download dynamic updates?
 
Dynamic Update is the optional step of running WU during installation, and downloading newer updates for Setup.
This saves you the step of running WU after install, if you have an outdated image.

If you want control over what gets installed, don't enable it.

During a clean install, it takes effect after the 2nd reboot assuming your network is reachable.
During an in-place upgrade, it downloads updates before Setup runs.
On a live system, it doesn't do anything. You have WU for handling updates, or manual installation of MSU's.

https://techcommunity.microsoft.com...fits-of-windows-10-dynamic-update/ba-p/467847

What is updated by Dynamic Update?

There are several core components that can be updated by Dynamic Update, including:
  • Setup DU: Fixes to Setup binaries or any files that Setup uses for feature updates.
  • SafeOS DU: Fixes for the ‘safe OS’ that we use to update Windows recovery environment (WinRE).
  • Servicing Stack Update (SSU)/Critical DU: Fixes that are necessary to address the Windows 10 servicing stack issue and thus required to complete the feature update.
  • Latest Cumulative Update (LCU)/General Distribution Release (GDR) DU: Installs the latest cumulative quality update.
  • Language Pack (LP) and Feature On Demand (FOD) DU: Preserves users’ installed language packs and optional features by reinstalling them.
  • Driver DU: Latest version of applicable drivers that have been already published by manufacturers (OEMs and/or IHVs) into Windows Update and specifically targeted for Dynamic Update.

DU packages are often updated, because it has to match every change to SSU formats.
 
Last edited:
Back
Top