Jump to content











Photo
- - - - -

My pinch of salt on Universal HDD Images for XP


  • Please log in to reply
8 replies to this topic

#1 Doodoo

Doodoo

    Frequent Member

  • Advanced user
  • 344 posts

Posted 17 June 2010 - 01:47 PM

Hi everyone,

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 ?
Well actually an easier question might be... What are they not for ? The image created by IMG_XP_Create is not not meant to be used as a Service OS. For maintenance, virus sweep, etc... a small OS, e.g. LiveXP, is probably a lot more appropriate and still allows to boot on any hardware, from HDD or USB.

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.
In short:

  • 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]
Note that in a way, the IMG is more universal because it can really boot on any hardware whereas the restored system can't.


2. Problems I have had (very likely, I am the one to blame !)

Although IMG_XP_Restore allows to "restore" an installed XP direct from the source WINDOWS directly (i.e. not from an image) to HDD or USB, I have had quite a few problems: even on the very computer where the source XP was installed, my restored USB stick wouldn't boot (BSOD)

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.
One thing to be aware of, though.
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

I suppose I tried to avoid the long way above as much as possible for a good reason: I just don't have anough RAM (1 Gb) to boot from RAM. Hence my original idea to use IMG_XP_Restore directly. Furthermore, because I wanted to restore the system on a simple USB stick, the whole thing was also painfully slow.

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)
That's the speed problem sorted. Now to work around the RAM problem, I have found two options:
  • 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 (!)
Ah well but then how does the learning process take place and how do you make the image universal if you don't boot from RAM ?


4. My own twist on Wimb's method

I don't deserve any credit here... It all started with a simple post from Shao, which could have gone un-noticed. So I started experimenting, and came up with the following 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.
So now here is the real twist.
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 /ntldr
Just 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.
For now the only limitation of the procedure is that it doesn't work when the image resides on a USB drive. This is a known problem which might be fixed in a future release of WinVBlock. Then the learning process will truely become effortless, since there will be no need to copy the image on the internal HDD of every machine in the first place. That would be another good reason to have the EWF filter if you use a USB stick, as they tend to die after about 100.000 write cycles.

Hope that helps !

#2 wimb

wimb

    Platinum Member

  • Developer
  • 2849 posts
  • Interests:Boot and Install from USB
  •  
    Netherlands

Posted 17 June 2010 - 04:55 PM

Unfortunately you need to learn by experience, before words in tutorials get their meaning ....

Interesting use of latest WinVBlock.

How does this compare with using latest Firadisk v0.0.1.22 which allows to boot Windows XP in disk image file ?

#3 Doodoo

Doodoo

    Frequent Member

  • Advanced user
  • 344 posts

Posted 17 June 2010 - 05:20 PM

Unfortunately you need to learn by experience, before words in tutorials get their meaning ....

Well this is not meant to be a tutorial in any way.... I would be more than embarrassed to pretend I can teach anything about this stuff ! I guess it was meant for myself in the first place, i.e. it was more of an exercise to make things clear in my own mind and to not forget what I've learnt... Now if someone else find it useful I'll be more than happy, but that's more a side effect, not the purpose.

Surprising that you use such old computers (only USB 1.0 and 1 GB RAM) to do such advanced work.

I'm not an IT guy, I don't know anything about the latest microsoft technologies... I'm just trying to learn by myself bits and pieces, at home, on my 6 year old PC... I reckon Dietmar who originated the work on "XP that can boot on any compi hihihihi" didn't have the latest hardware either :cheers: (Dietmar if you read this, forgive me, I wish I had 1% of your skills)

How does this compare with using latest Firadisk v0.0.1.22 which allows to boot Windows XP in disk image file ?

Good question. I've seen the latest Firadisk can do that too, but the procedure seems a little tricky for me... I really like to keep things simple, and I just don't have time to look at this now... I spend my spare time changing nappies and preparing bottles if you see what I mean :thumbup:

#4 agni

agni

    Frequent Member

  • Tutorial Writer
  • 270 posts
  • Location:Bengaluru (Bangalore)
  •  
    India

Posted 23 August 2010 - 05:30 PM

For now the only limitation of the procedure is that it doesn't work when the image resides on a USB drive. This is a known problem which might be fixed in a future release of WinVBlock. Then the learning process will truely become effortless, since there will be no need to copy the image on the internal HDD of every machine in the first place. That would be another good reason to have the EWF filter if you use a USB stick, as they tend to die after about 100.000 write cycles.


Is this limitation only with USB Flash Drives?Have you tried this from a USB Hard Disk?

#5 Doodoo

Doodoo

    Frequent Member

  • Advanced user
  • 344 posts

Posted 25 August 2010 - 09:38 AM

Is this limitation only with USB Flash Drives?Have you tried this from a USB Hard Disk?

No I haven't tried it from a USB HDD, as I don't have any, but presumably the problem will be the same, due to a current limitation of WinVBlock, as explained ky Kao in this post.

#6 Vortex

Vortex

    Frequent Member

  • Advanced user
  • 239 posts

Posted 12 September 2010 - 05:30 PM

Hi Doodoo,

First of all, many thanks for your method and efforts. You can install XP into an image file. My OS is Windows XP. In my host OS XP, I renamed ntldr to xpntldr and the Grub4dos loader grldr to ntldr.

Here is my menu.lst file :

[codebox]title XP setup map --mem /winvblock.ima (fd1) map --mem (md)0x6000+800 (fd0) map --mem /xpcd.iso (0xff) map /xpsp3.img (hd0) map --hook dd if=(fd1) of=(fd0) count=1 chainloader (0xff) title Continue XP setup map --mem /xpcd.iso (0xff) map /xpsp3.img (hd0) map --hook chainloader (hd0)+1 title Boot XP from image file map /xpsp3.img (hd0) map --hook root (hd0,0) chainloader /ntldr[/codebox] Here it's how it goes. xpcd.iso is an image of your XP installation disc. During the setup, it will be loaded into the RAM. xpsp3.img is a fresly prepared image file to host the OS to be installed. It must be a contiguous file and large enough to hold the OS files and the pagefile. At the first phase of the installation, Grub4dos loads xpcd.iso into the memory. The setup starts and you select the virtual hard disk for the XP installation. In the second phase, you select the Continue XP setup item in the Grub4dos menu and setup moves to the GUI stage. When the installation is complete, you load the guest OS by selecting the item Boot XP from image file.

I used Chenall's grub4dos to do the installation described above.

Also, many thanks to :

Diddy for his Firadisk guide,
Wonko the Sane and fujianabc for their explanations regarding menu.lst configuration.

#7 Doodoo

Doodoo

    Frequent Member

  • Advanced user
  • 344 posts

Posted 08 February 2011 - 09:49 AM

Following Sara's tutorial, I had a another go at trying to boot direct from a disk image (not from RAM) residing on a USB drive... In spite of my original claims in this post that it doesn't work... it really does seem to work for me now ! Well, with a few limitations and problems that I don't quite understand for now, but I thought someone might be able to help :buehehe:

So here is the thing. Just to recap, here is what I do:

  • install a fresh XP
  • add the latest WinVBlock driver (binaries from 30-01-11)
  • from an external XP, create an image with wimb's IMG_XP_Create
  • put the image on a USB stick and boot it direct from file with Grub4Dos !
Note I have got two fairly old computers, with quite different hardware:

  • PC A: based on DFI nForce4 Ultra with Althon 64
  • PC B: NC10 notebook, based on Intel Atom
In my case, the original IMG is always created on PC A (although I understand that with Sara's method, I could intall XP directly to an image, and therefore could do that too on PC B without messing too much).

With the above procedure, the IMG behaves as following:

  • OK from PC A HDD
  • BSOD from PC A USB
  • OK from PC B HDD
  • BSOD from PC B USB
However, as explained in Sara's tutorial, and as confirmed by Wimb, running usb_xp_init.cmd before creating the image clearly improves the bootability from USB:

  • BSOD from PC A USB
  • OK from PC B USB
This is where I am a bit puzzled: what can be the cause of my problems booting from PC A USB, in spite of the fact that the image was created on the very same computer (i.e. the very same hardware, presumably with all required drivers) ? USB is definately the cause of the problem (as far as I understand), because the same IMG works great from HDD.

Where it becomes even more strange, is that I have found I can actually boot from PC A USB, with a bit of a detour:

  • first boot with non-ACPI HAL for old computers
  • update the image
  • subsequent boot with ACPI HAL
  • update the image
The thing is, this updated image will still boot from USB on PC B, but becomes unstable (I get a BSOD KERNEL_DATA_INPAGE_ERROR in win32k.sys, with a message "WinVBlock alive"). Nevertheless, it seems to be absolutely fine if I boot from RAM of from HDD (need to check more thoroughly)

Any ideas what might be going on ?

Any further ideas to improve the botability from USB ? It is quite clear that booting from RAM is "as close to a garanteed boot you can get", but unfortunately that is not always possible on old PCs with little RAM and thus booting from USB becomes a very desirable feature, although booting from HDD might be the next best alternative to booting from RAM.

Edited by Doodoo, 08 February 2011 - 10:08 AM.


#8 wimb

wimb

    Platinum Member

  • Developer
  • 2849 posts
  • Interests:Boot and Install from USB
  •  
    Netherlands

Posted 08 February 2011 - 01:13 PM

Did you try to Add Hal option using XP Setup Source when creating the Image ?

If NOT, then please try the different boot.ini options that you get.

#9 Doodoo

Doodoo

    Frequent Member

  • Advanced user
  • 344 posts

Posted 08 February 2011 - 01:59 PM

Did you try to Add Hal option using XP Setup Source when creating the Image ?
If NOT, then please try the different boot.ini options that you get.

Yes, it wasn't clear from my message, but I'm using the various HALs available in boot.ini.

My IMG won't boot from USB on computer A, straight away with "(ACPI PC) for most compatability on ACPI computers".
I have first to boot once wih "(Standard PC) for old non-ACPI computers" from the menu, then update the image. Now it will boot with the (default) ACPI HAL. But by updating the image this way, it becomes unstable on my computer B although it will still boot....

Any ideas what's going on ?

Edited by Doodoo, 08 February 2011 - 02:03 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users