WIMBOOT for Windows 7
Posted: Sat May 14, 2016 2:51 pm
Hi,
I have made great progress WIMBOOT'ing a Windows 7 operating system.
I used my existing ZIPmagic/DoubleSpace framework consuming WIMLIB to make this happen. Of course, I adapted the framework to support Windows PE 3.1, to extract the existing copy of Windows PE 3.1 already loaded on the OS, etc. among other changes.
Currently, I am able to WIMBOOT any language and any bitness and any UEFI/BIOS version of Windows 7 successfully within VMware. This also includes the server edition of the NT 6.1 branch. However, real world use has been very challenging. I have run into multiple unique problems with literally every real-world test:
1) A real-world test of Windows Server 2008 R2 results in a blue screen error with WOFADK.SYS, even when I exclude the entire c:\windows folder from processing (just to rule out the matter of exclusions).
2) Another real-world test of Windows 7 x64 results in a failure to write error with WIMLIB (invalid argument passed is the entire error description) while compressing a disk on-the-fly from Windows PE 3.1.
3) Yet another real-world test results in a boot error of 0xc000000e, which pertains to a corrupted BCD registry. Attempts to repair/recreate the BCD from a Windows 7 install disk return generic errors and completely fail.
I am happy to provide a beta of my work so you can check and see what happens on your own Windows 7 installations, preferably within a snapshotted instance of a VMware virtual machine, so you can go back to a healthy state if there's any problems.
I'd like to ping any interested parties here to help figure out:
a) The core file list needed to boot Windows 7. The default list in WIMLIB is not sufficient. My tests with this regard have been largely inconsistent, despite substantial efforts at automation.
b) Any real-world testing help would be greatly appreciated.
c) Insights on how the BCD mechanism could be re-constructed successfully (so I can continue with my real-world test in #3 above). It would also help to know how to detect whether the BCD registry has been relocated to a secondary/tertiary location, such that its compression can be prevented on non-standard systems.
I'm fairly confident that at this point, a standard and/or clean machine configuration of Windows 7 is successfully WIMBOOT'able using my solution. This is what my clean machine tests with VMware lead me to think.
However, every real-world scenario that I have tested is a highly non-standard and very dirty configuration of Windows 7 - for example, system images that have spanned various different underlying hardware configurations, have been thoroughly used for multiple years, etc.
So any additional insights you might share on how to detect and handle any potential boot-preventing issues on such real-world exercised OS images would be greatly helpful.
- Simon King.
I have made great progress WIMBOOT'ing a Windows 7 operating system.
I used my existing ZIPmagic/DoubleSpace framework consuming WIMLIB to make this happen. Of course, I adapted the framework to support Windows PE 3.1, to extract the existing copy of Windows PE 3.1 already loaded on the OS, etc. among other changes.
Currently, I am able to WIMBOOT any language and any bitness and any UEFI/BIOS version of Windows 7 successfully within VMware. This also includes the server edition of the NT 6.1 branch. However, real world use has been very challenging. I have run into multiple unique problems with literally every real-world test:
1) A real-world test of Windows Server 2008 R2 results in a blue screen error with WOFADK.SYS, even when I exclude the entire c:\windows folder from processing (just to rule out the matter of exclusions).
2) Another real-world test of Windows 7 x64 results in a failure to write error with WIMLIB (invalid argument passed is the entire error description) while compressing a disk on-the-fly from Windows PE 3.1.
3) Yet another real-world test results in a boot error of 0xc000000e, which pertains to a corrupted BCD registry. Attempts to repair/recreate the BCD from a Windows 7 install disk return generic errors and completely fail.
I am happy to provide a beta of my work so you can check and see what happens on your own Windows 7 installations, preferably within a snapshotted instance of a VMware virtual machine, so you can go back to a healthy state if there's any problems.
I'd like to ping any interested parties here to help figure out:
a) The core file list needed to boot Windows 7. The default list in WIMLIB is not sufficient. My tests with this regard have been largely inconsistent, despite substantial efforts at automation.
b) Any real-world testing help would be greatly appreciated.
c) Insights on how the BCD mechanism could be re-constructed successfully (so I can continue with my real-world test in #3 above). It would also help to know how to detect whether the BCD registry has been relocated to a secondary/tertiary location, such that its compression can be prevented on non-standard systems.
I'm fairly confident that at this point, a standard and/or clean machine configuration of Windows 7 is successfully WIMBOOT'able using my solution. This is what my clean machine tests with VMware lead me to think.
However, every real-world scenario that I have tested is a highly non-standard and very dirty configuration of Windows 7 - for example, system images that have spanned various different underlying hardware configurations, have been thoroughly used for multiple years, etc.
So any additional insights you might share on how to detect and handle any potential boot-preventing issues on such real-world exercised OS images would be greatly helpful.
- Simon King.