> mbr is the master boot record.  Its a small amount of space on an hd
> reserved for boot information.  Every time you choose "install grub/lilo to
> MBR, you are completely rewriting, not appending to it.

Just to be a little more clear:

The MBR is the "Master Boot Record". It is not a partition, and when
you partition your drive however you like and use up all the space,
the MBR is still there. It is 512 bytes at the very beginning of the
drive that contains the partition table for the drive and some code
that the computer runs as you start it. This code is responsible for
loading whatever OS you have installed.

If you install Windows, Windows will overwrite the OS loading code in
the MBR with code that loads Windows from whatever partition you
installed Windows on. This is why installations that dual-boot Windows
and Linux should install Windows first and Linux second - the Linux
install that places code in the MBR gives you the option of booting
Windows or Linux (this Linux boot code is either part of Grub or Lilo,
two popular Linux boot loaders).

The /boot partition is a different beast. In the old days the code in
the MBR could only jump so far into a drive to locate the Linux OS
kernel and other boot files, so they had to live near the start of the
drive. The easiest way to do this was to create a /boot partition,
keep the kernel and other files in there (you notice /boot has your
kernel and grub or lilo files), and keep that partition at the start
of the drive. The rest of the data could live anywhere on the drive,
so you made "/" (and whatever else) follow /boot.

Nowadays, the Grub and Lilo boot loaders don't have this restriction.
/boot can be anywhere on the drive, and because of that, it doesn't
need to be separate from /.

When you install multiple Linux distributions, each one should have
its own /boot partition because each one will be loading a different
kernel. So if you want to keep /boot separate from /, you need one of
each for every Linux install you place on the machine. I would
recommend just keeping /boot and / the same (when you format for an
install, just create "/", don't create "/boot", and decide if you want
to share /home or not).

The complicated part comes with booting. Each Linux install should ask
you if you want to place the boot loader (like Grub or Lilo) in the
MBR, in the partition, or not install one at all (you may need to be
in advanced mode for some of these options).

The partition option is similar to the MBR - each partition also has a
little reserved area of its own that can contain additional boot code
- and there is one per partition, instead of one at the start of the
drive. The computer doesn't automatically use the partition-specific
boot code, but the MBR, if it wants, can jump to the partition boot
code and let it do the booting. This is "chain loading".

There are a few ways to boot multiple Linux OS's on one machine. You
can either have one Linux distro install into the MBR, let the other
distros do nothing, and then edit the main Linux OS's Grub or Lilo
config to tell it there are Linux distributions on the other drives.
This can be tricky because if you are in a Linux OS that updates the
kernel you have to edit the primary OS's configuration (and if you are
running Lilo, you have to re-run it to update the MBR) so the boot
loader knows you have a new kernel in your secondary OS.

Another method is to let every Linux distro install Grub or Lilo to
the partition boot section (so they each get their own) and then let
one Linux distro install to the MBR. That one still needs the
configuration edited, but the edits should be simpler because you only
have to tell Grub or Lilo in the MBR to chain load the other
partitions and let the secondary Grub or Lilo for each distribution do
the heavy lifting. I prefer this method because each OS can update its
own kernel and you don't have to go off and configure the primary boot
loader each time. This is also how you can boot Windows - Windows, in
addition to the MBR, also writes partition-specific boot code, and
Grub can just chain load that if you select Windows from the Grub menu
at boot time.

I know this is a lot of information, but to do the more complicated
stuff like booting multiple OS's takes a little extra work :)

Read this for an example of the extreme:
http://www.justlinux.com/forum/showthread.php?t=143973

-Frank

-- 
------------------------------------------
Frank Wallingford
[email protected]
_______________________________________________
Mid-Hudson Valley Linux Users Group                  http://mhvlug.org
http://mhvlug.org/cgi-bin/mailman/listinfo/mhvlug
Upcoming Meetings (6pm - 8pm)                         MHVLS Auditorium
  Oct 7 - Glade - Linux GUIs made easy
  Nov 4 - Google Wave
  Dec 2 - MythTV
  Jan 6 - Git

Reply via email to