Full Disk Images: Windows Based

Extracting Windows ISO Root Filesystem

Traditional extraction utilities like bzdtar don't work properly with Windows-based ISOs. These utilities typically only extract a readme from the boot segment, missing the main filesystem data contained in the install.wim file. This guide demonstrates how to properly extract the complete Windows root filesystem using specific utilities.


Prerequisites


Step 1: Mount the ISO

Mount the Windows ISO to access its contents:

hdiutil attach Win10_22H2_English_x64v1.iso

Expected output Example:

/dev/disk7    /Volumes/CCCOMA_X64FRE_EN-US_DV9

Navigate to the mounted volume and locate the sources directory:

cd /Volumes/CCCOMA_X64FRE_EN-US_DV9/sources

Step 2: Verify install.wim File

Confirm that the install.wim file exists in the sources directory:

cd sources
ls | grep install

This file contains the compressed Windows filesystem data that we need to extract.


Step 3: Analyze Available Images

Before extraction, examine the available Windows editions in the WIM file. A single Windows ISO typically contains multiple editions (Home, Pro, Enterprise, etc.) stored as separate images within the install.wim file. Each image has a unique index number that you'll need to specify during extraction. This step helps you identify which edition you want to extract and understand the size requirements for each option.

wimlib-imagex info install.wim

Sample output:

Available Images:
-----------------

Index:                  1
Name:                   Windows 10 Home
Description:            Windows 10 Home
Directory Count:        27984
File Count:             101011
Total Bytes:            15139674619
Architecture:           x86_64
Major Version:          10
Minor Version:          0
Build:                  19041

Index:                  2
Name:                   Windows 10 Home N
Description:            Windows 10 Home N
Directory Count:        26994
File Count:             95743
Total Bytes:            14368233902
Architecture:           x86_64

Index:                  3
Name:                   Windows 10 Home Single Language
Description:            Windows 10 Home Single Language
Directory Count:        27984
File Count:             101012
Total Bytes:            15142346396
Architecture:           x86_64

Step 4: Extract the Filesystem

Extract the desired Windows edition using the corresponding index number. In this example, we'll extract Index 1 (Windows 10 Home):

You will be in the actual directory of the mounted ISO image, so ensure that your destination directory directly refers to a directory outside of the ISO image. This will extract the filesystem to there.

wimlib-imagex extract install.wim 1 --dest-dir=/Users/Documents/extracted-iso-folder/

Command breakdown:

  • install.wim - Source WIM file
  • 1 - Index number of the Windows edition to extract
  • --dest-dir= - Destination directory for the extracted filesystem

Step 5: Generate the SBOM

Run this command back where you actually extracted the filesystem to.

manifest-cli sbom ./extracted-iso-folder -n manifestcliWindowsISO -f windowsisosbom.json

To upload directly to Manifest Platform:

manifest-cli sbom ./extracted-iso-folder -n manifestcliWindowsISO -f windowsisosbom.json --publish -k $your_api_token_key
  • --publish - Uploads the SBOM to your Manifest account automatically
  • -k $your_api_token_key - Provides your API credentials for the upload

Troubleshooting

  • Ensure sufficient disk space for extraction (typically 15-20 GB)
  • Verify wimlib is properly installed and accessible
  • Check that the ISO is properly mounted before attempting extraction