これはドライブ位置の変更がレジストリに反映されていないことが原因(Windows XPはHDD上のC:とかD:の位置をレジストリに保存している。signatureとパーティションの開始位置で位置を表現。)
問題のあるHDDを他のwindowsから読み込んで、問題のあるWindowsのレジストリ(HKEY_LOCAL_MACHINE\SYSTEM を含む %SystemRoot%\system32\config\ system レジストリハイブ)をロード。.\MountedDevices中の\DosDevices\C:などの値を書き換える。