*BSD News Article 20252


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!metro!sequoia!ultima!kralizec.zeta.org.au!kralizec.zeta.org.au!not-for-mail
From: bde@kralizec.zeta.org.au (Bruce Evans)
Newsgroups: comp.os.386bsd.bugs
Subject: Re: bad144 problem?
Date: 1 Sep 1993 04:06:00 +1000
Organization: Kralizec Dialup Unix Sydney: +61-2-837-1183 V.32bis
Lines: 48
Message-ID: <2603u8INNlui@kralizec.zeta.org.au>
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> <DFR.93Aug26160534@rhino.ioc.co.uk>
NNTP-Posting-Host: kralizec.zeta.org.au

In <DFR.93Aug26160534@rhino.ioc.co.uk> dfr@rhino.ioc.co.uk (Doug Rabson) writes:

>In article <25bqo4INNg1m@kralizec.zeta.org.au> bde@kralizec.zeta.org.au (Bruce Evans) writes:
>>
>> 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 :-( )

The numbering isn't quite right - I had fixed the BIOS boot blocks.  Now
I've changed (broken) bad144 to allow sectors after the end of the C
partition but before the end of the disk (it still prints a warning) and
changed (fixed) it to print a warning for sectors before the start of the
C partition or in the bad sector table itself.

Now it is easy to arrange for the boot blocks to read the bad sector
table by keeping partition C below cylinder 1024.  The boot partition
has to be below cylinder 1024 for the same reasons, so ending the C
partition just after the boot partition usually works.

>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?)

Partition C is supposed to cover the same area as the BIOS partition
entry, but apart from boot stuff it can be above cylinder 1023.
Restricting the whole BIOS partition to below cylinder 1024 just to
ensure that the boot stuff is below cylinder 1024 is too much of a
restriction.
-- 
Bruce Evans  bde@kralizec.zeta.org.au