2

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.

8
  • In order to diagnose this problem we would need to know if your system drive is MBR or GPT.
    – Ramhound
    May 18, 2021 at 16:32
  • Is there a reason you didn't connect this SATA HDD directly to the motherboard initially?
    – Ramhound
    May 18, 2021 at 16:39
  • @Ramhound I initialized it as GPT because it is a 3Tb drive, so I wanted to use all of its space. The reason I did not connect it via SATA initially is because all of my SATA cables were occupied by old drives, so I simply had no space to plug it.
    – fires3as0n
    May 18, 2021 at 16:46
  • Do you happen to have the exact make and model of the adapter with external power supply you used? Sounds like the drive was formatted into some oddball format (GPT maybe?) to handle the 2TB+ size. I know this was discussed here with people doing similar things with external Seagate drives, but can’t find the exact discussion or what the solution was. May 18, 2021 at 16:47
  • @Giacomo1968 I used this one tehno-plus.by/kabeli-adaptery-razvetviteli/… as far as I understand it just connects sata drive to u asb port and adds some 12v power for it to spin up.
    – fires3as0n
    May 18, 2021 at 16:55

1 Answer 1

5

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

No, there is no such thing that "just connecting SATA to USB". The adapter is a full USB device on its own, and it has to actually convert everything – the electrical signalling is different; the protocols are different (a SATA disk wouldn't understand the USB protocols, a USB port wouldn't recognize a SATA device); and even the disk-access command sets are different (SATA disks speak ATA, which the USB adapter has to translate to/from SCSI as is required for USB storage devices).

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.

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.

The problem has nothing to do with SCSI or USB. It's caused by your adapter, specifically, trying to be too smart for its own good.

You would have the same kind of problem when switching between an USB adapter that did this sector translation and a USB adapter that did not.

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

You definitely can, as long as your USB-SATA adapter is not doing this kind of sector translation. With adapters that just "pass through" the original 512-byte sectors, everything will work as expected.

1
  • I've done as you said and now everything works fine. Another moment is that vice versa is true as well, drive initialized via SATA is not recognizible by SCSI, so I had to buy another SATA cable to move my data back to old drives and then to new one.
    – fires3as0n
    May 26, 2021 at 8:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .