Skip to content

Instantly share code, notes, and snippets.

@b0gdanw
Last active October 8, 2024 14:44
Show Gist options
  • Save b0gdanw/e36ea84828dbd19e03eff6158f1fc77c to your computer and use it in GitHub Desktop.
Save b0gdanw/e36ea84828dbd19e03eff6158f1fc77c to your computer and use it in GitHub Desktop.
Converting ESD files to ISO images on macOS
ESD to ISO on macOS
https://gist.github.com/b0gdanw/e36ea84828dbd19e03eff6158f1fc77c
Converting ESD files to ISO images on macOS
- download Parallels Desktop 18 for Mac Image from https://www.parallels.com/products/desktop/download/
- at the moment https://download.parallels.com/desktop/v18/18.2.0-53488/ParallelsDesktop-18.2.0-53488.dmg
- open/mount the dmg
- copy prl_esd2iso and libwimlib.1.dylib from /Volumes/Parallels\ Desktop\ 18/Parallels\ Desktop.app/Contents/ to /usr/local/bin/ and /usr/local/lib/
sudo ditto /Volumes/Parallels\ Desktop\ 18/Parallels\ Desktop.app/Contents/MacOS/prl_esd2iso /usr/local/bin/prl_esd2iso
sudo ditto /Volumes/Parallels\ Desktop\ 18/Parallels\ Desktop.app/Contents/Frameworks/libwimlib.1.dylib /usr/local/lib/libwimlib.1.dylib
- eject/unmount the dmg
- use /usr/local/bin/prl_esd2iso to convert ESD files to ISO
- Usage: esd2iso in.esd out.iso
Example:
Windows 11 ARM 22H2 September 2022 Consumer
http://dl.delivery.mp.microsoft.com/filestreamingservice/files/3da94e91-327c-48ce-8bc8-7a2af30fc4bc/22621.525.220925-0207.ni_release_svc_refresh_CLIENTCONSUMER_RET_A64FRE_en-us.esd
prl_esd2iso ~/Downloads/22621.525.220925-0207.ni_release_svc_refresh_CLIENTCONSUMER_RET_A64FRE_en-us.esd ~/Downloads/22621.525.220925-0207.ni_release_svc_refresh_CLIENTCONSUMER_RET_A64FRE_en-us.iso
How to find ESD links:
* Windows 11
- download the Windows 11 Product Catalog
curl -L "https://go.microsoft.com/fwlink?linkid=2156292" -o products_Win11.cab
- unarchive products.xml
tar -xf products_Win11.cab products.xml
- search for ESD builds
Example:
Consumer (Home & Pro)
cat products.xml | grep ".*_CLIENTCONSUMER_RET_A64FRE_en-us.esd" | sed -e s/"<FileName>"//g -e s/"<\/FileName>"//g -e s/\ //g -e s/"<FilePath>"//g -e s/"<\/FilePath>"//g -e s/\ //g
returns:
http://dl.delivery.mp.microsoft.com/filestreamingservice/files/3da94e91-327c-48ce-8bc8-7a2af30fc4bc/22621.525.220925-0207.ni_release_svc_refresh_CLIENTCONSUMER_RET_A64FRE_en-us.esd
Business (Pro & Enterprise)
cat products.xml | grep ".*_CLIENTBUSINESS_VOL_A64FRE_en-us.esd" | sed -e s/"<FileName>"//g -e s/"<\/FileName>"//g -e s/\ //g -e s/"<FilePath>"//g -e s/"<\/FilePath>"//g -e s/\ //g
returns:
http://dl.delivery.mp.microsoft.com/filestreamingservice/files/2212df97-2889-4c66-b007-7f682c10cd60/22621.525.220925-0207.ni_release_svc_refresh_CLIENTBUSINESS_VOL_A64FRE_en-us.esd
* Windows 10
- download the Windows 10 Product Catalog
curl -L "https://go.microsoft.com/fwlink/?LinkId=841361" -o products_Win10.cab
- unarchive products.xml
tar -xf products_Win10.cab products.xml
- search for ESD builds
Example:
Consumer (Home & Pro)
cat products.xml | grep ".*_CLIENTCONSUMER_RET_A64FRE_en-us.esd" | sed -e s/"<FileName>"//g -e s/"<\/FileName>"//g -e s/\ //g -e s/"<FilePath>"//g -e s/"<\/FilePath>"//g -e s/\ //g
returns:
http://dl.delivery.mp.microsoft.com/filestreamingservice/files/8595a742-2a75-42ad-adc2-cbe6ca123d50/19045.2006.220908-0225.22h2_release_svc_refresh_CLIENTCONSUMER_RET_A64FRE_en-us.esd
Business (Pro & Enterprise)
cat products.xml | grep ".*_CLIENTBUSINESS_VOL_A64FRE_en-us.esd" | sed -e s/"<FileName>"//g -e s/"<\/FileName>"//g -e s/\ //g -e s/"<FilePath>"//g -e s/"<\/FilePath>"//g -e s/\ //g
returns:
http://dl.delivery.mp.microsoft.com/filestreamingservice/files/10a272db-3002-4b83-834a-7cc9566b39c1/19045.2006.220908-0225.22h2_release_svc_refresh_CLIENTBUSINESS_VOL_A64FRE_en-us.esd
Windows 11 release information
https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information
Windows 10 release information
https://learn.microsoft.com/en-us/windows/release-health/release-information
Catalog Microsoft Update
https://www.catalog.update.microsoft.com/Search.aspx?q=arm64
@aliafshany
Copy link

i get error:

dyld[29507]: Library not loaded: @rpath/libwimlib.1.dylib
  Referenced from: <E90D83AB-8912-36DE-80EA-60B608119E0E> /usr/local/bin/prl_esd2iso
  Reason: tried: '/usr/local/bin/../Frameworks/libwimlib.1.dylib' (no such file), '/usr/local/bin/../Frameworks/libwimlib.1.dylib' (no such file), '/usr/lib/libwimlib.1.dylib' (no such file, not in dyld cache)

@b0gdanw
Copy link
Author

b0gdanw commented Sep 29, 2023

i get error:

You can use CrystalFetch https://github.com/TuringSoftware/CrystalFetch/releases

@ehsan58
Copy link

ehsan58 commented Dec 27, 2023

Screenshot 2023-12-27 at 15 02 33
i used this tool to create an iso for my pd vm
but i cannot the file? it's not in the esd2iso directory :(

@fscm
Copy link

fscm commented Feb 16, 2024

i get error:

dyld[29507]: Library not loaded: @rpath/libwimlib.1.dylib
  Referenced from: <E90D83AB-8912-36DE-80EA-60B608119E0E> /usr/local/bin/prl_esd2iso
  Reason: tried: '/usr/local/bin/../Frameworks/libwimlib.1.dylib' (no such file), '/usr/local/bin/../Frameworks/libwimlib.1.dylib' (no such file), '/usr/lib/libwimlib.1.dylib' (no such file, not in dyld cache)

After copying the library and the binary to their respective /usr/local folders you may have to fix the library location and then resign the binary. You can do that using the following commands.

Fix the library location:

sudo install_name_tool -change @rpath/libwimlib.1.dylib /usr/local/lib/libwimlib.1.dylib /usr/local/bin/prl_esd2iso

Resign the binary:

sudo codesign -s - -f /usr/local/bin/prl_esd2iso

@b0gdanw
Copy link
Author

b0gdanw commented Feb 16, 2024

Why use this method when w11arm_esd2iso and CrystalFetch are now available?
https://github.com/Technogeezer50/esd2iso
https://github.com/TuringSoftware/CrystalFetch/
I made it public before the two were released and people didn’t seem to know esd files can be freely obtained from Microsoft and converted into iso files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment