Windows 7 refusing to boot – could running Bootrec make matters better or worse

bootwindows 7

I hope someone can help – it would save me several hours if I do not have to fully reinstall my machine.

Here is a brief summary of what has happened

  • Whilst browsing the web, Windows 7 (Ultimate 64) flashed up the BSOD for 0.5 seconds and the computer immediately restarted.
  • After checking CD drives for bootable media, the BIOS reported "A disk read error has occurred" *(see note 1)
  • "Oh crumbs – my HDD has just died" I thought and popped in the windows install disk and rebooted.
  • After the computer has boted from the DVD and I selected my language, I chose the repair windows installation link.
  • A dialog is then shown that should list the windows installations that it can detect. This dialog was empty.
  • Before wiping and reinstalling, I thought I would check what was accessible from the windows command prompt. To my surprise, my system partition and all the other HDDs were accessible. So (thankfully) it's not a critical-HDD-innards-have-been-toasted problem. But obviously booting is a problem!
  • I then ran the Boot repair tool. It reported that it had fixed 1 problem (I think it said that it created a master boot record – but I must admit to not making a note of the message and I may be misremembering).
  • I rebooted – I got the same error from the BIOS ("A disk read error has occurred")
  • I booted from the install CD again. Now my windows installation IS detected and is shown in the dialog.
  • I ran the Boot repair tool again. It reports that there is nothing wrong! The operating system should boot up.
  • I ran chkdsk /F from the command prompt. No errors were found or fixed.
  • I ran Bootrec /ScanOs and it reported that there were "0 windows installations" detected – I am not sure if this is a good or a bad thing!

So now I am in the position where everything appears to be fine according to the repair tools but are obviously not!

A colleague suggested that I run Bootrec /FixMbr but according to the docs, this would only help if there was a MBR corruption issue – and then surely the boot repair tool would not be telling me that everything is fine!

I guess I basically want to know

  • Does anyone have a an idea as to what may have happened/is happening?
  • Is running Bootrec /FixMbr worth a shot – i.e. could I make matters worse/more complicated by running this.

Note 1: A couple of months ago I got this same error ("A disk read error has occurred") but it went away after 2 or three restarts.

Best Answer

The message

A disk read error occurred.
Press Ctrl+Alt+Del to restart.
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, or subsequent reads of the MFT and root directory for finding the MS Boot Manager image, 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, 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.

Related Question