Well...this project's test phase is....proceeding....slowly and painfully. I do like learning new things, but when you are trying to learn them for a specific purpose, it is quite a bit more difficult. I started out keeping a list of steps as the beginnings of a new process for the binder, but the process quickly turned comically scattered as every. single. step presented a new problem, which when solved, presented the next new problem. Wall-o-text presented for your entertainment - relish in my bad decisions, stay to the end to witness the sheer tenacity!
tldr: XP is too old to waste your time on!
Here are the steps I took, in mostly chronological order.
1. I take an image of the clients disk with ddrescue, then clone this image to a working scratch drive. I test the old disk with gsmartcontrol, it has a bad sector and one pending reallocation.
2. I run hardware tests on the old XP workstation and everything passes
3. I put this new disk into the existing client's machine, and it boots right up to XP.
4. I run a full chkdsk on the new disk, it finds and repairs several errors, then reports success.
5. I take an unused bench machine, install the latest version of Linux Mint, update and test it. All working ok. Run full hardware diags just in case - all ok. Onward.
6. On another (Win10) bench machine with hotswap bays, I use disk2vhd to make a vhd of the disk. This takes a couple of hours, gets all the way to the end of the process, then hangs. I was trying to write the vhd to an USB external disk, maybe that was the problem. I do it again writing the vhd to the internal disk, same answer.
7. I find BackupChain, a more robust software that will create vhds and try again. It doesn't hang, but also fails after a couple-of-hour effort without creating the vhd.
8. With fresh eyes after a night's sleep, I see that I had been trying to create the vhd from the original client disk instead of my new disk. Idiot. There was a single bad block on that original disk, and it otherwise passed a gsmartcontrol scan, but that bad block was preventing success. I use BackupChain again, this time on the right damned disk, and it works first time. I'll have to go back and try disk2vhd, but no time for that now.
9. I try to pull the vhd file over the network to the Linux machine, but I can't see the Windows network. I troubleshoot a while, disable the firewall on Mint, various other steps found with the google, but no dice. It's 300GB so I don't want to copy it to an external, then copy it back to the linux machine, that would take hours. Finally, I try it the other way, pushing it from the Windows 10 bench machine to the Linux machine. I can ping the machine, but not open any folders. Oh, no folders are shared by default. I share the 'Public' folder (why is THAT necessary, but it's linux, so just do it) That works. It still takes a couple of hours, but that's about the best you can hope for on a gigabit network.
10. Back to the linux machine, I install Virtualbox with software manager.
11. I create a modust XP vm, assign the vhd as the hard disk and boot that sucker up, which fails...no surprise. No safe mode, either.
12. Ok, the answer is apparently to do a repair install of XP which will replace the HAL. Makes sense. I dig up an XP-Pro install disk, make sure the DVD drive is attached to the VM, and boot. Didn't work, doesn't see the disk. Hmm, change the boot order, no help. Check the help file for virtual box, do some googling, check the Mint forums, nothing works. I finally give up and use dd to make an ISO of the XP install disk on the linux machine, attach that ISO to the DVD drive in the vm, and we're off & running. I should have done that in the first place.
13. The repair install hangs....please insert the disk with the Intel Pro1000 network driver...hmm...no way to do that now, so I hit cancel and after the 3rd popup, the repair install continues. I can figure out the network driver later.
14. The repair install completes, I boot the vm again, and....it looks like it's working - I see the original user name. Yea! Oh...."Windows must be activated before you can log on", but clicking ok to that prompt, gives me a plain blue screen.....because why - there is no network? I assume.
15. I boot to safe mode with command prompt and try to ping something - clearly I have no network, oh right, safe mode w/command prompt is without networking...of course I have no network. Idiot.
16. Ok, let's run 3DPNet to get the network driver in and see where that leaves me. Hmm. How to get access to that from within the vm?
17. Ok, I can copy it to a flash drive, plug that into the host machine, then add that drive to the VM. That doesn't work - can't get the drive mounted, even though 'automount' is checked. More research. Oh - I need to add the extension pack to get USB functionality. Download that from virtualbox.org, attempt to add it, but you guessed it, that fails. You need virtualbox v5.2, but only have 5.1 - What...software manager doesn't install the latest version? No, no it does not. Gotta love linux. Take a quick look to see if the 5.1 version of the extension pack is available - don't find it. Sigh. Uninstall VB5.1, manually download 5.2 and the extension pack, install both, open up vb, check the settings for USB, boot the vm....oh right, have to activate before doing anything. Still a blank blue screen. How about safe mode with command prompt? Ok, that works, but I can only see C & D. No additional drives. Back to the drawing board.
18. Maybe if I add a shared folder to the VM. Copy 3DP to the host, add that folder as a shared folder to the VM, boot it to safe mode with command prompt....still can't see any additional drives. Getting frustrating now. Let's make an ISO of the 3DP folder and mount it as a CD, how about that. Now what's the command to do that - more research. Ok, mkisofs. Figure that out, make an ISO, mount it as a 2nd CD drive to the VM. Boot again to safe mode with command prompt, check and I can see the new CD, so run 3DPNet - Hazzah! It identifies the NIC as Intel Pro1000 Server. I install the driver....and.....error - unable to create directory. Ok, I copy the darned folder from the CD onto the C drive of the vm, now it runs. Install the driver....and.....no driver found....because of course it isn't.
19. Ok, new tack. Download the XP version of the Intel Pro1000 Server Driver and install that - what a concept. Find the latest complete set of drivers for 32-bit XP on Intel's site, v23.2. I'm onto you, linux - so this time, I go right to creating an iso of the driver folder, mount that as another CD, boot to the vm, safe mode with command prompt, wait for the prompt to locate the driver, and point it to the CD. Driver not found. Amazing.
20. Maybe getting smarter, I can run device manager from the command prompt, that bring up the standard gui, I open network adapters, I see the welcome exclamation point by the NIC, choose to update the driver, point it to the Intel folder I mounted to a CD, and.....no driver found. There is no installer in the folder, I poke around through the subfolders looking for the a matching driver, but no dice. Then, I see what file it's looking for..... e1000325.sys. So I search for e1000325.??? in case it lived there unexpanded, nothing found. Back to the drawing board.
21. After googling, I find the 31000325.sys file mentioned in a Lenovo network driver download. What have I got to lose, I download that file, make an ISO of the folder, mount it, and there, finally is an installer. I run the installer from safe mode with command prompt in the vm, and it installs, and device manager shows it was successful. Onward.
22. Ok, try again - boot the vm, cannot log on until activated. Ok, activate. Plain blue screen. Feeling very powerful as an IT guru now.
23. Ok, breathe - treat this as a regular computer - think back to XP days. oh, screw it - google activation loop XP = reset licensing components with a few regsvr commands. I remember that process - I can do that.
24. Ok, done - reboot the vm. Same answer - no good. Find more suggestions to extract the tools and sysprep the thing with a factory seal. Growing less and less confident that this project is going to succeed, be worth it, or be something I want to stand behind. I do it anyway, not stopping now!
25. After a reboot, I can now login to the VM. Well, halle-freakin-lujah. It still needs activated, but I now have network and internet access, so I can proceed.
26. I'm sure no one is surprised at this point that the activation was the next hurdle. This machine was originally an OEM license by the vendor of the equipment. The sticker on the original case had their name right below the "Windows XP Professional" line at the top. Plus, I doubt the activation servers are even awake anymore for XP. In any event, when trying to go through the activation process, I could click on the warning in the system tray, but no activation window would appear. I also couldn't bring up the activation window by running the msoobe /a command. I may or may not have tried various other techniques for questionable routes to the activation finish line - nothing I would ever stake my business reputation on. In the end, I couldn't get the vm activated.
I think this is where I call it. It was fun (well, some of it was fun anyway), and would have been a great solution had it been viable and supportable, but that's not where we ended up. This towel is officially thown [in].