Monday, 15 December 2014

E2B v1.62Beta1, Windows XP Install ISOs and Winnt.sif files!


Here are some notes on getting 'special' versions of Windows XP Install ISOs to work with E2B.

If you just want to skip this and get to the best solution, then scroll down to the 'How to add a non-standard XP Install ISO to E2B' heading!



Experiments with modified XP Install ISOs


Some modified Windows XP Install ISOs, such as those of the 'eXPerience' MiniXP or MicroXP series, do not work correctly when you add them to the \_ISO\WINDOWS\XP folder of your Easy2Boot USB drive and then try to install from them.

The typical symptom when using E2B to install from an XP Install 'special' ISO, is that during the Stage 1 TextMode setup 'copyfiles' stage, you get multiple error messages about not being able to copy FiraDisk.Inf and the other related files that E2B has placed on the virtual F6 driver floppy drives that it has created.

This issue can be caused by the Winnt.sif file in the ISO file

This problem is usually caused by the ISO file containing a \i386\winnt.sif file which is used to configure the installation (see here for possible entries). Most of the entries do not interfere with E2B, but the critical one that causes this problem does. It occurs when the winnt.sif file contains a setting of OemPreinstall=Yes in the [Unattended] section.

The option default is No but if you are using the $OEM$ Distribution Folders then it needs to be set to Yes, so that Setup regards this installation as a distribution and copies these files over to the system drive. This occurs at the end of Text-mode Setup.

Having OemPreinstall set to Yes will also prevent you from loading RAID/SATA drivers from a floppy disc during textmode setup. The only workaround for that problem is to directly integrate the drivers into the CD, as described here.

So we have a Catch 22 situation. E2B needs this to be set to No so that it can install the FiraDisk driver so that XP can access the ISO as a virtual CD drive, but if there is a $OEM$ folder in the XP Install ISO, the contents of the $OEM$ folder will not be copied to the hard disk. Consequently, some features, programs, documents and configuration settings, etc. that were in the $OEM$ folder may not be applied to the final XP installation.

In E2B v1.62Beta1, I have added some code to detect the OemPreinstall=Yes setting and, if present, either automatically remove it (if the XP ISO was loaded into memory) or prompt the user to ask permission to patch the ISO file directly (if the ISO was directly mapped and not loaded into memory by using the grub4dos  map --mem command).
Patching the ISO file when it is directly mapped as a CD device in grub4dos will cause the file to be permanently altered - i.e. the next time the same XP ISO is run, it will have been already patched and so the user will not be prompted again.


The screenshot above is what you will see if the ISO file needs to be patched so that E2B will work.

The E2B Betas are available via the Alternate Download Area links on the E2B - Download page.


Testing with Rufus

To make a fully working XP Install of MicroXP, I tried making a USB Flash drive using Rufus and then I made a .imPTN file directly from the Rufus USB drive.

However, I could not use a bootable USB Flash drive that was made using Rufus in Virtual Box - textmode setup complained that it could not upgrade the target drive -  'no previous version of NT can be found' . I found that deleting \txtsetup.sif from the root of the Rufus USB drive fixed this (VBox was configured with the USB drive as HDD0). However, no adjustments to the Rufus-made USB drive were required if a real IDE system was used as the target system.



P.S. It may be that adding to the \i386\winnt.sif to include the lines in bold below, might also have fixed this issue:

[Data]
AutoPartition="0"
MsDosInitiated="0"
UnattendedInstall="Yes"
win9xupgrade="no"
winntupgrade="no"
EulaComplete="1"

Once you have a working USB Flash drive made by Rufus, convert it to a .imgPTN file using the Easy2Boot MPI Tool Kit (make sure there is no pagefile.sys file on it first!) and then copy the .imgPTN file to your E2B USB Flash drive. Note however, that unless the ISO has added mass storage drivers, you will only be able to install to IDE systems, whereas if you use E2B+DPMS and the ISO file, you can install to a much wider range of SATA/SCSI/RAID systems.
To boot XP using the CSM boot menu, you I needed to edit the \menu.lst file in the .imgPTN file (easiest way is to select the .imgPTN file and switch partitions and then use Windows Explorer to access the \menu.lst in the new partition). Additional CSM menu entry:

title Install Windows XP\nInstall XP from a Rufus image
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
# set root drive as the E2B USB drive which is now hd1
root (hd1,0)
# Rufus uses the file called bootmgr (which is ntldr renamed)
chainloader /bootmgr


Note that when I used a E2B Removable Flash USB drive this worked fine, however if the E2B USB drive was a USB HDD (I tried both a 2TB WD and a 230GB SSD E2B drive), Setup could not find the install files on the USB HDD during Stage 2 GUI mode setup. Windows XP did not assign a drive letter to the USB HDD drive for some reason although DISKPART listed the USB drive.

So, for Rufus, I recommend making a USB Flash drive from the XP Install ISO using Rufus and then converting the whole Rufus drive to a .imgPTN file and adding this to a E2B USB Removable-type Flash drive (phew!). However, unless the ISO has added mass storage drivers, this will only install to systems containing IDE drives.

Other Rufus stuff

  • MicroXP Pro v1.11b seemed to complete the Setup process OK, but even installing from an ISO in VBox (i.e. not using E2B) or Rufus Flash drive via VBox, it did not seem to be fully working (e.g. 7Zip had no file association and the Theme was not applied and many Desktop icons used in the install were left on the Desktop). Installing from a Rufus Flash drive onto a real IDE system did work however.
  • You could extract the whole $OEM$ folder from the ISO first using 7zip and copy it to a folder on the E2B USB drive (e.g. \MiniXP11b\$OEM$). Then after XP has been installed onto your target drive using E2B, you can copy the files from the $OEM$ folder to your XP drive. Use this page as a guide as to where to copy each folder to - for instance if there is a $OEM$\$$\Web folder, it should be copied to C:\Windows\Web folder on your new XP installation, a $OEM$\$Docs\All Users folder should be copied to C:\Windows\Documents and Settings\All Users. $OEM$\$1 folders will go to the C: drive. This was a lot of extra faff!
It is obvious that to support installing from a USB Hard Disk, extensive patching of the XP install files is required! For more reading see here.

WinSetupFromUSB works!

Next I tried WinSetupFromUSB and specified a spare 80GB NTFS USB Hard Disk which I had available as the target drive. The resulting USB HDD made from the MicroXP Pro 1.11 ISO (mounted by ImDisk as a Virtual CD so WinSetupFromUSB could access the files) was then used to boot an Asus EeePC IDE netbook and the XP install proceeded perfectly. The $OEM$ files were copied and the XP Desktop was installed correctly during post-install.

WinSetupFromUSB used a modified txtsetup.sif file which added the required USB drivers to XP.

I then made a .imgPTN file from the WinSetupFromUSB drive and added it to my E2B drive.
The WinSetupFromUSB \menu.lst file can be merged into the CSM menu.lst file (you should be prompted to combine the menus by MakePartImage).

To install XP, I first chose the WinSetupFromUSB 'Auto Detect and use F6 SATA/RAID drivers' menu option and then the Step 1 menu option. The textmode setup stage appeared to proceed normally. I rebooted and chose Step 2 and the GUI Setup stage started and all proceeded perfectly.

So here is my recommended solution for those 'special' automated XP Install ISOs...


How to add a non-standard XP Install ISO to E2B

Note: You will need to install the E2B MPI Tool Kit first.

1. Mount the XP ISO as a virtual CD using ImDisk (or extract the files from the ISO to a empty folder using 7Zip or similar software)

2. Insert a spare, freshly NTFS-formatted USB drive into your Windows system

3. Run WinSetupFromUSB and select the USB target drive in the drive selection box

4. Tick the Windows 2000/XP/2003 Setup box and use the  ... box to select the source folder that contains the files from your ISO


5. Click on GO to make the USB drive

6. Drag-and-drop the USB drive letter/icon onto the MPI_NTFS Windows Desktop shortcut, specify a destination path (e.g. C:\temp\XP_Winsetup.imgPTN) and when prompted, choose the Combine option to combine WinSetupFromUSB's  menu.lst with the MPI CSM menu.
Note: If there are System Volume Information and $Recycle.BIN folders on the drive, it may cause problems with the MakePartImage or produce a larger .imgPTN file than is necessary, so to avoid this, copy all the other files and folders to an empty folder on your system disk (e.g. C:\temp\WinSetXP) and drag-and-drop that folder onto the MPI_NTFS shortcut.
7. Copy the resulting XP_Winsetup.imgPTN file to the (for example)  \_ISO\MAINMENU or \_ISO\WIN folder of your E2B USB drive (Flash drive or USB HDD).

Notes: WinSetupFromUSB moves the files and folders to a \WINSETUP folder - e.g. \WINSETUP\XPpSP3. Some modified installs will look for these files and folders in the root of the drive once XP has been installed, in order to install more software once it reaches the Desktop.


In the above case, copy all three WINxxxx tag files to the root of the .imgPTN image.
Also, copy the whole $OEM$ folder to the root.
If you still get errors after installation, if there are any other folders present in this folder (not I386 or [BOOT]) then you may also need to copy them to the root too.

How to install XP onto another system

1. Connect the E2B USB drive to the target system and boot from it to the Main menu
2. Select the XP_Winsetup.imgPTN menu entry to get to the CSM menu
3. In the CSM menu, choose the Windows XP/2000/2003 Setup menu option
4. If the target system contains a non-IDE hard disk (e.g. SATA/RAID/SCSI) run the Auto-detect and use F6 SATA/RAID/SCSI Driver menu option
5. Now choose the First part of Windows XP setup menu entry and proceed with the normal XP textmode setup process until it reboots.
6. Reboot back to the E2B USB drive again (don't boot from the internal hard disk yet!) and select the Second part of Windows XP setup menu option to start the 2nd GUI install stage.
7. Allow it to reboot from the internal hard disk to complete the install.
8. You can modify the CSM \menu.lst file to change the menu colours and remove any menu options you don't want. You can also add the \winsetup.lst menu contents into the \menu.lst menu if you wish and remove the 'title Windows XP/2000/2003 Setup menu' entry.

Notes:
  • Older versions of XP ISOs complained about not being able to validate and would not allow the Desktop to load on the final reboot.
  • WinSetupFromUSB FAQ here

Please ensure that you only install XP onto a legally licensed system such as systems with an XP Pro or Vista Pro Certificate of Authenticity sticker on them (or if your establishment has the correct Volume Licence agreement) which can be legally installed with XP Pro.

P.S. Please tick one of the feedback boxes if you found this useful and subscribe to this blog.