abbodi1406 / BatUtil

Collection of batch scripts utilities for Windows
993 stars 241 forks source link

uup-converter-wimlib: Error creating INSTALL.WIM for non-US multi-edition Windows 1x ISO #34

Closed DmitryKo76 closed 6 months ago

DmitryKo76 commented 8 months ago

When creating a non-US language multi-edition ISO for Windows 10/11, recent versions of the convert-UUP.cmd script stop give me an error:

=== Creating install.wim . . .
[ERROR] There is already an image named "Windows 11 Home" in the destination WIM
ERROR: Exiting with error code 11:
       Tried to add an image with a name that is already in use.

Errors were reported during wim export.

This error does not manifest if I choose English (United States) as the language. Tried Windows 10 22H2 Release and Windows 11 24H2 Canary with Home and Professional editions (non-N) selected, Russian and German languages, and various conversion options for updates, but only US versions compile successfully.

Console output from the UUPDump.net version is attached; the same error happens with RG-AdGuard.net version of the script. create-uup-v97 error11 w11-24h1 de-de.txt create-uup-v97 error11 w11-24h1 ru-ru.txt create-uup-v97 error11 w10-22h2 ru-ru.txt

I believe it used to work at least in mid-2021, then I stopped updating my ISOs and didn't pay attention until now...

abbodi1406 commented 8 months ago

You should not mix multiple langs files together the converter has been always set to work with one language

DmitryKo76 commented 8 months ago

Yes, it did work when I deleted core_en-us.esd professional-en-us.esd from non-English editions. Do I have to remove the English language pack Microsoft-Windows-Client-LanguagePack-Package_en-us-amd64-en-us.esd? I believe additional language features, like Microsoft-Windows-LanguageFeatures-Basic-en-us-Package-amd64.cab and relevant packages for Handwriting, OCR, Speech, and TextToSpeech, are safe to leave as is.

That said., my expectation has always been that the script for a specific language and edition would ignore packages for other languages. It's a bit overkill to keep redundant copies of 3.5 GB of common components for each language and edition, when they only differ by a 500MB edition specific ESD and 150 MBs of language specific CABs.

Would it be better to directly specify language and edition to the script so it could filter out unneeded packages? These could be passed down by scripts generated by UUPDump.net / UUP.RG-AdGuard.net, these already use language and edition identifiers to request relevant Aria2 download scripts...