Probably like many of you, I have spent a lot of time reading about and experimenting with Wimb's amazing tools, the famous IMG_XP_Create, _Update and _Restore.
However it took me quite a long time to figure out a few things, e.g. what's the real purpose of these tools, what their limitations are, etc... Wimb's explanations are absolutely crystal clear, but I guess I was just a bit blind, or misled by my own wishful thinking.... So I thought I would share with you my conclusions and my own twist on Wimb's method. I don't deserve any credit for most of the ideas below, as I have merly collected from various places. I'm such an ignorant when it comes to booting, no doubt I will have made a few mistakes so feel free to tell me where I'm wrong and even to add your own ideas !
- First things first... What are these tools for ?
In fact, the image created by IMG_XP_Create is more meant to be deployed on a group of computers, with similar (if not identical) hardware.
The idea is that the image just need to learn once about specific hardware, it will then be possible to restore the image on any computer with known hardware and it will nicely boot with all drivers installed.
- IMG_XP_Create will produce an IMG that can be booted on absolutely any hardware [well... as long as the mass storage drivers are there, at least]
- IMG_XP_Restore will only allow to boot from hardwares which have already been encountered during the learning process [or for which drivers were already there in the first place]
2. Problems I have had (very likely, I am the one to blame !)
In fact, I have found that to boot successfully from my stick, the learning process described in 1. is absolutely mandatory. In other words where the short way fails (using IMG_XP_Restore only), the long way works, i.e.
- Create an IMG with IMG_XP_Create
- Boot from RAM disk and install all the drivers - Update the IMG
- Restore the IMG to HDD or USB stick.
I'm lacking time to double check, but it would seem that when the image is updated, if not all the drivers are installed and some of the devices still show an exclamation mark in windows device manager, then the restored XP will not boot (even on the very same computer, where the original XP was installed in the first place).
3. The learning process - Speed and RAM issues
But even if you want to boot from RAM an image that's located on a USB stick, it's not going to be fast, especially if like me you have an old PC without USB 2.0 at boot time.
To work around the speed problem, simple solution:
- Copy (e.g. from LiveXP) the IMG on the HDD of the machine where you want the learning process to take place, and boot it from there ! (you can still boot from USB with Grub4Dos, and have an entry to boot the IMG on HDD)
- Use a tweaked version of IMG_XP_Create, which allows to create images smaller than 1 Gb. It still doesn't really solve the problem on older computers with 512 Mb of RAM or less !
- Not boot from RAM (!)
4. My own twist on Wimb's method
- After booting your fresh XP, no need to install the FiraDisk driver, but install instead the latest WinVBlock driver
- Optionnaly, you can install the EWF filter, hopefully it will become clear why it's usefull in a moment. My favourite installer can be found here and I also quite like the EWF Admin console, but it requires .NET 3.5
- At last you can create your IMG with IMG_XP_Create.
Because the latest WinVBlock driver now supports boot-from-file with GRUB4DOS, the just created XPRAM_1.IMG can be booted from a file-disk instead of a RAM-disk ! To do so, you can let IMG_XP_Create or Boot_IMG automatically add an entry in your Grub4Dos menu and then you just have to delete the --mem option for the map command, or you can manually add in your menu.lst something like:
title Boot XPRAM_1.IMG from file-disk map (hd0,0)/XPRAM_1.IMG (hd0) map --hook root (hd0,0) chainloader /ntldrJust make sure that the image file is not fragmented, e.g. using contig !
This procedure brings a few advantages:
- The RAM problem completely disappears, no matter how little RAM you have.
- For deployment purposes, you can create arbitrarily large images, including .NET 2.0, 3.0, 3.5 and 4.0, all your favourite apps etc... Even on modern PCs with 4 or 8 Gb RAM you might not be able to boot from RAM such a large image, but now you can boot it from file and still let the image learn about your hardware !
- Because the file-disk is write-through, IMG_XP_Update becomes obsolete, and the learning process takes place effortlessly as new drivers are transparently added to the image. This is where the EWF filter becomes handy: you can actually choose if you want changes to be commited to the image or not, by enabling or disabling the filter.
- You could very well have several IMGs on your HDD, in the same partition, and yet boot different environments - No need to repartition your drive, or worry about various OS living together in the same partition.
Hope that helps !