Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 May 1995 15:31:22 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        current@FreeBSD.org, mark@linus.demon.co.uk
Subject:   Re: problem with new biosboot?
Message-ID:  <199505110531.PAA06311@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>  # fdisk /dev/sd0
>  ******* Working on device /dev/sd0 *******
>  parameters extracted from in-core disklabel are:
>  cylinders=2448 heads=12 sectors/track=69 (828 blks/cyl)

This geometry is a merge of the geometry reported by the drive and the
geometry guessed from the partition table.  Since the partition table
is bogus, and is detected to be so, no geometry was guessed from it,
and you ended up with the geometry reported by the drive.

>  The data for partition 3 is:
>  sysid 165,(FreeBSD/NetBSD/386BSD)
>      start 0, size 50000 (24 Meg), flag 80
>          beg: cyl 0/ sector 1/ head 0;
>          end: cyl 1023/ sector 63/ head 255

>The geometry is the untranslated version.  The bogus slice isn't what I
>remember setting it up as when I upgraded to FreeBSD 2.0 (950210 SNAP),
>but probably happened when I used disklabel -e to specify non-zero RPM,
>etc. (?)  ...

Correct.

>Curiously, the compatibility device shows me an MBR table with the translated
>geometry:

>  # fdisk /dev/sd0d
>  ******* Working on device /dev/sd0d *******
>  parameters extracted from in-core disklabel are:
>  cylinders=1003 heads=64 sectors/track=32 (2048 blks/cyl)

It doesn't make any sense to run fdisk on the compatibility slice, especially
on the d partition in it.  The d partition just happens to start at offset 0
on the whole disk, so fdisk reads the MBR from the right place.  It reads
the label from a different place (the in-core label for the compatibility
slice, which is different from the in-core label for the whole disk).  The
geometry is whatever you put in the label.

>Which of these is relevant, and where on the disk is the other one stored?!

Neither is relevant to the current problem :-).  The one for the whole disk
is constructed when a device on the disk is first opened.  It currently
just holds the (currently guessed) BIOS geometry.

>My disklabel uses translated geometry:

>  # disklabel -r sd0
>  # /dev/rsd0c:
> ...
>  sectors/track: 32
>  tracks/cylinder: 64
>  sectors/cylinder: 2048
>  cylinders: 1003
>  ...
>  8 partitions:
>  #        size   offset    fstype   [fsize bsize bps/cpg]
>    a:    36864        0    4.2BSD     1024  8192    16   # (Cyl.    0 - 17)

Booting from partition 'a' should work.  It surely is all below cylinder 1024
in the BIOS geometry, whatever it is, and you don't use bad144.  The whole
disk is probably below cylinder 1024, so even booting from the 'c' partition
should work.

I can't explain the problem.

Bruce



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