With the introduction of Windows Vista back in 2007 our traditional process to create Windows PE boot disks got complicated, requiring end-users to download a 1Gb WAIK package and install a WIM driver on their machines.

Over the past years we saw developers including the Windows AIK drivers on their works without permission from Microsoft, causing a serious problem from a legal standpoint.

Furthermore, the handling of WIM archives is plagued with problems in regards to the correct version of drivers, with compatible use of either x86 or x64 binaries and the requirement of administrative permissions. In overall these conditions provide a serious problem to modern boot disk projects.

With this library/tool we aim to provide the means to create a bootable WIM archive for use in Windows PE projects and similar technologies without such nuisances.

This work is freeware. Made available to the members and developers that support our community. Please read the licensing chapter for further details.

What does it do?

Creates a new WIM archive from an existent folder

Can add/remove single files from existent WIM archives

How to use?To use this library, you need to have Java installed on your machine.

Interests:I'm just a quiet simple person with a very quiet simple life living one day at a time..

European Union

Posted 21 May 2012 - 12:54 PM

Just to clarify, I don't claim that this is the only tool capable extracting single files outside of WAIK. In past events I have defended the use of 7zip to create a Windows PE rather than depending on MS drivers, albeit the creation of WIM archives was always an obstacle.

Reading and extracting has been done in the past. The innovative part provided by this tool is the capability of adding files to a bootable WIM archive under Windows.

Nuno,I tried to open Boot.WIM, which I extracted from Windows 8 Server ISO.I right-clicked on wimlib.jar and selected to open with Java Platform SE Binary.In WIM Explorer, I clicked on the Plus sign to open a WIM file.

Where:/Boot is a flag to make the WIM archive bootable/Capture will use a given folder as source for the WIM archive and the second parameter as destination WIM file./Custom is a set of XML data specific to Windows PE that needs to be added on the WIM archive (I make available a custom.txt file with an example)"WindowsPE" represents the title that you want to set for this image

To open the boot.wim that you have from Windows 8 and extract files, I recommend that you use 7zip. At the moment I am more focused on the archive creation and once this is stable to finish the extraction part as well.

I think you are probably not familiar with a C library called wimlib originally published by Carl Thijssen at UDA December 31st 2010 which is also used for handling WIM files...http://www.ultimated...org/wimlib.html

I think you are probably not familiar with a C library called wimlib originally published by Carl Thijssen at UDA December 31st 2010 which is also used for handling WIM files...http://www.ultimated...org/wimlib.html

While the lack of compression when adding a small number of files is not a big dealnot handling the files resource correctly could lead to several inconsistencies.

i.e. if you create a WIM with just an unique file copied on tree different directoriesyour library creates the metadata resource table correctly butthe hash table (lookup table) is broken having 3 entries with the same hashand the stack of files resources gets incorrectly populated 3 times with the same file body.(this is very easy to see with a hex editor seeing the file body is present 3 consecutive times)

Within WIMs identical multi-instance files must have a single hash entry with an increasing reference counterand the file resource stack must always have just a single instance of the body of the multi-instance file.

i.e. if you create a WIM with just an unique file copied on tree different directoriesyour library creates the metadata resource table correctly butthe hash table (lookup table) is broken having 3 entries with the same hashand the stack of files resources gets incorrectly populated 3 times with the same file body.(this is very easy to see with a hex editor seeing the file body is present 3 consecutive times)

Thanks patpat, for your explanations!

I think that is the reason that WimLib WIMs ase remarkably bigger (400+ MB <> 500+ MB) than (uncompessed) ImageX or WimCaptEx WIMs.I already was wondering about that.

Don't think there is any need to support extraction - 7zip does the job perfectly well and does not have the license problems of MS products - unless you intend to add support for hard links which 7zip currently does not support.

Think the next step should be to add support for maximum compression. Could be at some stage that support for creating hard links in the wim file may be useful.

Interests:I'm just a quiet simple person with a very quiet simple life living one day at a time..

European Union

Posted 22 May 2012 - 12:05 PM

@patpatMy thanks for the detailed comparison, this is helpful feedback.

Wouldn't it be more logical to start from the 7zip library for extracting wims, than to start completely from scratch?

Yes, it is logic and I tried this option before starting the new project, talking personally with Igor Pavlov about the matter. At the time I offered to directly sponsor the development of WIM support on 7zip but he had other priorities in need to attend.

Just out of curiosity, is it an extension of the original RawWIM project or did you start writing it from scratch?

This project was written from scratch by a freelance developer hired specifically for the task.

@patpatMy thanks for the detailed comparison, this is helpful feedback.

Yes, it is logic and I tried this option before starting the new project, talking personally with Igor Pavlov about the matter. At the time I offered to directly sponsor the development of WIM support on 7zip but he had other priorities in need to attend.

This project was written from scratch by a freelance developer hired specifically for the task.

I don't get it.I see a few logical fallacies. Why the "freelancer" could not use the available 7-zip source as base?What was the reason to start (yet-again) from scratch?Why was java chosen as "engine"?BTW no actual *need* to answer these questions, should these answers involve - even marginally - decisions/infos/whatever you don't like to make public.Wonko