Installing Windows 11 (from ISO) on real hardware (without SB and/or TPM 2.0 support)
Created: |
Last Update: |
---|---|
Authors: |
|
Status: | Draft |
Supported Windows |
Disclaimer: Some drivers may fail to load, the guide will be updated with extra tips on extending driver compatibility laterWIP
Overview
Here's some quick notes on installing Windows 10X11 on real hardware from cabs.ISO in case when hardware doesn't support TPM and/or SB (Secure Boot). For this example, we're assuming a system with no other critical disks installed, and a helpful host system being around to set up the initial image.
This guide has been created for the 2027921996.1 version of Windows 10X.11.
Prerequisites
Host
- Windows 10 Iron or Cobalt (20279 or 21xxx+) - though 20H2 can also work just fine
- Utility USB flash drive of ~8GB+
Target
Graphics card with DCHU drivers availableUEFI system firmware with the ability todisable Secure Boot- Boot drive larger than
10050 GiB Learn how to disable Secure Boot in your device, and change its boot order to allow booting from the USB Flash Drive
Peripherals
Note: If your device doesn't have a built-in Ethernet adapter, prepare an external Ethernet adapter (USB/USB-C/USB-C Hub with Ethernet). You won't be able to pass through the OOBE without internet connection.
Common: Files & Tools
Workspace
CreateDownloadaWindowsfolder11called 10X in the root of your drive, e.g,C:\10XCreate a subfolder calledSourcesCreate a subfolder calledDCHUDriversUseDownloadv0.3.0.0.WindowsreleaseUSB/DVD Toolof the Gus's UUPMediaCreator(https://github.com/gus33000/UUPMediaCreator)) to download bits by typing this command in the Command Prompt (wheredlfolderis the place to put downloaded bits, e.g.,C:\10X\dlfolder, andamd64specifies the architecture; you can specifyarm64for ARM64 build of Windows 10X):
uupdownload -o dlfolder -s Lite -t amd64 -r External -b Dev -a CB -c fe_release_10x -v 10.0.20279.1002
Note: you can use -z Test param to download Test build of Windows 10X which includes non-production components.
Put them intoSourcesfolder (e.g.,C:\10X\Sources)Make sure that bits are inSourcesfolder directly (\10X\Sources\*compdb*.cabshould be at this level)Downloadoverlay.zipfrom RafaelUnpack it to yourSourcesfolder (e.g.,C:\10X\Sources)Open command line in theSourcesfolder and runfixup.cmdin itCopy the appx folder from it to the root of your packages folder (C:\10X\Sources)MoveFMfolder from\10X\Sourcesto\10XMoveOEMInput.xmlfrom\10X\Sourcesto\10XYour resulting folder structure should look like this:
(disk root)
|
-----10X
|
------DCHUDrivers
------FM
------Sources
|
-----appx (includes folders for each AppX)
-----Retail
|
-----%Architecture_Name% (e.g., AMD64)
|
-----fre (includes the rest of the cabs)
-----(several top-most cabs with compdb in the name, and .uupmcreplay file)
------OEMInput.xml
Install Tools
Note: Both ADK and WinPE should have the same or higher version as your Windows 10X Image.
[Optional] If you have previous kits (e.g., WP8 Tools), remove themDownload the ADK Insider Preview ISOfor your host OS version (only tested withWindows_InsiderPreview_ADK_en-us_20279.iso)- Install
Deployment Tools,ICD,Configuration Designer, and uncheck the rest if possible/as needed Download the Windows Preinstallation Environment ISOfor your host OS version (only tested with 20279 version)InstallWindows Preinstallation Environment
Configure Your BSP
Board Support Packages (BSP) is a collection of drivers/settings required to run Windows 10X on a hardware platform. The BSP also includes a set of device drivers that are specific to the components/silicon used in the device, mostly in the form of .inf files and their associated .sys/.dll files.
You will need a BSP for your device if you want it to use all of its devices (WiFi, Cameras, etc.).
To configure your BSP, you need to obtain DCH (Universal) Drivers for your device, and then prepare the OEMDriversFM.xml feature manifest XML file with the links to your drivers.
Prepare DCHU Drivers for Your Hardware
Obtain DCHU Drivers for your hardware (especially GPU)Find all infs that contain "firmware update" in them and remove themCopy all remaining drivers to yourDCHUDriverssubfolder (\10X\DCHUDrivers)
Form A BSP for Your Hardware
UseOEMDriversFM.xmlexample from Albacore
<?xml version="1.0" encoding="utf-8"?>
<FeatureManifest Revision="1" SchemaVersion="1.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/embedded/2004/10/ImageUpdate">
<Drivers>
<BaseDriverPackages>
<DriverPackageFile Path="C:\10X\DCHUDrivers\WcosGraphicsDriver.Intel\bin\Drivers\iigd_oc" Name="iigd_dc_base.inf"/>
</BaseDriverPackages>
</Drivers>
</FeatureManifest>
For each of your drivers put a link to it in the form like one above.
Configure Your Image
EditOEMInput.xml(remove VM_*, uncomment UEFI_Hardware line, add/remove features etc.)Add a link to your BSP (OEMDriversFM.xml) to yourOEMInput.xmllike this:
<?xml version="1.0" encoding="utf-8"?>
<OEMInput xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/embedded/2019/06/ImageUpdate">
<Description></Description>
<DeviceLayoutType>GPT_SPACES_512</DeviceLayoutType>
<SV>Microsoft</SV>
<Device>GenericUEFIDevice</Device>
<ReleaseType>Test</ReleaseType>
<BuildType>fre</BuildType>
<Languages>
<Language Default="true">en-us</Language>
</Languages>
<AdditionalFMs>
<!--Windows 10X Feature Manifests-->
<AdditionalFM>c:\10X\FM\WindowsCoreProductionFM.xml</AdditionalFM>
<!-- Your BSMBSP -->
<AdditionalFM>c:\10X\OEMDriversFM.xml</AdditionalFM>
</AdditionalFMs>
</OEMInput>
Build Your Image
Prepare your environment:
Start > open elevated *Deployment and Imaging Tools Environment
In that window, type this (whereC:\is the drive where your Windows 10 Insider Preview ADK is installed):
C:\> cd c:\Program Files (x86)\Windows Kits\10\Tools\bin\i386
Run this command to unregister the imaging toolchain overrides(unless you use a non-production machine):
C:\> "%ProgramFiles(x86)%\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\%PROCESSOR_ARCHITECTURE%\DISM\wimmountadksetup%PROCESSOR_ARCHITECTURE%.exe" /q /uninstall
RunIMGGENin your Command Prompt window (give a name to your ffu, e.g.,SurfaceGo.ffuif your device is Surface Go).Important: Useabsolute pathsboth in files (OEMInput.xml&OEMDriversFM.xml)ANDin the command line:
C:\> imggen c:\10X\SurfaceGo.ffu C:\10X\OEMInput.xml C:\10X\Sources AMD64
Prepare USB Drive for Flashing
Note: You can follow Microsoft docs (Part I: Create Multipartition USB Drive, Part II: Install WinPE), or you can follow these instructions (taken from the docs):
- Get an empty USB Flash drive (with size at least 8GB)
InUsetheWindowssameUSB/DVDDeployment and Imaging Tools Environment's elevatedCommand Prompt windowopendiskpartand pressEnter- Follow
theseits instructions tocreate two disks:
List disk
select disk X (where X isflash your USBWindows drive)11 cleanISO create partition primary size=2048
active
format fs=FAT32 quick label="WinPE"
assign letter=P
create partition primary
format fs=NTFS quick label="Images"
assign letter=I
exit
Create Working WinPE files by using this command (whereC:\WinPE_amd64isonto thelocation of your choice):
copype amd64 C:\WinPE_amd64
Create bootable media with it (whereP:is the letter of the FAT32 partition of yourUSB Flashdrive):
MakeWinPEMedia /UFD C:\WinPE_amd64 P:
Copy your Image (.ffufile) to theI:(the second partition of your Flash drive formatted with NTFS)Download and addgdisk64.exefile to the root of your WinPE partition (P:in this example)
Apply Your Image
Apply Your Image on Machine Without Windows 10X Installed On It
- Boot from
WinPEUSB Flash drive - Open diskpart
- Type this:
list disk
Take a note of the name of your device's main disk drive, e.g., disk 0
4. Type this (where disk 0
is your device's main disk drive):
select disk 0
clean
- Follow the instructions in the file from docs.microsoft.com to properly lay out your device's main disk for Windows 10/11 installation:
rem == CreatePartitions-UEFI.txt ==
rem == These commands are used with DiskPart to
rem create four partitions
rem for a UEFI/GPT-based PC.
rem Adjust the partition sizes to fill the drive
rem as necessary. ==
select disk 0
clean
convert gpt
rem == 1. System partition =========================
create partition efi size=100
rem ** NOTE: For Advanced Format 4Kn drives,
rem change this value to size = 260 **
format quick fs=fat32 label="System"
assign letter="S"
rem == 2. Microsoft Reserved (MSR) partition =======
create partition msr size=16
rem == 3. Windows partition ========================
rem == a. Create the Windows partition ==========
create partition primary
rem == b. Create space for the recovery tools ===
rem ** Update this size to match the size of
rem the recovery tools (winre.wim)
rem plus some free space.
shrink minimum=500
rem == c. Prepare the Windows partition =========
format quick fs=ntfs label="Windows"
assign letter="W"
rem === 4. Recovery partition ======================
create partition primary
format quick fs=ntfs label="Recovery"
assign letter="R"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
list volume
- Mark your Windows partition as active in diskpart:
list partition
note the name of your Windows partition (e.g., "partition 3")
select partition 3
active
- Type exit to leave diskpart
5. - Check
thiswhichcommandOS(andSKUspecifyyouthe correct pathwant totheinstall:
dism /apply-ffuGet-WimInfo /imagefile:C:WimFile:D:\YourDevice.ffuSources\install.wim /applydrive:<— here D:\\.\physicaldrive0 is the drive name of your USB drive
OnceRemembercomplete,itsremoveindex and use it to apply its image to yourUSB flash driveTypeexitin theCommand Prompt window
Apply Your Image on Machine With Windows 10X Installed On It
Boot from WinPE driveTypenotepadto open notepadUseFile-->Opento find the name of your WinPE diskType this to identify the id of your physical drive:
spaceutil get-drive -poolname ospool
Type thispartition (wheree.g.,D:\is the name of your WinPE disk and0in the end ofphysicaldrive0is the id of your physical drive):
cd D:\
gdisk64 -l \\.\physicaldrive0
Make sure that it contains OSPool and other partitions of Windows 10XType this to clean up the drive (where0in the end ofphysicaldrive0is the id of your physical drive):
gdisk64 \\.\physicaldrive0
o
w
and press Enter
Use this command (and specify the correct path to the ffu that you created above, as well the id of your physical drive)"W"):
dism /apply-ffuApply-Image /imagefile:C:ImageFile:D:\YourDevice.ffuSources\install.wim /applydrive:index:1 /ApplyDir:W:\\.\physicaldrive0
OnceCreatecomplete,bootremoverecords:
W:\Windows\System32\bcdboot flashG:\Windows
drive
If you'll see "Failure when attempting to copy boot files" error message then use this command instead:
W:\Windows\System32\bcdboot c:\windows /s s: /f ALL
- Type exit in the Command Prompt window
Load Windows 10X11
At this time, your Windows 10X11 will boot. If everything is correct you should see the OOBE.