I need programmatic direct read access to bytes on a drive surface at an absolute offset with no consideration of the file system or partitions. What functions in the Windows API are responsible for this?
Fine print (here's why I need it):
I sent this message to Promise Inc. regarding drives on a FastTrax SX4000:
As a last resort I plan to start at the beginning and end of the disk and test which parts of the drive have matching parity information to make a best guess of which parts were converted. I can then make my virtual disk spans meet in the middle based on the results.
Fine print (here's why I need it):
I sent this message to Promise Inc. regarding drives on a FastTrax SX4000:
I had a drive fail (bad blocks encountered) during an online array expansion from a 3-drive RAID-0 to a 4-drive RAID-5. I need a way to find out which parts of the drives were converted to RAID-5 and which parts are still RAID-0 based on the binary promise block found at the end of the disk. With this information, I can create spans of RAID-0/5 inside my recovery program and splice them together to form what would have been the online drive image. At that point, everything should be recoverable that lied outside the bad block. Since the 600gb drive had only 150GB of data, and the bad section is only a couple GB at most, most or all of the data should be fine.
For what it's worth, the array conversion stopped itself at the 66% complete mark and stayed that way for over 12 hours giving messages in the Windows event log about encountering drive errors and having to reset the channels.
My failed drive's warranty expires in less than 1 week, so it's important I know this information ASAP so I can try to get my data back.
As a last resort I plan to start at the beginning and end of the disk and test which parts of the drive have matching parity information to make a best guess of which parts were converted. I can then make my virtual disk spans meet in the middle based on the results.