Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Jun 95 14:50:14 MDT
From:      terry@cs.weber.edu (Terry Lambert)
To:        hlew@genome.Stanford.EDU (Howard Lew)
Cc:        bugs@FreeBSD.org, terry@cs.weber.edu (Terry Lambert)
Subject:   Re: 2.05R panics on boot
Message-ID:  <9506142050.AA19501@cs.weber.edu>
In-Reply-To: <Pine.SUN.3.91.950614121446.11155A-100000@vegemite.Stanford.EDU> from "Howard Lew" at Jun 14, 95 12:22:17 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> > > Now only if the system would boot up with the boot manager.  What ever 
> > > happened to the boot manager that was used on the SNAPs?  That one 
> > > seemed to work be able to boot up even on this 850 WDC drive with Ontrack 
> > > DM installed.  Booteasy wasn't able to do it.  They were different 
> > > right?  or has something changed?
> > 
> > Boot DOS from the hard drive to get the DM stuff installed and subtracting
> > 64 from the sector number on all references.

[ SIZES IN THE FOLLOWING ARE NOT RELATIVE... ]

Without DM:

,---------.---------------.---------------.----------------
| DOS MBR | PARTITION ... | PARTITION ... | ...
`---------'---------------'---------------'----------------
^
|
A

With DM:

,--------.---------.---------------.---------------.-------
| DM MBR | DOS MBR | PARTITION ... | PARTITION ... | ...
`--------'---------'---------------'---------------'-------
         ^
	 |
	 A'

The DOS MBR:

,------.---------------------.-------------------.
| JUMP | DOS PARTITION TABLE | DOS MBR BOOT CODE |
`------'---------------------'-------------------'

The DM MBR:

.------.-------------------------.---------------.
| JUMP | FAKE DOS PARTIOTN TABLE | DM MAGIC CODE |
`------'-------------------------'---------------'


The PBR (partition boot record; second stage boot):

,-----------.-------------------------------
| IBMIO.SYS | ... REST OF THE PARTITION ...
`-----------'-------------------------------

> Do I subtract 64 from the sector number while in the FreeBSD install 
> program under disk partitioning or are you referring to a DOS utility to 
> do this?

OK, DM has a boot record it writes on the drives that's 63 or so sectors
long (depends on the version, etc.).

When this things load, instead of like a normal DOS MBR, going to the
partition table embedded in itself, finding the one marked active in
the partition table flags field, and loading the PBR and that booting
the OS on that partition, it cheats.

It loads itself in, loads up some crap as an INT 13 redirector, and does
geometry translation on you.  One of the the things it does is lie about
where the disk starts: it pretends the disk starts after itself.  THEN it
loads the DOS MBR and runs it.

Since it's lying about not being there, any request that somes in for a
sector 'x' will have the request changed to be 'x' + 63 (or 64 or whatever)
and any disk references will get the relative address instead of the
real address.


Now what is "OS-BS", "BootEasy", "LILO", the"OS/2 Boot Manager", etc. going
to do?

Well, they're supposed to replace the DOS MBR.

So if you boot off the hard drive to install them, then the BIOS sees A'
as "sector 0".  And if you install them under DOS on a DM disk, then they
will overwrite the DOS MBR.

Now what happens if you boot off a floppy (oh, say a DOS floppy) and do
the install?

Unless the know about DM, they overwrite the DM MBR instead, because since
you booted off the floppy, it didn't patch the INT 13 vecotr to hide itself.


Now you are screwed.

OK, now say you boot off a BSD floppy.

You are still screwed, because even if it had loaded the DM MBR and patched
INT 13, except for actually loading, the BSD code doesn't use the BIOS
at all.  Not that you could load the DM MBR anyway, if you boot off a
floppy.

Now BSD's new slice code knows about the DM MBR.  But the installation
of the MBR code does not.  And the installation doesn't use BIOS, so
like a raw floppy boot, it overwrites the DM MBR.

The fix is to make the "OS-BS" or other boot track installation in BSD
know about the DM MBR by recognizing it (it has ID crap so you can do
this).  OR YOU CAN INSTALL THE BOOT MANAGER AFTER BOOTING DOS OF THE
HARD DRIVE.


					Terry Lambert
					terry@cs.weber.edu
---
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?9506142050.AA19501>