Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Jan 1996 15:49:12 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        laufen@sol.med.ge.com (Derek Laufenberg  x7-4534)
Cc:        msmith@atrad.adelaide.edu.au, marino.ladavac@aut.alcatel.at, hackers@FreeBSD.ORG
Subject:   Re: HELP!!! THIS IS AN EMERGENCY (fwd)
Message-ID:  <199601022249.PAA12933@phaeton.artisoft.com>
In-Reply-To: <9601022132.AA28357@merak.med.ge.com> from "Derek Laufenberg  x7-4534" at Jan 2, 96 03:32:19 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> The "On Track" is installed in the boot sector of the disk (I think) and
> it makes it look like the disk has sectors before sector 0 (negitive sectors)
> which contains the Ontrack code.  Now the boot sector, where OSBS/Booteasy 
> lives is moved up a little way on the disk, but still seems to be at sector
> 0 or where ever it lives.

The OnTrack code is a 64 sector lump that is a TSR that redirects the
INT 13 interface to the LBA interface of EIDE controllers and does a
geometry translation to get there.

It then adds 64 to the sector of all INT 13 requests, and since INT 21
uses INT 13, BIOS calls.

Then it calls the MBR at the new logical "sector 0" as if the machine
were booting with translation in standard BIOS instead of the TSR.

It's basically for critically stupid (ie: IDE) controllers that lack
translation capability in their BIOS in order to make them cheap.  Oh
yeah, it makes them inexpensive, too.  8-).

So the "real" MBR uses translated BIOS locations in its partition
table to load the BSD boot loader, which in turn uses translated BIOS
locations to locate the disklabel, slice a, and load the kernel.

So your turning off LBA was probably unnecessary.


> When I select FreeBSD it boots and runs fine.  I assume the ON TRACK code
> is still being used for the IDE interface, but this doenst seem to be a 
> problem.  This system gets most of its real stuff over NFS so a small disk
> was used.  I was careful to get both Boot partitions under the 500M limit.

Right.  See above.

The 500M limit comes from the BSD inability to talk to the controller
using an LBA adressing mechanism.  The BSD *does* see the OnTrack and
do the 64 sector offsetting.

The kernel has to locate the disklabel and remount root, which means
it use the C/H/S value and the non-LBA interface (because it uses a
protected mode driver, the TSR doesn't do anything for it).



You should be *extremely* careful when booting a floppy and then using
an FDISK or whatever to manipulate the partition table.  In particular,
the old "fdisk/mbr after booting from a DOS floppy" will murder the
OnTrack boot code and render your data unusable unless you happen to
have one of the OnTrack 6.x/7.x disks to reinstall, and are prepared
to go hacking the partition table at the 65th sector after the reinstall.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



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