From owner-freebsd-stable Wed Oct 28 14:49:45 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id OAA27673 for freebsd-stable-outgoing; Wed, 28 Oct 1998 14:49:45 -0800 (PST) (envelope-from owner-freebsd-stable@FreeBSD.ORG) Received: from dingo.cdrom.com (dingo.cdrom.com [204.216.28.145]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id OAA27661 for ; Wed, 28 Oct 1998 14:49:44 -0800 (PST) (envelope-from mike@dingo.cdrom.com) Received: from dingo.cdrom.com (localhost.cdrom.com [127.0.0.1]) by dingo.cdrom.com (8.9.1/8.8.8) with ESMTP id OAA00727; Wed, 28 Oct 1998 14:47:27 -0800 (PST) (envelope-from mike@dingo.cdrom.com) Message-Id: <199810282247.OAA00727@dingo.cdrom.com> X-Mailer: exmh version 2.0.2 2/24/98 To: Harold Gutch cc: Mike Smith , stable@FreeBSD.ORG Subject: Re: HD problems In-reply-to: Your message of "Wed, 28 Oct 1998 23:41:41 +0100." <19981028234141.A913@foobar.franken.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 28 Oct 1998 14:47:27 -0800 From: Mike Smith Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > On Wed, Oct 28, 1998 at 12:06:17PM -0800, Mike Smith wrote: > > Your disk is taking longer to handle the error than we allow it to. Your > > best bet at this point is probably to mount the partition forced > > readonly (mount -f -o ro), copy everything meaningful off the the > > partition, then dd zeroes over it to give the drive a chance to remap > > the sector(s) in question. > > > Is there an easy way to set the timeout-values higher, like patch > a couple of lines in the wd-driver to at least give me enough > time to backup the whole thing, and then nuke the data that currently > still is on it ? > I hope this idea isn't foredoomed due to some other reason. > If not, I'll try mounting it readonly and then go on... Yup. Look for the code that looks like this: /* * Schedule wdtimeout() to wake up after a few seconds. Retrying * unmarked bad blocks can take 3 seconds! Then it is not good that * we retry 5 times. * * On the first try, we give it 10 seconds, for drives that may need * to spin up. * * XXX wdtimeout() doesn't increment the error count so we may loop * forever. More seriously, the loop isn't forever but causes a * crash. * * TODO fix b_resid bug elsewhere (fd.c....). Fix short but positive * counts being discarded after there is an error (in physio I * think). Discarding them would be OK if the (special) file offset * was not advanced. */ if (wdtab[ctrlr].b_errcnt == 0) du->dk_timeout = 1 + 10; else du->dk_timeout = 1 + 3; and change the 10 to 30 or so. -- \\ Sometimes you're ahead, \\ Mike Smith \\ sometimes you're behind. \\ mike@smith.net.au \\ The race is long, and in the \\ msmith@freebsd.org \\ end it's only with yourself. \\ msmith@cdrom.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message