Windows 7 - "A disk read error occured. Press Ctrl + Alt + Del to restart"
This message is emitted by the Volume Boot Record of an NTFS volume formatted by Windows NT up to version 6.x. It isn't an MBR problem, because by the time that the error is generated, the MBR bootstrap code has successfully run, and loaded the VBR into memory and executed it.
The VBR code for NTFS generates this error message if its attempt to read sectors 1 to 16 of the volume into memory fails. That can fail for several reasons, more on volumes formatted with Windows NT version 5.1 and earlier than on volumes formatted with Windows 6.0 and later. (Some code was removed from the NTFS VBR bootstrap in Windows NT 6.0.)
The most prominent reason, after an honest-to-goodness hardware fault as mentioned in the question and in other answers, is an incorrect value in the "hidden sectors" field of the BIOS Parameter Block. This can be caused by a broken formatting program that didn't know that it is required to set this field correctly; or a broken partition management utility that didn't know that it is necessary to keep this field value in synch with the partition table for primary partitions when it moves them around.
A less probable reason still (a hardware fault being the most probable) is the use of Windows NT 6.x on a machine that doesn't support the Phoenix-Intel-Microsoft EDD firmware extensions to INT 13h. The code that was dropped from the Windows NT 6.0 VBR was the code to deal with the case that such extensions were not supported by the machine firmware. Since these extensions pre-dated the release of Windows NT 6.1 by some twelve years, it is unlikely to be the case that one is attempting to install Windows NT 6.1 on an old machine that does not have them. But the remote possibility that one is doing is another possible cause of this error message that should be mentioned for completeness.
Microsoft states that this error message will also appear when an NTFS system volume with Microsoft Boot Manager on it is incorrectly formatted with the Windows NT 5.x NTFS VBR instead of the Windows NT 6.x NTFS VBR, and provides step-by-step instructions for both restoring the correct version NTFS VBR and adding an {ntldr}
option to the Microsoft Boot Manager menu to do what the older version NTFS VBR would have done directly.
As you're getting a new disk to reinstall Windows you can simply plug the old disk in a slave (or put it in an enclosure and use it as an external drive). Then depending on what's actually failing you might be able to get the data off.
Taking your three cases:
- Hard disk failing. You might be able to read data off the drive before it fails completely. This is the worst case.
- Corrupt MBR. As you are not booting from the disk any more you should be able to use it as a second drive. But you will want to copy all the data off as it could be indicative of a more serious problem.
- Bad Sector. Again, you should be able to read the data off the drive- apart from in the bad sector, but a repair might fix it and you can carry on using the drive.