*BSD News Article 3053


Return to BSD News archive

Path: sserve!manuel!munnari.oz.au!samsung!uakari.primate.wisc.edu!sdd.hp.com!usc!venice!gumby.dsd.trw.com!eel.dsd.trw.com!gottloeb
From: gottloeb@eel.dsd.trw.com
Newsgroups: comp.unix.bsd
Subject: Can not find label
Message-ID: <1992Aug5.002346.20743@gumby.dsd.trw.com>
Date: 5 Aug 92 00:23:46 GMT
Sender: news@gumby.dsd.trw.com
Reply-To: gottloeb@eel.dsd.trw.com ()
Organization: TRW Space & Defense
Lines: 66
Originator: gottloeb@eel.dsd.trw.com


I am having a problem booting 386BSD 0.1 once it has been installed on
my hard disk.  I believe that there have been a few posting from others
with this problem.  I have done some research into the problem with the
following results.

The install procedure works correctly.  No errors are displayed and using
a DOS-based disk editor I have been able to verify the disk label has been
written correctly and on a cylinder boundary. (I wrote a C program to
display all the values in the label, including recomputing the checksum,
using the data retrieved by the disk editor.)

However, when I try booting off of the hard disk, after the kernel displays
the hardware devices found it issues the message:
   wd0: can not find label (no disk label)
   panic: can not mount root

   trap type c ...

At which point it tries to write a core image to the disk and fails with
the message:
    ...
    bad system device

It then reboots and repeats the process.

After plowing through the code for boot.c and both wd.c's (the one for the
boot code and the one in the kernel) I have determined the following:

  1)  the boot code is able to validate the disk label because it loads
      the kernel and transfers control to it (based upon the C. Demetriou's
      debug version of the Tiny install bootimage).

  2)  the message "wd0: can not find label..." is found only
      in the kernel's wd.c and not the other one.

  3)  Booting the fixit disk, the disklabel -e -r command reports BAD MAGIC
      NUMBER.  It then shows the correct number of sectors/track and
      tracks/cyl but has the wrong number of cylinders (native mode number),
      rpm=0 and interleave=0. The disk is configured with 954cyl, 12trk,
      36sec.  After I correct these values and quit the editor, it appears
      to write the values but upon rebooting the problem persists.

  4)  There is a comment the wd.c (the boot program's I think) that "heads
      must be fewer than or equal to 8 to compensate for some IDE drives
      that latch this for all time.  What does this mean?

I am willing(begging :-) to work with some one to debug or beta test some code
to track down this problem as it could benefit others as well.  I would
appreciate any assistance anyone can offer.

My system configuration is as follows:

     463/33Mhz, 4Mb, ETEQ chipset
     all shadow ram disabled
     Seagate ST1239A (211Mb) with generic IDE controller in
        translation mode of 954cyl, 12trk, 36sec per manufacturer's
        recommendation
     DOS 3.3 primary and 1 extended partion ending in cylinder 434

I tried installing at high and low CPU speed with no difference.


Thanks in advance,
Jeff Gottloeb
gottloeb@trwrb.dsd.trw.com