Hard disk drive is visible via USB 3.0 but not via SATA

I have connected and initialized(as GPT) a new 3.5 3TB hard disk drive via USB 3.0 (using this Orient UHD-523 adapter with external power supply), moved my data from two old 1TB hard disk drives into it.

Now I removed old hard disk drives, connected a new one via SATA and… PC detects is as 2TB initialized partition + 1TB of unallocated space, I see no data on it unless I plug it back via USB. (SATA is in AHCI mode, I have Win 10 and Asus Prime B450-Plus MOBO with new drivers)

Looks like the situation described here, but I am not sure.

Can someone confirm that for some reason the same hard disk drive initialized as GPT through USB and through SATA for some reason become incompatible?

This is what Windows Disk Management shows when drive is on the USB adapter: on USB

And this is the same drive on the system’s SATA connection: on SATA

SATA reports correct drive name while USB says it is Asmedia as2135 SCSI.

*UPD The problem solved, look at the accepted answer.

The lesson I've learned is that SCSI(external usb drive connectors) are to be used only as external drive, not to transfer data for future internal drive, as they are completely incompatible.

And you can not take internal SATA drive and connect it via USB without re-initializing as well.


as far as I understand it just connects sata drive to u asb port and adds some 12v power for it to spin up.

There is no such thing that "just connecting SATA to USB". The adapter has to be a USB device on its own (a SATA disk wouldn't understand the USB protocols), and it has to translate not just between physical layers but also between two different disk command sets (SCSI on one side, ATA on another).

Looks like the situation described here, but I am not sure.

It seems like the same cause as in the linked post. Your USB SATA adapter accepts 512-byte sector disks, but pretends to the OS that it's actually a 4096-byte sector disk. (This trick allows disks above 2 TiB to be MBR-partitioned, because 8x larger sectors means 8x fewer sectors – it can be useful e.g. for TVs or old WinXP systems which do not recognize GPT.)

(Note that this translation is not universal among USB-SATA adapters – it's a feature that your adapter's manufacturer specifically decided to include.)

Your disk is GPT-partitioned. The GPT data (i.e. the actual partition list) starts not at a specific byte but at a specific sector (LBA 1 and onwards), so if the adapter is emulating a different sector size, the same LBA will actually point to different data than it did when the disk was connected directly, and vice versa, so the GPT cannot be found anymore. The "protective" MBR, however, is at 0 either way so it's still recognizable.

The fancy diagram

Suggestions:

Use the same USB adapter to move your data elsewhere. Once the disk is empty, use 'diskpart' to delete its partitions, reconnect directly via SATA, and re-initialize a new GPT partition table. Then move all data back, as if you had a brand-new disk.

It might be possible to just build a new GPT that points to the correct location without the need to move data (carefully using the Linux 'gdisk' tool), but I'm not sure whether NTFS itself is dependent on the sector size or not.