From: Paul Gortmaker (rcopg@minyos.xx.rmit.OZ.AU)
Date: 11/30/92


From: rcopg@minyos.xx.rmit.OZ.AU (Paul Gortmaker)
Subject: Re: D:read_intr & write?
Date: 1 Dec 1992 01:31:47 GMT

tim.foley@rose.com (tim foley) writes:

>Date Entered: 11-19-92 10:34

>
> I have added my second 40meg drive, but now I get some bizarre messages
>whenever I do a large amount of work on it.
>
>HD: read_intr: status = 0x59 (sometimes 0x51)
>HD: read_intr: error = 0x80
>HD-controller reset
>harddisk I/O error
>dev 0302, sector ####
>
> And this will go on and on....any ideas why this is happening?
>Both of my drives are *MFM*, and used to work great on dos, I just
>recenly re-partitioned the other drive for Linux and did a mkfs.
> The drive appears to work fine, I can mount it, mkdirs, copy files, etc
>but only when I try to do something large, like copy over a directory
>and its files from the other harddrive to the new one, do I get those errors
>....
>
> My os is Linux 0.98p1 SLS distrib, system is 486 25mhz, 8 meg ram.
>
>The two partitions are my original HDB1 and now my new HDA2.
>
>(Please reply in the net, not to any of my addresses)
>
> Tim

        Well, join the club. Apparently this is not uncommon. I have a 486
that I am trying to get Linux to go on. It has a 210MB West. Digital HD, and
I get the same errors all the time. I think Linux is a bit pickier as to the
behaviour of the HD controller. Only the frequency of the errors in my case is
enough to bring the system to its knees. I am about to try another HD
controller to see if I can figure out where the problem is. I have already
shifted the partitions around a bunch, and run surface tests on the disk,
but I can't seem to get around it.

        In your case, it might be as simple as runnning "mkfs -c /dev/hd??"
The "-c" option checks for bad blocks. (..this is 98p5 I'm talking about)
It will print out block numbers as it goes through the disk, so don't be
alarmed, as this is just where it is presently at. However, I have had another
Linux user state that the "-c" option is not successful in getting ALL the
bad blocks sometimes. What would be nice is some extensive disk diagnostics
for the Linux filesystem(s).

        If you are also getting lots of HD timeouts, you will want to change
the value of HD_DELAY in /usr/src/linux/kernel/blk_drv/hd.c to some non zero
integer between one and 200, and then recompile the kernel. I suggest using
GCC v 2.2.2d for this, if you don't have it, you might consider updating.
(Its in 98p5 SLS).

        When I figure out (... or IF I figure out) how to shed these crippling
"HD read_intr 0x??" I will post the magic solution.

                                Best of Luck.

                                Paul Gortmaker.