I’ve just finished migrating multiple partitions from a series of old hard drives onto brand new 2TB disks. I created the new partitions on my new HDDs and then used dd, or more specifically ddrescue, to copy the partition data over. When I booted into Windows though, the partitions were still showing as being their old sizes from when they were on the old HDDs. I made the (wrong) assumption that Windows would automatically correct it when it detected there was a discrepancy between the partition table and the indications within the partition.
I tried chkdsk and chkntfs to run and schedule Windows’ disk checker, but this found nothing of any particular interest and didn’t fix my problem. The solution I found was to use a tool like parted (or gparted) and shrink the partitions down by some arbitrary value (1MB in my case) , reboot, and run chkdsk again. This will hopefully change the size of the partition to be correct in Windows. Note that the disk management in Windows doesn’t seem to like to shrink the drives and fired back an error whenever I attempted it; I had to boot into gparted to resize them.
As they were only partitions I had used for archived files and such, I think a better solution in future would be to copy the files over, retaining permissions etc., rather than copy the raw data from the partition directly.