From owner-freebsd-questions Wed Feb 28 13:08:24 1996 Return-Path: owner-questions Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id NAA12211 for questions-outgoing; Wed, 28 Feb 1996 13:08:24 -0800 (PST) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id NAA12202 for ; Wed, 28 Feb 1996 13:08:21 -0800 (PST) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id OAA08887; Wed, 28 Feb 1996 14:01:10 -0700 From: Terry Lambert Message-Id: <199602282101.OAA08887@phaeton.artisoft.com> Subject: Re: Look familiar? --> "Unable to find operating system" To: jeh@anubis.network.com (Jeff Henning) Date: Wed, 28 Feb 1996 14:01:10 -0700 (MST) Cc: freebsd-questions@FreeBSD.ORG In-Reply-To: <9602271913.AA10654@anubis.network.com> from "Jeff Henning" at Feb 27, 96 01:13:09 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-questions@FreeBSD.ORG Precedence: bulk > 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.