Disk read error - can't boot windows (Yup. Another one.)

I have multi-version Kernels on a Dual Boot WinXP / openSUSE 11,3 box. It’s been a LONG time since I needed to boot to Win XP and now that I find that I can’t get to it, I can not say for sure what I did to break it. Looking back, I suspect that the method I used for the recent removal of one of the Kernel versions may have been innappropiate. Rather than unchecking in versions/package groups I may have just removed the unwanted kernel in the package list. Not sure. I’ve tried dinking around with menu.lst and Yast Boot Loader to no success. I get errors depending on what I messed with. Didn’t try to reinstall grub until I checked here for help with a fix. Here’s some info:


 linux-082t:~ # cat /boot/grub/menu.lst
# Modified by YaST2. Last modification on Fri Apr  8 11:43:35 CDT 2011
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

default 0
timeout 90
##YaST - generic_mbr
gfxmenu (hd0,5)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.3 - 2.6.38.2-4
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.38.2-4-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 resume=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part5 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-2.6.38.2-4-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.3 - 2.6.38.2-4
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.38.2-4-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-2.6.38.2-4-desktop

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.3 - 2.6.38.2-3
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.38.2-3-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 resume=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part5 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-2.6.38.2-3-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.3 - 2.6.38.2-3
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.38.2-3-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-2.6.38.2-3-desktop

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.3 - 2.6.34.7-0.7                                                                                 
    root (hd0,5)                                                                                                              
    kernel /boot/vmlinuz-2.6.34.7-0.7-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 resume=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part5 splash=silent quiet showopts vga=0x317                                                              
    initrd /boot/initrd-2.6.34.7-0.7-desktop                                                                                  

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.3 - 2.6.34.7-0.7
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.34.7-0.7-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-2.6.34.7-0.7-desktop

###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
    rootnoverify (hd0,0)
    chainloader +1
linux-082t:~ # clear
linux-082t:~ # fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x252d252c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       20534   164931322    7  HPFS/NTFS
/dev/sda2   *       20534       60802   323454976    f  W95 Ext'd (LBA)
/dev/sda5           20534       20797     2111488   82  Linux swap / Solaris
/dev/sda6           20797       23407    20971520   83  Linux
/dev/sda7           23408       60801   300358656   83  Linux
linux-082t:~ # cat /boot/grub/menu.lst
# Modified by YaST2. Last modification on Fri Apr  8 11:43:35 CDT 2011
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

default 0
timeout 90
##YaST - generic_mbr
gfxmenu (hd0,5)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.3 - 2.6.38.2-4
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.38.2-4-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 resume=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part5 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-2.6.38.2-4-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.3 - 2.6.38.2-4
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.38.2-4-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-2.6.38.2-4-desktop

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.3 - 2.6.38.2-3
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.38.2-3-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 resume=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part5 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-2.6.38.2-3-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.3 - 2.6.38.2-3
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.38.2-3-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-2.6.38.2-3-desktop

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.3 - 2.6.34.7-0.7
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.34.7-0.7-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 resume=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part5 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-2.6.34.7-0.7-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.3 - 2.6.34.7-0.7
    root (hd0,5)
    kernel /boot/vmlinuz-2.6.34.7-0.7-desktop root=/dev/disk/by-id/ata-ST3500418AS_9VMF0FPP-part6 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-2.6.34.7-0.7-desktop

###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
    rootnoverify (hd0,0)
    chainloader +1
linux-082t:~ # cat /boot/grub/device.map
(fd0)   /dev/fd0
(hd0)   /dev/disk/by-id/ata-ST3500418AS_9VMF0FPP

I don’t see anything obvious in the code. Since you use a generic boot loader you could change the boot flag to boot Windows. You certainly would not want to do this regularly but as a test to see if Windows still boots. You will need some sort of boot CD like gparted to do this.

BTW you get any error message flashing on the screen when you try?

As gogalthorp said, try booting windows using the swap boot flag trick from sda2 to sda1. But you better have a way back into openSUSE if you do that (e.g. know how to switch it back from a live CD, or have a copy of supergrub1 disk)

On reflection, I’d use a copy of supergrub1 disk to try to boot windows and report back what happens, that way you don’t fiddle with your ability to boot openSUSE.

Boots to all kernels versions no problem. An attempt to boot windows gives “Disk read error” I can access windows through Linux/Dolphin so at least the data in the partition is not corrupt or otherwise borked.

Downed a copy of supergrub1. It will likely be after the weekend before I attempt any further repairs. Thanks guys.

Do you an XP cd?
Try doing a fixmbr: http://dl.dropbox.com/u/10573557/Win-Install/fixmbr.png

The switch back to grub with my guide: Re-Install Grub Quickly with Parted Magic
Be sure to get the old Parted Magic from my guide
And you’ll probably need to switch the boot flag back to sda2

Disk read error may indicate a bad sector. You should run a low level disk scan (get from the drive makers site or commercial spinrite).

Used PM to reset bootflag to Windows partition and boot XP, didn’t work. Reset boot flag in PM to sda2 and 11.3 still boots to multiversions okay. Tried reinstall of GRUB with YAST, PM, and supergrub. Then tried repair with 11.3 DVD same problem. Tried XP cd fixmbr nope. Tried fixmbr and fixboot no luck. Through all of this I can still access c:windows with Dolphin and nothing is corrupted. Researched XP repairs without including the multiboot info and looking the www over for clues. I’d rather eat a box of nails than reinstall XP. Any more ideas before I contemplate whether I want to start eating from the sharp end or the head of the nails?

What’s the preferred method to post screen shots so I can provide more info.

You can post images with SUSE Paste
Just select Image in the drop box on the top right and ‘never’ in the delete after drop box centre bottom.

You say you switch flag to XP and did fixmbr and fixboot
But what happened? Errors?

Is the boot.ini file still in place and ntldr?

Thanks for the info on how to paste an image. A screen shot can convey more information than I can describe and something might be apparent in an image that I have not noted as relevant.

Same error when trying to boot directly to XP as when selected on menu. " Disk read error press ctrl+alt+delete to reboot." I’ll get back here when I can order the steps I’ve taken to repair this along with the results of each. I do have a few questions that came up along the way and it is entirely possible that I have not performed some of them properly or omitted something that might be obvious to others.

RESOLVED!! After attempting many of the suggested repairs and learning a great deal about Grub, multi boot configurations, and windows booting, I gave up and decided it was time to attempt a repair install of XP. I installed a new SATA optical drive and had a new 500GB SATA drive in a USB enclosure ready to do a full backup before I began. Just on a lark and for no particular reason as I have not entered the BIOS for a long time, I decided to check it out. I performed a factory default in the bios and reset only certain items as needed. Restarted and XP and all linux versions now boot fine. Don’t know what was wrong, how anything could have changed in the bios setup, or what if anything I may have done to fix it.

I feel somewhat helpless sometimes. I never suspected a bios issue. Thanks all.