*BSD News Article 20071


Return to BSD News archive

Newsgroups: comp.os.386bsd.bugs
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!haven.umd.edu!darwin.sura.net!europa.eng.gtefsd.com!uunet!pipex!ibmpcug!ibmpcug!iocgate!news!dfr
From: dfr@rhino.ioc.co.uk (Doug Rabson)
Subject: Re: bad144 problem?
Sender: news@ioc.co.uk
Message-ID: <DFR.93Aug26160534@rhino.ioc.co.uk>
In-Reply-To: bde@kralizec.zeta.org.au's message of 24 Aug 1993 11:26:28 +1000
Date: Thu, 26 Aug 1993 15:05:34 GMT
References: <9322908.27770@mulga.cs.mu.OZ.AU> <1993Aug16.180751.16931@crash>
	<24qnlt$s4p@hrd769.brooks.af.mil> <256js2INN1jk@kralizec.zeta.org.au>
	<25bqo4INNg1m@kralizec.zeta.org.au>
Nntp-Posting-Host: rhino.ioc.co.uk
Organization: Intelligent Office Company Ltd.
Lines: 54

In article <25bqo4INNg1m@kralizec.zeta.org.au> bde@kralizec.zeta.org.au (Bruce Evans) writes:
> 
> In <256js2INN1jk@kralizec.zeta.org.au> bde@kralizec.zeta.org.au (Bruce Evans) writes:
> 
> >I previously gave an (untested) example of how to split a disk so that
> >the 'c' partition ended at cylinder 1023.  It would probably be better
> >to end it just above partition 'a', e.g.:
> 
> >386BSD partition: cylinders 400-1746:
> >	     'a' partition  400-598  (root)
> >	     'b' partition  600-799  (swap)
> >	     'c' partition  400-599  (label is on 400, bad144 stuff on 599)
> >	     'd' partition  0-1746   (whole disk)
> >	     'e' partition  600-1746 (usr)
> 
> >This is also untested.
> 
> This turns out not to work, due to a suite of bugs and one check.  This
> is what happens:
> 
> [description of bugs 1-5 deleted]
>
> new boot blocks:
> The new BIOS boot blocks think that the bad sector table is always at
> the end of the disk (bug 6).
> 
> [bug 7 deleted]
> 
> The inconsistency between bad144 and everything else can be avoided by
> making partition 'c' go to the end of the disk.  This is dangerous if
> the 386BSD partition doesn't go to the end of the disk, and it might
> force the last cylinder above 1023 unecessarily.
> 
> I've fixed bugs 1, 2, 3, 4, 5, 7 and 8.  I'm not sure what to do about
> the weak but sensible range checking in bad144.

How have you fixed bug 6?  If you put the bad sector table at the end
of the disk (i.e. in track 1746) then the BIOS boot blocks cannot read
it (track number too large).  It HAS to be readable by the boot sector
otherwise it cannot boot kernels which include bad (forwarded) sectors
(this happened to me :-( )

For the BIOS to be able to read the bad sector table it needs to be in
a reachable track so why not make all of the different things which
read or write it take it from the end of partition 'c' (as bad144
expected) and then make partition 'c' cover the same region as the the DOS
partition entry (isn't that what it is intended to do?)

> -- 
> Bruce Evans  bde@kralizec.zeta.org.au
--
Doug Rabson, IOC Ltd.	| Email:  dfr@ioc.co.uk
Phone: +44 81 528 9864	|
Fax:   +44 81 528 9878	|