Keith Morrigan on Monday, 23 July, 2012 at 15:07:02
Our home Windows XP PC recently died. I wanted to resurrect it, with a whole new motherboard but to keep all our software and settings working on XP. It also seemed sensible to upgrade to Windows 7 on a separate hard drive at the same time - in a dual boot configuration so I could choose to start up in 32 bit XP for access to my old software, while gradually moving stuff across to 64 bit Windows 7. As I discovered, the process is possible, but along the way there are some serious gotchas! By blogging my experience of the long and tortuous recovery process, it may help others solve their own problems - forewarned is forearmed. Rather than an exact technical guide on how to proceed, as others are likely to have different hardware/software/problems, I have instead explained (at some length) the frustrations, symptoms and (for me) the solutions to provide some hints and clues for others - skip to Advice. The blow upThough some bad luck was involved, it was mostly my own fault:- this PC had been playing up recently, and would suddenly freeze without warning with the hard disk access led permanently lit. I had originally built this PC myself, and knew that the MSI motherboard tended to muck up the hardware settings (IRQ and DMA assignments), especially with the on-board sound, having spent many hours in the past forcing the hardware to particular IRQ's that were known to work. Frequently the screen card/onboard sound and hard disk IDE controllers would fight for the same IRQ's. Sometimes on bootup it would re-jig all the hardware bringing the problems back again. Due to the age of the case I also suspected that it may not be keeping things, such as the memory and the main chip (CPU), as cool as a modern system. So I thought I would remove any hardware now seen as mostly redundant, including the floppy disk drive, one of the CD drives, switch off the serial/parallel ports etc to improve airflow (especially around the memory cards), to reduce power consumption (and therefore heat), and to give the motherboard more IRQ's to play with to prevent hardware clashes. While the case was open, it seemed a good idea to remove most of the piles of dust (I have seen many a PC fixed by blowing out the dust and re-bedding cards and connectors), so used my little hand held vacuum to remove dust from inside the case, from vents and fans. All reassembled, all I needed to do was change the system startup settings (BIOS - the system menu that comes up when you press the key indicated at switch on, usually 'Delete') and we should be back to normal:- I pressed the power button then the PC died after about a second. The mains plug fuse had blown, so I replaced it, hoping it was just the fuse, checked inside the case that everything was visually in order, and tried again - this time it failed instantly with a blue spark flash being seen from the back of the power supply (PSU). Bad news, but I had a spare modern PSU available so tried that. No such luck - it did not blow fuses, but cut out immediately (presumably the overcurrent protection in a modern PSU) so the only available conclusion was that the motherboard was fried! I can only assume that I had inadvertently moved dust to the wrong place in the PSU, that the PSU had blown with some sort of short circuit and in the process damaged the motherboard with a power surge. I didn't know whether the memory and CPU were damaged but it seemed likely. Rather than try to buy an out of date motherboard to match a possible knackered CPU, I would just have to bite the bullet and rebuild a new machine. Deciding what to do nextLike anyone who uses their PC seriously (rather than just to watch videos on the internet) this filled me with horror - what about all the old software I rely on, the networking and backup systems, the ancillary bits like the scanner, printer etc, many of which would be out of manufacture with no drivers for the latest operating systems. It would cost an absolute bomb to replace ALL the hardware/software, never mind the endless hours of fiddling with registry, drivers and settings to get it all working together. The only real choice was to rebuild as the original XP machine - thankfully the entire identity of the computer including the operating system, drivers, software and settings should all be preserved on the main IDE/SATA hard disk. However, it did not make much sense for the future to have a modern rebuilt PC limited by an obsolete 32 bit operating system on an older, slower hard drive, so I would also get a new hard drive, install Windows 7 (64 bit) on it, and set up for dual boot. This would get us back to normal quickest and rescue all my old software, while allowing us to gradually switch over to using Windows 7. Choosing the hardwareWhile severely tempted to buy a complete PC or even a bundle kit so that someone else has done all the hard work in putting together compatible parts, it became clear that on my low budget the PC specification could be greatly improved if I chose my own parts. It takes some time to research and choose compatible parts - I started by analysing what's included in off-the-shelf PC's, see how much the parts are, then check what improvements are available for a little more. While at any one point in time the latest and fastest bits can cost a lot more than the cheapest entry level part, often there will be an intermediate model that offers significant improvement at low extra cost. Use manufacturers websites to research the parts - most will now tell you what processors and memory to use with which motherboards. I ended up choosing a Gigabyte A75M-S2V motherboard (Micro ATX) with an AMD A6-3670K processor (socket FM1), giving a 2.7GHz quad core processor with Radeon HD graphics, onboard Gb network and HD audio, USB 2.0 and 3.0 ports and 6 SATA/RAID 6Gb/s connections. For just a little more than the cost of a new PSU, I got a new Micro ATX case complete with 500W PSU - not only would this be smaller than our previous ATX case, but be easier to keep cool (designed for two extra fans) and have front USB/audio ports. Like many new motherboards, this one does not support floppy disk drives or traditional IDE connections, so we could not use our existing floppy drive (which I had just removed anyway), the secondary IDE drive (only used for internal backups) or the existing IDE DVD rewriter. We would retain the original main hard drive, keyboard, mouse and monitor. With a new SATA DVD rewriter, 4GB matching memory, 2 PWM (speed controlled) fans for the case, a new 500Gb SATA hard drive and a copy of Windows 7 (64bit Home Premium) it came to just over £300 delivered! It only took a couple of hours to unpack the parts, read the manuals and carefully assemble the PC, then we were ready to go. Trying to Resurrect XPI had done a lot of online research on what to do, and am grateful to the numerous websites, blogs and forums for their guidance. I knew (from the last time) that it was a pain trying to get XP to work with SATA hard disks, as you have to re-run the XP setup program and load manufacturer drivers from floppy (by pressing F6) to complete the installation before XP can even start up (difficult without a floppy drive!). Research showed that I needed to "slipstream" (merge together) the SATA drivers into a copy of my XP installation disc, then run the XP setup in repair mode. Obviously there would be a lot of other drivers in my XP setup for all the old hardware that would need removing and replacing with the new motherboard drivers, but the killer is the SATA driver, as nothing will work until the hard disk driver is sorted. I also had read that before Windows 7 installation to a new hard disk it was advisable to partion and format the drive (else Windows 7 creates a wasteful 100Mb system partition) and that for a dual boot setup it was advisable to unplug the XP drive when installing Windows 7 (otherwise future removal of XP can prevent Windows 7 from booting). The new motherboard has 6 SATA connections, the first 4 of which can be set in BIOS to either Native IDE, RAID or AHCI modes for all four. I did not have the drives or the wish for RAID, but AHCI mode is meant to have performance benefits over Native IDE so I went with AHCI. There is another BIOS setting allowing the last pair of SATA connections can be set independently to Native IDE mode (this was later found to be an important feature). There are also BIOS settings to change the hard disk order so you can choose which one to boot from, and to select whether to boot from CD/DVD or hard disk. So, I plugged the new drive into SATA 0, the DVD into SATA 1 and the XP drive into SATA 3, booted into the BIOS menu and set the SATA mode to AHCI, the XP disk as first boot hard disk but to boot from the DVD. Thankfully I had our Vista PC with a DVD writer and an external USB hard drive for the preparation work:- I downloaded and extracted all the latest drivers from the Gigabyte site - the one I needed first was marked SATA RAID (although the RAID function was not needed, it was described as RAID/AHCI and said it was needed for F6 installation from floppy). Although it took a while to find (running a business from home, we have stuff everywhere!), I soon copied my XP installation disc into a new directory on the Vista PC, downloaded and ran nLite (a great little program) and followed the help instructions to point at the XP directory, selected to include drivers and to make a bootable disc, point at the right driver (the textmode driver txtsetup.oem in the x86 directory which uses ahcix86.sys) and let nLite do its stuff. It slipstreamed the driver into the installation disc so that the setup program would already have the correct driver, eliminating the need to press F6 and load from a floppy. I used nLite to burn the installation disc to a rewritable CD, and I was ready. Now the fun starts! I inserted the CD, booted up and the setup program ran. I not going to try to describe every button press during the setup, as I am writing this from memory - for instance I cannot remember at which stage I had to press F8 to accept the MS license. I ran the setup, selected to repair an existing installation and was shown the two hard drives as expected with XP on the second one. I created a full size primary partition on first disk and formatted it, I selected the XP disk as the windows installation to repair and at that point... Gotcha 1My installation disc was an upgrade version of XP Home SP1, and setup would not continue until I inserted my previous operating system disc to verify that I was entitled to upgrade. This may be a minor gotcha for most people, after all it is a condition of the Microsoft upgrade that a previous version disc is available, but seriously, how many of you still have your previous Windows 98 discs after all this time? And why do I need this just to repair an existing installation? So off I go turning the house upside down trying to find it - it will still be here somewhere, but where? More frustratingly, I clearly remember noticing it while looking for the XP disc, but despite retracing my search could not find it, although I did find the XP cardboard folder with my XP Product Key. So, I was stumped:- it would not accept any of our other operating system discs, so I would have to find another way to install the SATA driver (by the time the right disc did turn up it was superfluous). After a lot more reading, the next thing I tried was to reburn the installation disc, this time with an extra copy of AHCI drivers where I could easily get at them for a manual installation. I booted into the setup program, pressed R to enter the recovery console, selected 1 for the first windows installation, and entered the administrator password. Now I could use a limited set of commands to view/copy files as well as to enable/disable service drivers. At least it allowed me to see I obviously had slipstreamed the AHCI driver correctly, that the hard disk was working and that all my files appeared to be there. I tried to copy the AHCI driver into windows and enable it as per online instructions, but it did not work - the windows registry needed entries to describe the driver (normally added as the driver is installed). The only way I could see to do this without XP setup repair would be to install Windows 7 first, then use tools for remote registry editing to manually edit the XP registry to add the entries. I tried changing the BIOS settings to boot in Native IDE mode, back to AHCI, changed the hard disk order, deleted the new disk partition, tried other drivers (there is a serious confusion amongst supplied chipset/SATA drivers with multiple varieties), as well as many other things, all with the hope that I could get XP to boot in some form, but even in safe mode it would always crash (BSOD - Blue Screen of Death - showing error 0x0000007B INACCESSIBLE_BOOT_DEVICE). Finally, just before giving up on XP until I could try to fix it from Windows 7, I noticed something:- during the setup program, when showing the two drives and I select the second for installation, it would not continue until I had partitioned the first disk! Weird... Gotcha 2I plugged the XP drive into the SATA 0 port, disconnected the new hard disk and returned to the setup program - this time it continued with setup and did not ask for a previous version disc! It would appear that the setup program needed the disk to be numbered on the system as the previous installation to be able to read the windows system properly, ie what was my first disk on my first SATA port needs to be my first disk on my first SATA port now! Loads of time wasted, but at least I could continue with setup. It copied files then went to reboot into the next stage of setup... Gotcha 3After restarting,I got a "Setup is restarting" message, the Windows logo start to appear then it would reboot and repeat the process. Nothing I did seemed to break this loop, there was no press a key to boot from CD message, if I pressed F8 for the boot menu and selected safe mode it would also say it was resuming setup etc. I think that this was just a glitch, or me losing track of my BIOS boot order settings, because when I eventually reburned the CD with the video drivers as well, I tried with this one and was able to restart the installation. The result was the same, but after research I realised I could press F8 for the boot menu and selecting "Disable Automatic Restart" it would stop on BSOD 0x0000000A IRQL_NOT_LESS_OR_EQUAL. This is a problem with drivers - probably my old drivers - so I restarted the setup into the recovery console and used LISTSVC to view existing driver services, then DISABLE to disable those I recognised as directly related to my old motherboard/screencard/processor, including AmdK7 (processor), bcm4sbxp (onboard network), Cdaudio/VIAudio (onboard sound), nv/nvsvc (video card) and ViaIde/viamraid/videX32 (SATA). On Exit from the console, it rebooted, so I also went into BIOS and disabled all non-essential hardware including the onboard sound,network and USB 2/3 ports, restarted setup, and it rebooted in a loop again! Gotcha 3.1My fault - when disabling the USB 2.0 I had forgotten that my keyboard was USB, so I couldn't get into the BIOS or press a key to boot from CD! Despite digging out a USB/PS2 adapter the keyboard still wouldn't work, so I ended up having to use the motherboard CMOS clearing jumper to restore default settings, then redo all the BIOS settings, this time with USB 2.0 enabled before booting. Gotcha 3.2This time when F8/Disable Automatic Restart it would stop on BSOD 0x0000007B INACCESSIBLE_BOOT_DEVICE as if it had lost the AHCI driver, so I restarted the installation again - this time when selecting the drive, it insisted on running a full check of the disk before continuing, but did now continue the setup after the reboot/logo screen. Evidently Gotcha 3 did indeed require the disabling of existing drivers, while Gotcha 3.2 was just the need for a CHKDSK (the previous failed setups had created some file system error on the disk that needed fixing). So on we go with setup... Gotcha 4This time the setup crashed showing a message saying that "Setup cannot continue" and indicating that an SP3 (service pack 3) windows installation disc was required (my original installation disc was SP1 service pack 1). Back to my Vista PC, download the full version of SP3, use nLite to slipstream driver and service pack and burn to DVD, try again. This time the setup continues correctly and I get to the screen where it asks you to enter your key, I enter my Product Key and it is swiftly rejected as an invalid CD key! I notice that my installation disc is actually a DVD so... Gotcha 5Not sure if this is a proper gotcha:- I reburned my installation disc on a DVD and tried again. This time it correctly asked for a Product Key, but still rejected my valid Product Key as invalid... Gotcha 6More research: apparently the slipstreaming of XP SP3 only works right on an XP PC! As I can only do it on a Vista PC it won't work properly, but there is a sort of fix - replacing SP3 slipstreamed file pidgen.dll in the I386 directory with an original SP1 version of pidgen.dll. Back to nLite, start all over again, but this time it accepts my key and starts copying files... Gotcha 7Only to freeze at "Copying Drivers". I tried so many things to get past this one, including reburning the SP3 disc with AHCI and video drivers, changing SATA modes, each time going through the whole setup routine/key entry only to face failure. Research indicated it was something to do with drivers or reading the DVD, so I used recovery console to DISABLE more drivers related to disks/IDE, such as atapi/Sfloppy/PCIIde. Eventually it worked, finished copying files and rebooted to start windows... Gotcha 8After restarting, the Windows logo start to appear then it would reboot and repeat the process. By pressing F8 for the boot menu and selecting "Disable Automatic Restart" it would stop on BSOD 0x0000007B INACCESSIBLE_BOOT_DEVICE. While clearly the AHCI textmode drivers were working for the setup, XP itself was not loading the right drivers at the right time, so I changed the BIOS SATA mode to Native IDE and XP started loading... Gotcha 9The black logo screen showed with "Please Wait" and stayed that way. Research showed this was a known problem with SP3 if Internet Explorer 8 (IE8) is installed, see How to perform a repair installation of Windows XP if a later version of Internet Explorer is installed. Fortunately I did discover at this point that F8/Safe Mode would actually let me run XP in safe mode! At last I could start fixing things. There were various warnings came up (I can't remember if it asked me to Activate Windows but the answer would have been no at this stage). It found various new hardware - I cancelled without installing drivers. First thing, was to use add/remove programs to uninstall all the old hardware driver programs and IE8. Next is to clean up in Device Manager: I start a command window, type "set devmgr_show_nonpresent_devices=1" and enter, then "devmgmt.msc" and enter to start device manager, then click "Show hidden devices" on the View menu: this procedure makes Device Manager show all non-present devices so that I can uninstall them. Going through the lists, I right click/uninstall all the non present devices (greyed out) apart from the ones I recognise as disconnected such as my scanner. Thirdly I insert the Gigabyte CD so it can show me which device drivers to install, only to get a blank screen - their menu does not work! By now fed up with burning discs, I use my USB drive to copy across the downloaded drivers and run their setup programs to install the essential ones - chipset and video. I did not see an AHCI driver being installed, only IDE ones (I am still in Native IDE mode), but did find an installation program DPInst.exe alongside the correct ahcix86.sys driver in one of the subdirectories and ran that to install the driver and the correct registry entries This whole process required several reboots back into safe mode, but finally I was ready to try proper XP. Now that the AHCI drivers were installed, I tried changing SATA mode to AHCI, but it still would not boot into XP, so back to Native IDE mode, and XP starts to load... Gotcha 10Knowing that I was still fiddling with hardware/dual boot, I was not going to "Activate Windows" until my complete setup was stable (you have 3 days to activate from the first warning). But when it came to this stage, an error came up: Authorisation Failed 0x80004005 (Windows product activation). More research - this is due to the SP1 pidgen.dll workaround I used earlier. Updating the pidgen.dll (now in the windows directory) with the SP3 version did not help. The practical solution is to recreate the slipstreamed SP3 installation disc on XP (in the now working safe mode), so I copied the SP1 disc on, used my USB drive to copy across nLite/SP3/drivers, used nLite to create a XP slipstreamed version as an ISO file, copied it back to Vista and burned a new disc (I never thought to try burning in XP on the new DVD drive - it is possible this could all be achieved without the USB drive). Start the whole setup routine again, but with an XP SP3 slipstreamed version (with AHCI driver) - this time everything worked and I was into Windows XP. I activated the other BIOS hardware for network/USB/sound - a new round of repeatedly rebooting, installing drivers and using the non-present mode of device manager to uninstall unwanted drivers. The only thing is, I was still in Native IDE mode... Gotcha 11Even though I had installed the AHCI drivers including the registry entries, XP would not seem to load those drivers in time to boot with, as the AHCI devices were not present at the time the drivers were installed? This may have been fixable via Services or the recovery console ENABLE, but there was one last thing to try now all the other problems were sorted. I plugged the new drive into SATA 0 with SATA mode (0-3) as AHCI, while plugging the XP disk into SATA 5 on IDE mode. Now that XP setup was complete, it did not seem to matter which SATA port the XP disk was plugged into, as long as it was first disk in the boot order. Using this motherboard facility, I could boot into XP with the XP disk in IDE mode, but XP would also find other devices (the new disk and the DVD drive) in SATA mode so would install the drivers. Sure enough, once in XP it found new hardware and listed a AMD AHCI Compatible RAID Controller in the SCSI and RAID Controllers of Device Manager. I shut down, plugged the XP disk into SATA 2 and restarted - it worked perfectly, loaded the right drivers and found new hardware. In non-present mode of Device Manager I could see all the drives now listed as SCSI drives, while the previous IDE versions were non present and could be uninstalled. Install Windows 7:First I used XP Disk Manager to make a full size primary NTFS partition on the new hard drive for Windows 7 and format it. Note that I did not assign it a drive letter: research had indicated that if XP could see this drive, it would tend to ruin some of the system restore/volume shadowcopy protection facilities provided by Windows 7:- so Windows 7 can see the XP hard drive but not the other way round. Time to shutdown, unplug the XP drive and install Windows 7. The Windows 7 installation routine went smoothly. As with XP, I chose not to activate at this time, until everything was settled. Once in Windows 7 I installed the motherboard drivers (the Gigabyte CD menu did work this time) and went through the same install/reboot/uninstall non-present devices loop (note that to show non present devices in Device Manager in Windows 7, the command window must be started in Administrator mode). Now to try dual boot:With both hard drives connected, I tried using the BIOS hard drive boot order facility to select between hard drives - both XP and Windows 7 worked perfectly (note that both drives still see themselves as C: drive when booted from), but having to change BIOS settings is a bit awkward. From research I decided to set the default hard drive to the new Windows 7 one, but add a new entry to the bootmenu:
In Windows 7 I opened a command window in Administrator mode and typed the following commands: bcdedit /create {ntldr} /d "Windows XP"
bcdedit /set {ntldr} device boot
bcdedit /set {ntldr} path \ntldr
bcdedit /displayorder addlast {ntldr} These commands added a previous windows entry (Windows XP) to the Windows 7 boot menu shown at startup. I also copied the hidden system files: ntldr, boot.ini and Ntdetect.com from the root of the XP drive to the root of the Windows 7 drive. Just before continuing, I see the XP drive is listed as E: drive with the DVD drive as D: so use Disk Management to change drive letters, E: to F:, D: to E:, F: to D: ignoring the warnings of confused software as none has been installed yet.
Now to try it... Gotcha 12The system reboots and shows the boot menu as expected, but selecting "Windows XP" just results in an immediate reboot - something is wrong. Following a hunch, I go back into Windows 7 and look at the XP disk Boot.ini: which in two places shows the path for XP windows in the format: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS This path, which effectively says the first partition on the first hard drive, is fine when BIOS booting from the XP disk, when it is recognised as the first hard drive, however when booting to the Windows 7 drive to engage the boot menu and select XP, the XP disk is now effectively the second drive and should be listed as multi(0)disk(0)rdisk(1)partition(1)\WINDOWS. Strangely, it would not let me edit the version of boot.ini on the windows 7 drive to reflect this change, so I edited the XP drive version, recopied it to the Windows 7 drive, then changed back the XP drive version. The EndGreat! It works. Now when I boot I get a boot menu offering Windows 7 or Windows XP (the default one will be selected in 30 seconds). The menu can be configured for time delay/default option via the "Startup and Recovery" section on the "Advanced" tab of the System Settings (Control Panel/System and Security/Settings/Advanced system settings). If I ever uninstall XP, I just need to use BCDEDIT to delete the {ntldr} entry and Windows 7 will be back to normal. At this point I successfully Activated both operating systems online, then started running Windows Update to install the hundreds of updates (including reinstalling IE8 for XP). Everything in XP seems to be working again, software and hardware - but now we also have the facility to grow into Windows 7. Be prepared for a long and arduous process, though hopefully not as bad as mine! You will need:
Access to another PC (preferably XP) with CD/DVD writer and internet. nLite software.
Your original XP operating system disc and CD/Product Key.
If an upgrade version, you may also need your previous operating system disc.
XP Service Pack 3.
AHCI/RAID drivers (textmode, look for mention of F6 loading from floppy during windows setup).
All the other drivers for your motherboard.
A USB drive is also useful (but may not be essential). Important advice adopted from others:
During any one operating system setup, disconnect the drives for other operating systems.
Partition/format your Windows 7 disk from XP before Windows 7 setup, but don't assign a drive letter.
Activate your operating systems after all hardware changes are established (but within the required timescale). - Gotcha 1: You may need your previous operating discs (Windows 98) to rebuild XP so keep them safe and to hand but...
- Gotcha 2: If asked for the disc, you probably have your drive plugged into the wrong port
- Gotcha 3: Use recovery console to disable obsolete hardware drivers, and the BIOS to temporarily switch off non-essential hardware (until later)
- Gotcha 3.1: Be careful what you disable!
- Gotcha 3.2: Don't always assume that it is your hard disk drivers at fault, you may just need a CHKDSK.
- Gotcha 4: Ensure SP3 is slipstreamed as well as your drivers
- Gotcha 5: If your original disc is a CD slipstream a copy to CD, or if a DVD, to DVD
- Gotcha 6: If not slipstreaming on XP, copy on your original pidgen.dll
- Gotcha 7: When in recovery console also consider disabling atapi/PCIIde (they will reinstall later if needed)
- Gotcha 8: Get up and running in IDE mode first, worry about AHCI later
- Gotcha 9: Uninstall IE8 (from recovery console or at the first opportunity in safe mode). Once in safe mode, clean out old drivers (especially non-present ones) and install essential new ones
- Gotcha 10: If your disc was not slipstreamed on XP, once in safe mode you can slipstream an SP3 disc on XP and start again.
- Gotcha 11: If available on your motherboard, boot with your drive in IDE mode, with another device attached in AHCI mode, get the drivers found/installed then change your drive to AHCI
- Gotcha 12: Use BCDEDIT to add dual boot to your Windows 7, copy across ntldr, boot.ini and Ntdetect.com but you may need to edit boot.ini to reflect your disk setup
Good Luck!!
|