Like the title says, I have a 2TB Seagate external HDD. I seem to be experiencing this problem here. Why is my USB drive showing corrupted data when plugged as an internal SATA drive? I removed it from the case and it is inaccessible. Apparently the enclosure works some magic conversion which allows the system to see the full 2 TB partition (I had it configured with one partition the size of the disk), but since the HDD is formatted with MBR rather than GPT and uses 512 K sectors, the partitions appear corrupt when trying to connect it directly either to a SATA cable on the desktop MB or USB to SATA adapter. Now the problem is two-fold. "You could just format it". I could, but I need the data. "Just put it back in the case". I did, but unfortunately, the reason I removed it in the first place was because the cable has become defective and the microUSB or whatever kind of cable it is (it's USB on one end where it plugs into the PC/laptop and has some kind of teeth on the other end where it enters the enclosure - it has a letter B on it so maybe ?) so it is no longer working no matter what I do. I was able to connect the HDD after putting it back in the enclosure and confirmed it was working properly because I could access the files but I basically had to prop up the cable steady with my hand to keep the HDD connected (the USB B end is about as loose as a toothpick in a mug). But not even that works anymore. So long story short, can I get an enclosure that will recognize that HDD directly and not perform this 512 to 4k sleight of hand? Can I access the drive correctly using another OS (maybe a USB Linux version)? Data recovery apps won't cut it because when removed from the case, Windows 8.1 disk management claims there are two partitions and a lot of raw space.
For reference. Advanced Format HDDs, USB enclosures and Windows / Linux compatibility This applies perfectly and the suggestion/solution is to format the drive before using it. Which I would do gladly, except I need to get the data first. 3TB HDD showing 512 logical sector size when connected via SATA
Windows Disk Management incorrectly detects USB 3 drives over 2TB This one makes a recommendation for an Anker adapter:
This was a much more complex issue than I anticipated. I will explain what is wrong here, so others will know what to do in case the problem is encountered.
The actual root cause of this issue is that the SATA controllers on the USB-SATA adapters are not hardware controllers but software emulators of SATA controllers.
This causes the following behavior:
A HDD over 2TB initialized and formatted on a normal PC/Server SATA controller will not be correctly detected by the SATA-USB adapter fake software controller. A HDD over 2TB initialized and formatted on the adapter's fake software controller will not be correctly detected by any standard SATA ports.
The actual solution to the problem is to use a SATA-USB adapter that has a hardware SATA controller. For example, the adapter made by Anker has a hardware controller and will correctly function with SATA drives over 2TB initialized on a normal SATA port.
Technically, this problem has to do with how the software controller interprets the drive's sectors. Somehow the controller ignores the fact that the drive has 4k sectors and assumes it's based on 512b sectors, causing the software to over-count the physical sectors of the HDD.
Practically, all adapters with software controllers are incompatible with the actual SATA spec and miss-translate the sector information.