BootBuilder — Build Custom USB/ISO/WIM
EasyDeploy.BootBuilder is a Windows workstation application for building custom USB/ISO/WIM WinPE media. The tool prepares resources in the .cache folder, integrates hardware drivers, and exports a bootable ISO image to be written to USB, or a boot.wim for existing PXE/WDS servers.
1. Prerequisites
Section titled “1. Prerequisites”- Download the toolkit containing
EasyDeploy.BootBuilder.exeand thelinks.mdguide (distributed by CoreSystem). Launch with administrator privileges (Run as administrator). - On first launch, the application automatically creates the
.cachefolder alongside the executable. It also initializes a configuration template (user-config.json) and 2 default profiles. You only need to add the required files to the correct subfolders inside.cache(see table below) — do not delete.cache.
Resource Inventory in the .cache Folder
Section titled “Resource Inventory in the .cache Folder”| Folder | Contents | Required |
|---|---|---|
esd\ |
Windows 11 installation ESD file (*.esd format) |
✅ |
apps\ |
EasyDeploy binary, its .sig and system-config.json |
✅ |
pwsh\ |
PowerShell 7 zip for WinPE: win-x64 (x64 target) or win-arm64 (ARM64 target) |
✅ |
downloads\ |
Hardware drivers organized by vendor: dell\, hp\, intel\, intel-wifi\, lenovo\, others\ |
⭕ |
wallpaper\ |
Image wallpaper.jpg or winpe.jpg for WinPE background customization |
⭕ |
usb\ |
USB payload: folder EASYDEPLOY\ (configurations, profiles), .lic license + Softwares\ (Portable rescue tools) |
⭕ |
System Software Requirements (one-time setup on the workstation)
Section titled “System Software Requirements (one-time setup on the workstation)”| Component | Technical Notes |
|---|---|
| Windows ADK + WinPE add-on | Install the same ADK version, compatible with the Windows ESD version in use. In the ADK installer, under Select the features you want to install, select at least Deployment Tools. |
| PowerShell 7.4+ | Required for the build engine (runs on the build workstation). |
| PowerShell 7 WinPE payload | The zip under pwsh\ must contain a native pwsh.exe for the selected target: PowerShell-7.x-win-x64.zip or PowerShell-7.x-win-arm64.zip. Required for both targets. |
1.1 The Windows ESD — what the build expects
Section titled “1.1 The Windows ESD — what the build expects”- Architecture must match the target. The file name contains
x64FREfor x64 andA64FREfor ARM64. A mismatch is reported in the pre-check before any build work starts. - Any Germanium-core build works — 26100 (24H2), 26200 (25H2) and 26300 (26H2) share the same core. There is no “required” build.
- Edition: the import walks
Enterprise → Pro → Pro N → Home → Educationand takes the first that exists, so a consumer ESD without Enterprise lands on Pro. That is expected, not an error. - Language: the installed image keeps the ESD’s own language; the WinPE / Windows Setup UI is always en-US.
- A new ESD creates a new build folder (
.cache\os\<build>\) — the previous build stays untouched. Delete it to reclaim space.
2. Pre-check
Section titled “2. Pre-check”Launch the tool → click Refresh Precheck → Ensure all items show a green check (✓) before building the ISO:
| Check Item | Required | Technical Meaning |
|---|---|---|
| PowerShell 7.4+ | ✅ | Script build execution environment. |
| PowerShell 7 (WinPE payload) | ✅ | The zip under pwsh\ contains a native pwsh.exe for the selected target (win-x64 / win-arm64). A mismatch blocks the build. |
| ADK + WinPE add-on | ✅ | Windows ADK development toolkit, must be compatible with the ESD file. |
ESD (.cache\esd) |
✅ | Validates existence of the source OS installation file. |
Apps (.cache\apps) |
✅ | Complete EasyDeploy binaries and system configuration file. BootBuilder verifies the YubiKey signature of EasyDeploy.exe to ensure the file has not been tampered with. |
Drivers (.cache\downloads) |
⭕ | Required only when the target device needs specific network or storage drivers. |
Wallpaper (.cache\wallpaper) |
⭕ | Background image. If missing, the default background is used. |
3. Building Media — Build ISO or Build WIM
Section titled “3. Building Media — Build ISO or Build WIM”Both actions share the same pre-check, license selection and driver selection. Pick the output that matches your boot method:
| Action | Output | Use for |
|---|---|---|
| ⚙️ Build ISO | bootmedia.iso (+ bootmedia_ca2023.iso) |
USB (Rufus), disc, or a general-purpose bootable ISO. |
| 📦 Build WIM | boot.wim (under .cache\os\<build>\pxe\) |
Existing PXE/WDS servers that boot a WinPE image over the network. |
3a. Build ISO
Section titled “3a. Build ISO”- When all pre-check conditions pass (green checks), click ⚙️ Build ISO to start.
- Select license (if applicable): The
EasyDeploy Licensedialog will promptDo you have an EasyDeploy license to unlock all features?-
Select Continue without license — build in Free mode: only the 2 default profiles (
1.Tweaks,2.TweaksApp) are copied into the ISO. -
Select I have a license → the
.licfile picker opens directly → choose the file (digitally signed, bound to USB-SN) → BootBuilder verifies it and saves it to.cache\usb\EASYDEPLOY\→ build in Advanced mode: unlimited profiles are automatically copied into the ISO. The license is also embedded into the ISO automatically, so you don’t have to copy it to the USB by hand later (a step that is easy to forget). If the file is rejected (invalid, expired, or not an advanced license), the tool explains why and offers to choose another one. -
Driver Selection: 6 toggles for driver packages (Dell, HP, Intel Ethernet, Intel Wireless, Lenovo, Others) — default ON. Enable only the vendors matching your target hardware. Disabling a driver package only excludes it from the ISO and will not cause a build failure.
- ARM64 targets: the Dell/HP/Intel/Lenovo toggles are disabled (vendor packs are x64-only) — only Others is available.
- Others option: For devices not covered by the 5 groups above. Extract the driver package (containing
*.inffiles) into.cache\downloads\others\(each subfolder = 1 driver package); the tool will automatically integrate it into the ISO.
-
- CA2023: Also generate
bootmedia_ca2023.iso— an ISO supporting Secure Boot with the CA 2023 certificate set (the updated certificates for newer firmware/machines). Default OFF — enable only when Secure Boot is enabled on the target machine.
- Click OK — Start Build to package → Monitor progress and logs in the Console Log window:
- First build: 22–25 minutes (system initializes structure and cache).
- Subsequent builds: Approximately 12 minutes.
- Output files:
bootmedia.iso(andbootmedia_ca2023.isoif the CA2023 option is enabled). Select 📁 Output Folder to open the folder containing the ISO, or 💾 Save Log to export the build log.
3a.1 CA2023 media — when to use it
Section titled “3a.1 CA2023 media — when to use it”bootmedia_ca2023.iso boots through a boot manager signed by Windows UEFI CA 2023, so it only works on firmware whose Secure Boot DB already contains the CA2023 certificate. The standard bootmedia.iso (CA2011) is always produced alongside it, so enabling the toggle never leaves you without a bootable image. If the CA2023 ISO reports a “Security Violation”, use the standard ISO.
| Description | Link |
|---|---|
| Microsoft blog — Updating Microsoft Secure Boot Keys | https://techcommunity.microsoft.com/blog/windows-itpro-blog/updating-microsoft-secure-boot-keys/4055324 |
| CA2023 status check tool (CheckCA2023) | https://github.com/claude-boucher/CheckCA2023 |
| Script to update CA2023 in the Secure Boot DB | https://github.com/mathisokle/SecureBoot-CA2023-Automatic-Update |
3b. Build WIM (PXE/WDS)
Section titled “3b. Build WIM (PXE/WDS)”A supplementary option for teams that still use a WDS/PXE server — not the main (USB-based) workflow. Use it when you only need the WinPE boot image; no ISO is produced.
- When all pre-check conditions pass, click 📦 Build WIM. There is no license dialog and no license check — the build starts right away.
- Driver Selection: identical to the ISO flow. CA2023 is not applicable in WIM mode (no ISO is emitted), so the toggle is disabled.
- Click OK — Build WIM → the engine injects the payload inside the image (
X:\EASYDEPLOY\Profiles,X:\EASYDEPLOY\user-config.jsonandX:\Softwares) so profiles, configuration and tools are available over the network. - Output:
.cache\os\<build>\pxe\boot.wim. Serve this image from your WDS/PXE server.
4. USB Directory Structure After Packaging
Section titled “4. USB Directory Structure After Packaging”[USB]:├── bootmgr, bootmgr.efi├── Boot\ EFI\ en-us\ sources\ ← WinPE boot partition (EasyDeploy.exe integrated in boot.wim)├── EASYDEPLOY\│ ├── user-config.json ← Deployment configuration│ ├── license.lic ← Offline license (place here, embedded into ISO)│ ├── Profiles\ ← Custom profiles (default 1.Tweaks and 2.TweaksApp)│ └── OS\ ← (Optional) Offline/hybrid OS installation source└── Softwares\ ← Portable rescue software and tools5. Quick Customization
Section titled “5. Quick Customization”| Goal | Action |
|---|---|
| Change WinPE wallpaper | Place an image named wallpaper.jpg or winpe.jpg in .cache\wallpaper\ |
| Customize post-install Profile | Edit configuration or scripts in usb\EASYDEPLOY\Profiles\ — Free: 2 profiles, Advanced: unlimited (details bundled with Advanced .lic) |
| Add rescue tools | Copy Portable software into usb\Softwares\ (apps are not included in the release package — bring your own; keep the toolPaths folder structure or declare it in user-config.json; unlimited count — extras run via F6/F8/cmd) |
| Add drivers for other vendors (Others) | Extract the driver package containing *.inf into .cache\downloads\others\ (each subfolder = 1 driver package). Use the vendor’s WinPE 10/11 drivers. |
| Select driver packages | Use the toggle switches in the build settings UI |
6. Safe Operation Recommendations
Section titled “6. Safe Operation Recommendations”- Power: Disable automatic sleep during the build (especially the first build, ~22–25 minutes) to avoid interruption.
- Conflicts: only one BootBuilder instance can run at a time — the tool enforces it, because two instances would share the cache and a DISM mount. Use one instance per cache/architecture.
- Power loss: If interrupted, relaunch the tool — the system automatically cleans up temporary files and resumes normally.
7. Next Steps
Section titled “7. Next Steps”After successfully exporting the ISO: Write the ISO to USB with Rufus → configure user-config.json for the customer (see Getting Started with EASYDEPLOY or Quick Start) → hand over the USB to the technician or customer.