After last weekend's attempt to revive my TiVo's hard drive apparently my computer was a bit unhappy. I'm not entirely sure how or when it happened, but sometime this week my 500GB Seagate hard drive decided it was only 128GB.
I know what you're thinking - that's gotta be some lack-of-48bit LBA thing, 128GB/137GB limitation going on. Nope. I'm running XPSP3, the computer is only a couple years old, it is SATA, and there's another 250GB SATA drive in the same computer that was working fine. But the bios saw 128GB and Windows saw a 128GB unformatted NTFS partition. There wasn't anything critical on the drive, but at the same time I didn't want to lose it. It was filled with stuff like MSDN downloads that I could get again if I needed to, but it would have been really time consuming.
A lot of searching around lead me to Seatools for Dos that allows you to set the capacity of the drive. What? Apparently modern hard drives have a "feature" called Host Protected Area (HPA) that allows the firmware of the drive to report itself as less than the full size. Apparently some OEMs use the area beyond this to hide recovery data so that even partitioning utilities can't wipe it out. This feature somehow got enabled on the drive AND the drive's partition table was rewritten with a new one... I'm going to blame one of the many TiVo boot CDs I used trying to get my TiVo's hard drive going again, but I really don't know. Generally I disconnect any extra drives when messing around but I may have missed it once or twice.
A little research revealed several utilities that should be able to clear the HPA setting and restore the drive's full capacity.
Seatools for Dos
MHDD
HDAT2
Hitachi Feature Tool
I tried them all. They all failed. I tried them on a different computer. Fail.
Finally I tried HDD Capacity Retore, a Windows utility. That didn't even see the drives in my computer. So I tried it on that second computer, and it finally worked. Both computers now saw the drive as its full 500GB.
But all was not well. I still had the bogus partition table declaring a single 128GB NTFS partition. After failing to recover any remenants of the correct partition table with several different utilities, I gave up and used a linux boot disk to run fdisk and create the partition table manually. It was a single partition consuming the entire drive before, so I just told fdisk to do that and crossed my fingers. Windows saw the partition but still didn't think it was formatted correctly. However, with the drive the right size I was able to use some file-finding utilities for NTFS to grab the files off and make sure I at least got the data off. Whew.
This is where a "normal" person would've given up, formatted the drive correctly, and copied the data back on it. I saw it as an opportunity to try to recover the drive the rest of the way. :)
Trinity Rescue Kit with Testdisk's "Boot" option was able to find the backup Master File Table (MFT) on the drive and restore it. Windows' chkdsk fixed a couple other problems and the drive is back in operation. File compares and testing the .zip files on the drive show that everything is a-OK.
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment