Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jun 1995 18:05:35 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        gil@limbic.ssdl.com, rgrimes@gndrsh.aac.dev.com
Cc:        freebsd-bugs@freefall.cdrom.com
Subject:   Re: kern/466: Disk error on newfs
Message-ID:  <199506010805.SAA25484@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> 	**IMPORTANT** Disks are configured using sector sparing through
>> 	controller low-level format.  This reserves 1 sec/trk for bad
>> 	blocks so that the disk appears "flawless" at low-level format
>> 	time.  This means that the advertised disk geometry of
>> 	1222cyl/15h/36sec is hardware changed to 1222cyl/15h/35sec

>A wd controller reset probably wipes this setting out and goes back
>to 1222/15/36 without sparing.  If you can infact wipe this disk I

It goes back to the original setting which is also apparently 36
sectors.  Rewriting of the geometry to match the partition table
and again to match the disk label got lost in the slice changes :-(.

>suggest you stop using the sector sparing, get a little more capacity
>and tell the install that the drive needs bad144 mapping done on it.

Then there would be a problem with cylinders >= 1024.  It used to be
possible to handle this by changing the geometry, but this also depends
on rewriting the geometry.

>> >Description:
>> ...
>> 	Warning: calculated sectors per cylinder (4096) disagrees with disk
>> 	  label (525)

This is normal, but sysinstall should do something to avoid it.

>> 	/dev/rwd0a:    40960 sectors in 10 cylinders of 1 tracks, 4096 sectors
>> 	       20.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 7680 i/g)
>> 	wd0a: hard error writing fsbn 68 or 64-79 (wd0 bn 68; cn 0 tn 1 sn 33)
>> 	wd0: status 51<seekdone,err> error 10<no_id>

sn 35 (0 based) in the middle of the block is apparently inaccessible.

You might be able to enable translation.  This is selectable by a jumper
on my ESDI controller (WD1007V-SE/1).  Then sector 35 would be writable,
but there would appear to be only (1222 * 35 / 36 = 1188) cylinders and
it would be relatively easy to avoid using the cylinders >= 1188.  However,
there would probably still be a conflict with the BIOS geometry.

>> 	Another note that may help ... I noticed that the kernel message
>> 	describing the disk when the kernel was booting identified the
>> 	disk's physical geometry, and not the geometry as handled by the
>> 	controller (using sector sparing).

>That is because we did a hard controller reset which cleared any setting
>values done by the BIOS at boot time.  This sector sparing is usually
>a BIOS handled wdsetparam thing.  See above...

The reset is almost irrelevant.  The driver reprograms the geometry after
all resets to tell the controller what it thinks it is.  The problems are
that translation is disabled so reprogramming fails, but no error is
detected, and the number of cylinders is a little too high.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199506010805.SAA25484>