Sorta. It's not programming related, but it's still making me hate myself for not figuring it out sooner.
So Windows Vista reboots my computer during the night while I'm sleeping to apply an update. I'm fine with that. Unfortunately one of the programs' device drivers I installed decides to BSoD on boot. So Vista reboots. And reboots. And reboots. And reboots. For four hours straight.
I wake up, see what's happening, and boot into XP. Then I go to access my Vista drive.
It's not there.
I check again, it's not listed in My Computer. I try to access it in the Command Prompt. "The system cannot find the drive specified."
Of course I'm not very happy at this point, because I had my Steam games and my perfectly legal music and perfectly legal Stargate episodes and my perfectly legal video games stored on that drive. Not to mention when the computer rebooted I had been DOWNLOADING the latest perfectly legal Stargate episodes and I had been planning to be watching them by now.
So I check out Disk Management. The disk is marked uninitialized and unformatted.
I search the internet and determine the best course of action is to try and initialize the drive. I do so and nothing apparent happens. Unknown to me at the time I had just made things worse... "Initialize" must be a code word for "Wipe the partition table" because that's what it did. Moral: Never listen to the internet.
Of course then when I try to reboot into Vista just to verify my drive still actually existed the boot loader complains the drive isn't there either.
Fortunately after hours of searching and rewriting the MBR, I found a tool and rebuilt the partition table, which I thought had been my original problem. Of course it still didn't work. But now I was able to view the drive perfectly in Windows XP Recovery Console and in the tool I used to rewrite the partition table. So I rewrite the VBR (commonly called the boot sector) to the drive. Still won't mount in Linux or Windows. I am out of drive header things to rewrite.
So then I give up and start looking into buying an external drive, since I can access the drive from DOS I should be able to copy everything over, format, and copy back. Besides another drive would be nice since I'm running out of disk space anyways... again. So I boot from DOS and am glad to discover my BIOS mounts USB drives (a 1gb flash drive, not useful for mass data recovery :)) automatically in DOS. So I boot from a perfectly legal torrented CD that contains probably thousands of dollars of recovery software (none of which had fixed my drive) to use NTFSDOS to see if I can copy some small files off of it... and my USB drive doesn't mount. I try USB drivers on the CD, it mounts it once but the directory structure is garbage. So I reboot and then discover it won't mount again. I reboot off a plain DOS boot disk and it doesn't mount.
I check my BIOS settings for related settings for mounting USB drives and find nothing, but I notice that S.M.A.R.T is turned off for whatever reason in the BIOS, as well as CPU temperature warning. I turn them both on while I'm there.
Then I get concerned that I might have corrupted my USB drive. So I boot into Windows to check it. All of a sudden Windows finds new hardware, Steam starts up,and the drive appears in Explorer out of f***ing thin air, and all my files are OK. I figured out later Windows must've used S.M.A.R.T to fix the drive.
I'm still annoyed I tried fixing this thing for like 25 hours and I ended up fixing it by accident. I actually think my dad mentioned S.M.A.R.T when I talked to him, but I ASSUMED it was on. I didn't realize the BIOS was shutting it off every boot (one of the repair tools turned it on and I assumed it would stay on).
I still have to run chkdsk /f on my drive (I figure I must've screwed SOMETHING up in my quest for my data) and I'll probably have to reinstall Vista since I couldn't get past the BSoDs anyway, but the latter can wait until I get around to partitioning my XP drive so I can run XP, Vista, or Linux at whim. Which I will be able to do when I order my external drive (yeah I know the primary reason for it is sorta moot now but more data capacity is always cool with me).