*BSD News Article 25319


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!bunyip.cc.uq.oz.au!harbinger.cc.monash.edu.au!yeshua.marcam.com!usc.edu!howland.reston.ans.net!news.intercon.com!udel!newsserv.cs.sunysb.edu!stark.UUCP!stark!stark!gene
From: stark!gene@newsserv.cs.sunysb.edu (Gene Stark)
Newsgroups: comp.os.386bsd.questions
Subject: Re: replies to fsck problem
Date: 25 Dec 93 08:00:06
Organization: Gene Stark's home system
Lines: 36
Message-ID: <STARK!GENE.93Dec25080006@stark.uucp>
References: <13@w2xo.pgh.pa.us>
NNTP-Posting-Host: stark.uucp
In-reply-to: durham@w2xo.pgh.pa.us's message of 24 Dec 93 04:42:53 GMT

>Here is a synopsis of my correspondance concerning fsck
>hanging up on Freebsd.... stuff copiously removed for brevity....

>Apparently, the WD driver requires that you have the c partition pointing
>to the entire disk, and the d partition pointing to that portion of the
>disk used by FreeBSD. The d partition can be *the same* as the c partition,
>if you are using the whole disk for FreeBSD. Notice , in the example

This is backwards!  The WD driver uses the d 'partition' as a special
hook for accessing the whole drive, even the part lying outside the FreeBSD
area.  If you newfs this and mount this as a regular partition, you are
playing with fire!  The c partition is conventionally set to cover the
whole FreeBSD area.  It might be safe to violate this convention and
use c as a regular partition, however I wouldn't do it without out scanning
*all* relevant sources (WD driver, disklabel, fdisk, mount, fsck, etc.)
to make sure that c is not hard coded in there somehow.

>What I did then was run "disklabel -w /dev/rwd1a st251" . This
>partitioned the disk correctly. I then newfs'ed the d partition and
>fsck began to work as advertised.

Just so you don't get real comfortable, I'd like to point out that
the fact that fsck is now working without hanging is probably just an
artifact of the fact that things are now getting done in a different order.
There is still a bug in the WD driver which causes it to hang on the
first (single-sector) read from a drive, when there are two drives on the
controller and under certain circumstances of timing.  I spent some time
pinning this down, but I don't have a real fix because I don't have proper
documentation on programming the WD interface.  As far as I know, the problem
is that *nobody* seems to know for sure exactly how the disks are supposed
to work, and differences in timing between various systems makes it very
difficult to be sure that a change that fixes something on one system
won't break something on another system.

							- Gene Stark
--