1

I have a 7TB internal HDD that I have been using on my laptop via USB using a docking interface. Now I am trying to use the HDD on a PC as internal storage (via SATA). However, Windows 10 does not correctly detect/read the HDD.

Specifically, the partition table of the HDD is GPT but Windows incorrectly identifies it (as MBR I suppose) and marks it GPT Protective Partition.

It seems the issue is related to the firmware of the docking interface as mounting the HDD via the docking station fixes the issue. A similar issue is explained here. However, I do not have access to the docking station, so I am wondering if the partition table can be fixed using diskpart or a (ideally free) third-party tool.

I am interested in methods that keep the data intact.

10
  • 2
    You can't really "fix" it, unless you mean you don't care about the data on it anymore. If that's the case, clean in diskpart should work. (And after reformatting and all that, it will not work when you connect it using this same dock, unless if again you don't mind / want all the data gone.)
    – Tom Yan
    Jul 14, 2022 at 5:11
  • Certainly, I care about the data and want the whole process to keep the data intact. Jul 14, 2022 at 5:58
  • 1
    And you can't. In that case the only way is to keep using the dock. (But certainly you can make file-based copy of the drive to another drive that is attached internally.) The issue does not lie only in the partition table, but also the whole filesystem.
    – Tom Yan
    Jul 14, 2022 at 6:02
  • I tried file-based and sector-by-sector cloning of the HDD; but it does not seem to work as expected (e.g., EaseUS Todo Backup detects ~10TB volumes on a 7TB disk). So, I wish to find a method to fix the issue. Jul 14, 2022 at 6:37
  • 1
    Why would you even copy before putting it back to the dock? The whole point here is, you CANNOT read the data on it without the "8-to-1 sector grouping layer" on the drive. (You can use losetup on Linux / WSL to "emulate" the same "grouping layer", but again that doesn't mean you can "fix" things on the drive. You can only copy files from it to a drive that is accessed without such a "layer".)
    – Tom Yan
    Jul 14, 2022 at 9:44

2 Answers 2

2

As mentioned in my comment, you can use losetup to "emulate" what your dock had been doing for your drive, namely to expose every eight 512-byte logical blocks as a single 4096-byte one to the operating system:

losetup -b 4096 -P -f -r /dev/sdX

You can refer to the man page of losetup to find out what each of the option in the command line means / does.

Unfortunately -P seems to be broken when -b is not 512, at least in the version of losetup the Linux distro I use ships, so the following command is needed additionally:

blockdev --rereadpt /dev/loopN

Then you can use either blkid to see if the partitions / filesystems are recognized correctly:

blkid /dev/loopN*

Next, make a directory (with whatever name you like) somewhere as the mountpoint to use:

mkdir ~/meh

Finally, mount the filesystem you want to access / get back your data / files from:

mount -r /dev/loopNpM ~/meh

(You need to have ntfs-3g installed. I'm not going to cover how to check / do that here. It's distro-specific anyway.)

Here's a screenshot of an example case I did with WSL:

enter image description here

Note that the 1 in \\.\PHYSICALDRIVE1 was identified with Disk 1 in Disk Management. You don't need to set it to offline manually as wsl mount --bare takes care of that. After unmounting the filesystem and detaching the loop device inside WSL, you can get out with exit and then detach the drive from WSL with wsl --unmount \\.\PHYSICALDRIVEN.

0

I have a 7TB internal HDD that I have been using on my laptop via USB using a docking interface. Now I am trying to use the HDD on a PC as internal storage (via SATA). However, Windows 10 does not correctly detect/read the HDD.

It appears that your docking station is a special one that emulates a sector size of 4096 bytes to the computer while operating on a disk with only 512 bytes.

Specifically, the partition table of the HDD is GPT but Windows incorrectly identifies it (as MBR I suppose) and marks it GPT Protective Partition.

That is wrong. A so-called GPT Protective Partition is part of the GPT partition table specification which contains two partition tables. The first ist a "protective MBR" (on LBA 0) called "GPT Protective Partition" in your case. Its purpose is to make legacy operating systems believe that are unable to recognize the GPT structure that the disk space is already occupied. This prevents overwriting existing data on legacy operating systems.

The second part is the GPT partition table (on LBA 1). https://en.wikipedia.org/wiki/GUID_Partition_Table

It seems the issue is related to the firmware of the docking interface as mounting the HDD via the docking station fixes the issue. A similar issue is explained here. However, I do not have access to the docking station, so I am wondering if the partition table can be fixed using diskpart or a (ideally free) third-party tool.

A free third-party tool like Testdisk will find the partitions and rewrite the partition table accordingly. What I don't know is if the internals of the file system(s) used are affected by a change of sector size.

2
  • In this case never do any "recovery" that involves any in-place writing. It will only mess up everything, since from a certain point of view, nothing is broken / lost. Also, the protective partition entry isn't exactly a part of the GPT. It's a part of the "protective MBR" (on LBA 0) that, essentially speaking, should always be used along with the GPT.
    – Tom Yan
    Jul 15, 2022 at 1:55
  • Tom Yan, I rewrote this part as the protective MBR contains a separate partition table. Thanks for pointing it out!
    – r2d3
    Jul 15, 2022 at 16:42

You must log in to answer this question.

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