A Disk Read Error Occurred

— 5 minute read

"A Disk Read Error Occurred.

Press CTRL+ALT+DEL to restart"

One fine day, just like that, it gives me no other option. After selecting Vista on GRUB menu, I'm confronted with that message on a black screen. Googleing for a solution I see several people damning the hard drive dead. I could not accept declaring it dead just yet. So I found other comments with different ways around this problem. One of them talked about how the partition boot table could be the issue and instructed on using a rescue console command called "fixmbr". I chose to give it a try. Here's how I fixed my Ubuntu+Vista system:

1. Boot from Vista's DVD and chose open command prompt on the system recovery options menu (this menu appears as you chose to repair your O.S.);

2. Type in the command:

bootrec /fixmbr

More info about that on http://support.microsoft.com/kb/927392;

It told me the new master boot record was successfully written. Now I had a new problem. GRUB was gone. How was I supposed to access Ubuntu again? Problem solved with a new Google search.

3. Using a Linux distro live cd, install GRUB. I found the perfect guide for that on http://ubuntuforums.org/showthread.php?t=224351

I'm copy-pasting the guide here, for future reference:


This will restore grub if you already had grub installed but lost it to a windows install or some other occurence that erased/changed your MBR so that grub no longer appears at start up or it returns an error.

(This how to is written for Ubuntu but should work on other systems. The only thing to take note of, when you see "sudo" that will mean to you that the following command should be entered at a root terminal.)

Boot into the live Ubuntu cd. This can be the live installer cd or the older live session Ubuntu cds.

When you get to the desktop open a terminal and enter. (I am going to give you the commands and then I will explain them later)

sudo grub

This will get you a "grub>" prompt (i.e. the grub shell). At grub>. enter these commands

find /boot/grub/stage1

This will return a location. If you have more than one, select the installation that you want to provide the grub files.

Next, THIS IS IMPORTANT, whatever was returned for the find command use it in the next line (you are still at grub>. when you enter the next 3 commands)

root (hd?,?)

Again use the value from the find command i.e. if find returned (hd0,1) then you would enter root (hd0,1)

Next enter the command to install grub to the mbr

setup (hd0)

Finally exit the grub shell


That is it. Grub will be installed to the mbr.

When you reboot, you will have the grub menu at startup.

Now the explanation. Sudo grub gets you the grub shell. Find /boot/grub/stage1 has grub locate the file stage1. What this does is tell us where grub's files are. Only a small part of grub is located on the mbr, the rest of grub is in your boot folder. Grub needs those files to run the setup. So you find the files and then you tell grub where to locate the files it will need for setup. So root (hd?,?) tells grub it's files are on that partition. Finally setup (hd0) tells grub to setup on hd0. When you give grub the parameter hd0 with no following value for a partition, grub will use the mbr. hd0 is the grub label for the first drive's mbr. Quit will exit you from the grub shell.

**This set of instruction is a combination of 2 guides I saw before. One was a Mepis grub how to but I never found it again. The other is the grub manual. It's section explained the find, root, setup process but never mentioned it could be done from a live session.

This is the grub link


Post script;

Just to post as much information as possible, this is an older how to for restoring grub to the mbr. The original post is directions for using the install cd and then there are replies that mention the method I posted here, as well as the chroot method mlind mentioned. If this method fails, you may want to try this http://ubuntuforums.org/showthread.php?t=24113


(Originally posted by catlett on the Ubuntu forums).

4. Lastly, edit /boot/grub/menu.lst adding the entry for Vista.


Edit: so my HDD really had deep troubles. After the fix it worked for a few days, only to fail again. Same error. This time I just installed Win7 on a different drive and copied a few files from it. Big mistake. Just a couple days later it failed big time as partition got corrupted and I couldn't access data on it. I ran some tests on it with Spinrite which seemed to find bad blocks. I tried a few other software to try to recover the partition, with no success. One software, EASEUS Partition Master (freeware) was my salvation. It could not recover the partition, but it made a recommendation to another EASEUS product: Data Recovery Wizard. At this point I had lost all hope and formatted the HDD. This recovery software, unlike other products I tried, worked very well and I was able to get back most of what mattered to me. So, yeah, if you have to fix your boot record once, beware that the issue with it might be more than superficial. BACKUP your files!