[CLUE-Talk] Question about FIPS

Tom Poindexter tpoindex at nyx.net
Wed Jan 24 17:30:08 MST 2001


On Wed, Jan 24, 2001 at 04:25:09PM -0700, Grant Johnson wrote:

> LBA 32 is unrelated to where you put it.  If you put it in the first block 
> of the bootable partition, it will boot only if a 3rd party boot loader 
> invokes it.
> 
> When the machine boots, it goes to the MBR.  If Windows is installed, and 
> LILO is not there, it boots Windows.  I assume that there is some Windows 
> related boot stuff there, as their FDISK program allows you to rebuild the 
> MBR to their liking.
> 

Not entirely correct.  If you mark /dev/hda2 as bootable via fdisk, install
Lilo with 'boot=/dev/hda2', have your Linux root partition in /dev/hda2,
the existing boot code in the DOS MBR will happily start the Lilo stage 1 boot
loader, and thus Lilo stage 2 which gives you the Lilo boot prompts and boot
the Linux kernel or DOS.

E.g., here's the partition table on yet another machine setup in this fashion:

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1       300   2409718+   b  Win95 FAT32
/dev/hda2   *       301       600   2409750   83  Linux
/dev/hda3           601       615    120487+  82  Linux swap
/dev/hda4           616       784   1357492+  83  Linux



> The only LBA 32 issue is whether the kernel whose image you are using can 
> be past cylinder 1023.  This applies to the kernel image, not LILO.
> 
> In the old one it could not.  In the new one, it can be.  The windows 
> partition must start below 1023 becuase of limitations of windows.  Either 
> way, there must be something in the MBR (either LILO or something like Boot 
> Magic or System Commander) to tell it what to load.  Otherwise, it goes 
> with what is in the MBR, which is pass the partition info on, and boot the 
> active partition.


I think you pinpointed the problem here.  The DOS MBR must not be able to
boot the superblock of the flagged bootable partition, when that partition
starts above 1024.  Thus, it appears that you'll need to install Lilo in the 
MBR in those cases.

I used to always install Lilo as the MBR (boot=/dev/hda) until I upgraded the
disk drive of an older (1993) system.  That machine's BIOS was
incapable of accessing past a 2gb limit.  The newer Maxtor 5.8gb drive came
with 'OnTrack', some BIOS-type software designed to overcome older BIOS
limitations.  It gets installed by, you guessed it, installing a custom
MBR, which then loaded some other sectors off the disk for the BIOS 
replacement code.  At that time, I had to switch to installing Lilo to
the superblock of the bootable partition (in my case, /dev/hda2, my
Linux root partition), otherwise I would be overwriting the OnTrack/EZ-Drive 
MBR code.  

See /usr/src/linux/driver/block/genhd.c & ide.c for EZ-DRIVE/OnTrack 
comments & work around code (Linux 2.2.x versions).

-- 
Tom Poindexter
tpoindex at nyx.net
http://www.nyx.net/~tpoindex/



More information about the clue-talk mailing list