A few days ago I moved around some hard drives as I was rebuilding my development workstation. This means I connected them on different SATA channels at least a couple of times. This shouldn’t be a problem for Windows at least you shouldn’t end up losing your data.
At one point I noticed one of my volumes was missing, you know, a letter disappeared from My Computer. In the Disk Management console the disk was being shown as unreadable. I used R-Studio to scan and restore all the files from the missing partition. The downside is that you need enough space on a separate volume to restore your files. R-Studio doesn’t have an option to fix the partition and make it available again just like that.
Now, I can’t remember if that disk that contained the problem partition was a dynamic one. In a way this is important as you’ll see later. A few hours passed and again one drive letter is missing. What the hell is happening! I mumbled. At first I thought it is happening on the same disk, but I realized it’s a different one as this time I was facing a restore of almost 400GB files. I didn’t have enough space on only one disk and even scattered on other disks I could’ve provided just 300GB. So, here I am with two choices: wait the next day and buy a 500GB HDD to have enough space to restore or fix the partition so I don’t have to move data.
I started some research on the Internet and most of the posted solutions were referring to a couple of Microsoft support articles which didn’t apply or were so generally written I couldn’t follow their resolutions.
Some of the articles mention as a possible solution changing the partition type to the correct one. What I didn’t understand was why should I change it from 0x42 to something else when it was supposed to be dynamic and 0x42 is the code for dynamic type partition. Anyway, I decided to change it to 0x07 (which stands for NTFS type), but how. Some and among them Microsoft said, Diskprobe. I tried with the one I had already installed in the Program Files\support tools. I got an error message. I downloaded another from Internet. This one launched fine but couldn’t list my physical drives. So, I had to go back to R-Studio as my last resort. I noticed it has a "write feature". I enabled it in the main screen and in the hexadecimal View\Edit screen again, but when I tried to type "07" over "42" I couldn’t.
How I did it? I selected from some other area an existing "07", saved it to disk as file.bin and then got back to the offset where "42"was staring at me and select it (there’s an option to select from an offset and specify the size of the selection). I right clicked on the selection, chose "Load from file" and picked file.bin (previously saved) and "voila" I got the "42" replaced with a "07". Now, close window, close R-Studio and restart computer as if you don’t, even if you re-scan the drives in Disk Management it will still show as unreadable.
After the computer booted again there was my drive with all the folders and files on it. I must say I’m glad I succeeded but the way I did it was dirty, I mean struggling and sweating a lot.
I hope you won’t have this problem but if you read this you probably did and all I wish is that it will help you.
Sort of late but I found that that the last WTL version, 8.0 is out.
Download a library for developing Windows® applications and UI components. Extends ATL (Active Template Library) and provides a set of classes for controls, dialogs, frame windows, GDI objects, and more. This version provides support for Windows Vista, Visual Studio 2005, and Windows CE development.