Multi-Booting
To many multi-booting seems like killing a fly with a hand-grenade, but it is
actually a very common set-up. In fact, this kind of set-up is so
common that there are a number of different programs to do just
that, both freeware and commercial products.
One of the first steps is to create enough space on your hard disk
that you have room to install Linux. Alternatively, you could add a
second harddisk to your system and still be able to boot
Linux.
During the installation process of all of the distributions I have used,
if the disk you want to install onto is unpartitioned, the
installation program will allow you to partition
it. Some provide an
extra program do the partitioning, but they all provide you with the
standard Linux fdisk.
How you boot
your new system depends on a couple of things. The
first is what other operating systems you will be running.
If you are going to share your disk between Linux and Windows 95/98,
they cannot be used to boot
Linux, instead you need to run the
loadlin.exe program from a DOS
prompt. (You can also create a batch
script or a boot
startup menu entry.) If you are running Windows NT,
the NT bootloader can be used to boot
Linux. In either case, you can
use the Linux loads (lilo) to boot
either Windows 9x or NT.
Another consideration is where you are going to store your data. As
of this writing, some Linux distributions do not include a driver to read
the Windows NT Filesystem (NTFS). Although a drivers is available with some distributions
it is still very much in the alpha stage so I wouldn’t recommend it for
any real work. Since Windows NT cannot (yet) read the default Linux
filesystem (ext2), the only real common filesystem
is the File
Allocation Table (FAT). If you need to share your data with other
operating system as well, then the FAT is probably the only one that is
common to all of them. (My server is running SuSE Linux and makes
all of the data available to all of the operating systems I need via
SMB).
If you are planning to have a number of different operating systems,
then it might be worth the investment to get one of the commercial
boot managers. Some scan your partitions looking for systems to
boot. The operating systems they find are then presented to you in a menu when the system boots. The nice thing is that it doesn’t matter where Linux
resides, these boot
managers can find them. In addition, they
typically support all of the more common PC operating systems (as
well as few less common ones).
Getting Linux to boot
Windows is a fairly straight forward processes.
Typically, the installation process will recognize that you have
Windows on your system (or at least a DOS
partition) . When you reach
the point where you are
configuring the boot
options, you can configure the system to boot
DOS as well. Otherwise, you will need to configure lilo to boot
Windows (assuming you are using lilo as your boot
loader). How you make these changes after the system is installed depends on the
distribution of Linux you have. For example, SuSE uses the YAST
administration tool.
You can also edit lilo’s configuration file yourself (etc/lilo.conf).
This is not as tricky as it sounds. Each system you want to boot,
whether it is a specific Linux kernel
or Windows, is defined by a
specific section within lilo.conf. Linux kernels are defined by the
kernel image to be booted (using the image=) option and other
operating systems are defined using the other= option and the device
name to boot. A very simple entry might look like this:
other = /dev/hda1
label = DOS
table = /dev/hda
This says to boot
the device /dev/hda1. The label option is the name
used to access this particular configuration. The table option says
to pass the partition
information to the respective operating
system. Once you have added this this entry to lilo.conf. Simply run “lilo” to
activate the changes.
If you don’t want to invest the money to buy a commercial program to repartition the drive, you can
use the fips.exe program which is available from all the major Linux FTP sites as well as provided
on most distributions. One thing to keep in mind is the location of the Linux partition.
If your
drive is configured with more than 1024 cylinders and the Linux partition
starts above this, many
BIOSes will not be able to boot
your Linux system. This is not a limitation in Linux, but in the
BIOS, as you will encounter this same problem with other operating systems, as well.
Note also that some references refer to a limit of approximately 520 MB. However, how much space
you get before you reach the 1024 cylinder
limit, differs from drive to drive. Although you typically get to 520 MB on
IDE drives, EIDE and SCSI
give you much more space.