(1) Hardware detection - The Linux has to detect the your hard disk successfully at the hardware level (same as seeing it in Device Manager in a MS Windows). You do this by clicking a terminal in Ubuntu and issue this command.
the command will list every hard disk and every partition the kernel has found from your system even if they are not mountable. If the disk is not seen in the list then hardware wise Linux did not find it.
(2) Manula mounting a partition - You can click the a MS Windows partition if you can see it on the desktop for a Ubuntu. However you can always manually mount a partition in any Linux. Say it is device /dev/sdb1 you want to mount the commonds in a Ubuntu terminal are
Basically you create a mounting point in the /mnt directory and mount the hardware device on it. Linux kernel is intelligent enough to find out the filing system normally without assistance. A partition can be mounted manually in any Linux if it is "healthy".
mount /dev/sdb1 /mnt/here
LInux has abetter change for you to recover the data because if a system file get corrupted your MS Windows won't boot and you get a BSOD. However Linux doesn't use any of the Windows system files so it can still read/write the rest of the filing system perfectly to enable recovery.
If your partition has corrupted files it will have trouble in mounting it. If the problem is severe the disk is no longer readable and will not appear in the hardware level then.
Hope this helps.