*BSD News Article 13776


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!osuunx.ucc.okstate.edu!moe.ksu.ksu.edu!zaphod.mps.ohio-state.edu!wupost!uunet!think.com!enterpoop.mit.edu!ira.uka.de!rz.uni-karlsruhe.de!news.uni-stuttgart.de!zrzr0111
From: zrzr0111@helpdesk.rus.uni-stuttgart.de (Kurt Jaeger aka PI)
Newsgroups: comp.os.386bsd.questions
Subject: [Q] Adaptec 2372B (RLL controller) and bad144
Date: 31 Mar 1993 11:58:16 GMT
Organization: User Help Desk, Comp.Center (RUS), U of Stuttgart, FRG
Lines: 100
Distribution: world
Message-ID: <1pc10o$ohu@info2.rus.uni-stuttgart.de>
NNTP-Posting-Host: helpdesk.rus.uni-stuttgart.de
Summary: bad144 is not able to write a new bad sector table, i/o error

Hi!

First let me describe my setup:
386, no FPU, Seagate-4144, Adaptec 2372B controller, 12 MB RAM.

Second, the problem:
The mount of the root filesystem on disk does not work, it boots
from the harddisk, but does not find a bad sector table. It seems
the bad sector area can't be written to.

Third: What did I try ? [the longest part 8-}]:

At the beginning, the disk seemed to loose any disklabel I put
onto it. disklabel printed the error

disklabel: ioctl DIOWDINFO: No disk label on disk;
use "disklabel -r" to install initial label.

It took quite a time before I realized that disklabel -R, reading
a proto file like the one generated with disklabel -r wd0,
can be used to *really* write a lasting disk label.
The protofile currently contains all relevant information, I hope.
There is only one partition listed in my protofile, part-a
that covers the full disk (sectors 0 to 1023). When I tried
to create a protofile with more partitions, I got a warning about
partition b and errors for other partitions (c to h).

Ok, so I installed an "initial disklabel" with

disklabel -R -r wd0 /tmp/myprotofile /usr/mdec/wdboot /usr/mdev/bootwd

This label is really on disk, because I can reread it after a reboot.
Nice surprise 8-)

Now I configured my partitions, a to d, with some values, in
/etc/disktab and ran

disklabel -w wd0 st4144 wdboot bootwd

This survived reboots, as well. Fine, I thought.

Now I tried to create a bad sector table.

bad144 wd0 0

It worked, as well, or so it seemed. Using the method Terry Lee
proposed in Aug.1992, I checked for bad blocks:

dd if=/dev/wd0h of=/dev/null bs=512.

When it ran into bad sectors, it stopped with error 5. I added
one sector to the table and restartet dd. BUT: It ran into the
same sector again.

bad144 wd0

listed the sector I entered before !

The next few iterations on correcting the bad sector table were
not successful [lowering the a partition of the "initial disklabel"
5 cylinders, lowering the d partition of the /etc/disktab disklabel
for 5 cylinders, increasing them both, etc etc.]

Now I can't even do a bad144 wd0 0 any more. It says (even when
the floppy-fs is mounted read/write):

bad144: write bad sector table file 0: Read-only filesystem
[repeated for 1, 2, and some more].

When I now do a disklabel -w wd0 st4144, bad144 wd0 0 prints
other errors:

bad144: write bad sector table file 0: Input/Output error
[repeated for 1, 2, and some more].

The whole situation seems *very* strange.

So, here are a few questions, if anyone wants to comment on them ?

1. When I enter a label in the "initial label", it disappears
   after doing a disklabel -w wd0 st4144. Why ?

2. Is it correct to create a "initial label" with the disklabel -R
   command given above ? Does partition a needs to be the full disk
   size or what is the part-a value in the initial label used for ?

3. Any hints on what might be the problem ? I just *dont* want
   to fetch the source dist, decompress it on some machine and
   read the source of disklabel, wd.c and bad144. But if anyone
   tells me that it will be the only way, well. But please give
   me a *reason*.

Thanks for reading this,

		So long, PI

-- 
PI at the User Help Desk Comp.Center U of Stuttgart, FRG      27 years to go ! 
SMTP: pi@rus.uni-stuttgart.de    Phone: +49 711 685-4828
X.400: pi@rus.uni-stuttgart.dbp.de     (aka Kurt Jaeger)