Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Feb 1996 14:01:10 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        jeh@anubis.network.com (Jeff Henning)
Cc:        freebsd-questions@FreeBSD.ORG
Subject:   Re: Look familiar? --> "Unable to find operating system"
Message-ID:  <199602282101.OAA08887@phaeton.artisoft.com>
In-Reply-To: <9602271913.AA10654@anubis.network.com> from "Jeff Henning" at Feb 27, 96 01:13:09 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> Hackers and others,
> 
> Last night I completed what was supposedly a "successful
> installation of FreeBSD 2.1 on my 2nd SCSI disk.  I selected
> the option to create the boot manager (I made the boot floppy
> and installed from CD ROM as recommended in the doc).  When
> the installation was complete and I rebooted the machine
> (removing the boot floppy from the A: drive first) I got
> the message:
> 
> Operating system not found

Probably you had the BSD install put in the OS-BS (or other boot
selector) on the first drive, instead of installing it from DOS
(see other articles about this in the -questions list archive
and in the FAQ).


> For some reason I see the message "DOS space > 1 gig" before
> the system tries to boot but I don't think this is the real
> problem.  I'm also not exactly sure how to change this since
> I didn't see any obvious options in the auto-scsi menu.

========================================================================
The 1024 cylinder limit, in a nutshell
========================================================================

The BSD boot blocks use the INT 13 raw sector read interface in
order to read the partition table to look for the BSD partition
entry.  The BSD partition entry is located from the partition entry
by multiplying out the 24 bit C/H/S value to get the start sector
the the BSD partition.

The start sector of the BSD partition contains the BSD boot block
(loaded by the system MBR or the boot manager -- e.g. OS-BS) that
does the above, followed by a disklabel (a BSD-specific mechanism
for making logical partitions).

In the disklabel is the absolute sector offset of the 'a' slice and
its length (the 'a' slice is the default slice for the '/' partition,
which is the FS root).

The second stage boot can not read a disklabel after cylinder 1024.

The second stage boot can not read inode 2 in the file system in
slice 'a' is after cylinder 1024.

The second stage boot can not read the directory data block pointed
to by inode 2 and containing the directory entry for the file 'kernel'
if the directory data block (or *any* intermedia directory data blocks)
is past cylinder 1024.

The second stage boot can not read the inode for the 'kernel' file if
the inode in slice 'a' is after cylinder 1024.

The second stage boot can not read the disk blocks containing the
kernel image and associated with the inode pointed to by the 'kernel'
directory entry if any of the blocks which make up the image (located
in slice 'a') are located after cylinder 1024.

The Cylinder 1024 limitation is an inherent design flaw in the INT 13
raw sector read interface parameter passing mechanism, which can only
take C/H/S values as arguments.

Ther exists an alternative INT 13 interface that take absolute sector
offset as a 32 bit value instead.  This interface is (inaccurately)
called "LBA" (or Logical Block Address).

Most controllers do not support LBA.  Most LBA support is bia a
sector-relocating TSR that is loaded in place of the normal MBR and
subsequently loads the normal MBR, as provided by OnTrack DiskManager
6.x and 7.x products.

The FreeBSD second stage boot blocks use the old INT 13 interface,
since the can not depend on the new one existing, and there are space
limitations which preclude increasing the size of the second stage
boot to accomodate LBA probe and utilization code.


					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?199602282101.OAA08887>