This question already has an answer here:
I have a Seagate Expansion 3TB external hard drive with data on it, and I wanted to get at the drive inside the enclosure and make it an internal drive. I'm using Windows 8, so the drive was being seen as having 4k sectors. When I connect via SATA, however, Windows reads the logical sector size as 512 bytes instead of 4096. In disk management it shows a protective GPT partition. When I put the HDD back into the enclosure, it shows it as having 4K sectors, and it reads all my data.
Why is this happening, and how can I get the drive to work when it's connected via SATA?