old-www/HOWTO/text/MultiOS-HOWTO

499 lines
18 KiB
Plaintext

Managing Multiple Operating Systems HOWTO
Robert W. Schultz
v0.4, 17 Feb 2000
This HOWTO covers the procedures for using removable hard disks to
install and manage multiple alternative operating systems while leav-
ing a single fixed disk to permanently house and protect the primary
operating system. It is very scalable and offers a good degree of pro-
tection to and a stable disk environment for the primary operating
system.
______________________________________________________________________
Table of Contents
1. Introduction
1.1 Copyright
1.2 New Versions of this HOWTO
1.3 Feedback
2. Purpose and goals:
3. Background:
4. System requirements:
5. How it works (a scenario):
6. The installation:
6.1 Installing the primary operating system
6.2 Installing alternative operating systems
6.3 Final BIOS and LILO configuration:
7. Cost and gotcha's:
7.1 Cost:
7.2 Gotcha's
______________________________________________________________________
1. Introduction
1.1. Copyright
Copyright (c) 2000 by Robert W. Schultz.
Please freely copy and distribute (sell or give away) this document in
any format. It's requested that corrections and/or comments be
forwarded to the document maintainer. You may create a derivative work
and distribute it provided that you:
1.Send your derivative work (in the most suitable format such as sgml)
to the LDP (Linux Documentation Project) or the like for posting on
the Internet. If not the LDP, then let the LDP know where it is
available.
2.License the derivative work with this same license or use GPL.
Include a copyright notice and at least a pointer to the license used.
3.Give due credit to previous authors and major contributors.
If you're considering making a derived work other than a translation,
it's requested that you discuss your plans with the current
maintainer.
1.2. New Versions of this HOWTO
New versions of the Managing Multiple Operating Systems HOWTO will be
available to browse and/or download at LDP mirror sites. For a list
of mirror sites see:
<http://metalab.unc.edu/LDP/mirrors.html>.
Various formats are available. If you only want to quickly check the
date of the latest version look at
<http://www.linuxdoc.org/HOWTO/MultiOS-HOWTO.html>
and compare it to this version: v0.4, 17 February 2000
1.3. Feedback
Please send any questions, comments, or suggestions to (Robert W.
Schultz). I am very willing to help others with problems directly
relating to this HOWTO and will entertain any suggestions for
changes/modifications and/or improvements. However, having set up my
system to my satisfaction, this HOWTO won't be significantly improved
without reader input.
2. Purpose and goals:
The purpose of this HOWTO is to describe a methodology for managing
multiple operating systems on a single computer system. It is
intended for Linux users who have a basic familiarity with both Linux
and LILO installations. Nothing here is terribly complex however,
considering the amount of time it takes to install some operating
systems it can be relatively time consuming.
It is different from other methods in that it doesn't require multiple
operating systems on the boot disk. Instead it uses a fixed internal
disk containing a single primary operating system and a selection of
removable disks with one or more operating systems installed on each
of them. If you absolutely have to have two, three, or four different
operating systems on a single disk and are trying to get them to
behave with each other, this HOWTO is not for you.
Its specific goals are:
* - A primary/operational disk that once configured and installed is
rarely changed. This includes not having to repartition or otherwise
modify the disk it resides on.
* - Easy selection of multiple alternative operating systems at boot
time without having to go through more than one or two menu
selections.
* - No need to modify the BIOS, LILO, or any other configuration to
access an O/S once it is installed.
* - Easy addition/removal of operating systems depending on
requirements at the moment.
* - Inexpensive and scalable to allow for an increasing number of
operating systems and versions as time goes on.
I think I succeeded admirably in the first three of these
requirements. You can form your own opinions on the last two.
3. Background:
Even though Linux is becoming much more user friendly and widely
accepted, most of us still need access to other operating systems. I
use Linux about 75% of the time but I still need access to Win 9x for
those few applications that I haven't found acceptable alternatives
for in Linux. My wife uses MS Office at work and wants to have access
to it at home. Other people want to have access to alternative O/S
just for fun, training, or to keep current in their job.
I tend to treat new O/S's as you would a game; I actually don't do
anything productive with them but installing and learning how to
control them is just as challenging and interesting to me as Quake or
SimCity. Further, being a Computer Scientist, it keeps me current on
evolving technology and has helped me solve a multitude of problems at
work. At any rate, for new Linux users, computer professionals, and
those just trying to migrate from one operating system to another, I
believe using multiple operating systems is the norm rather than the
exception.
4. System requirements:
BIOS - Any bios that allows automatic identification of disk drive
geometry and allows you to select the sequence of devices to boot from
should work. I successfully built systems based on both PhoenixBIOS
4.0 and AMI Plug and Play Flash BIOS.
DISKS - One fixed internal disk dedicated to Linux. (first disk) One
Removable drive enclosure, with any number of drives. (second disk)
Since a lot of this HOWTO has to do with disks, from now on I will
generally use the terms "first disk" and "second disk". The first
disk is the one initially accessed when the machine is turned on,
commonly known as the boot disk. It has LILO installed in the MBR and
is dedicated to a single operating system, specifically Linux. The
second disk is a removable disk that contains one or more alternative
operating systems which may or may not have a boot loader in the MBR
or elsewhere.
There are no other hardware/firmware requirements. Any other
requirements would be dictated by the specific O/S. For instance,
even though you could install it, Solaris 7 is not going to run well
on an old 90MHz machine! The configuration and methodology described
here should however work equally well regardless of the CPU speed or
other installed peripherals.
Operating Systems - I have tested this process with Linux (Redhat and
Suse), Solaris 7, BeOS, Win 98 and even MSDOS 6.22. I see no reason
why it wouldn't work with Win 95, O/S 2, or FreeBSD. I am not
familiar with Windows NT or 2000 so I don't know how they would react
to this kind of setup.
Boot loader - I used LILO on the first disk and BeOS bootman on the
second disks. I used LILO on the first disk because it was the only
boot loader that allowed me to select the MBR on the second disk as an
acceptable boot partition. Any relatively robust boot loader should
work on the second disk.
5. How it works (a scenario):
Prior to ignition, I insert a disk, preloaded with an operating system
in the removable drive. When I turn on the machine, I am presented at
the LILO prompt (by pressing <tab>) with "Linux" and "Disk2" as
options. Linux is the default and would automatically boot if I did
nothing. When selected, Disk2 either boots directly into the single
O/S stored on the second disk or presents me with a second boot menu
if there is more than one O/S on that disk. If I power down, replace
the second disk with another and power back up, I still get the
initial Linux/Disk 2 menu and, if I select Disk2, a new menu
appropriate to the newly inserted disk. Once installed, I never have
to modify the LILO configuration on the first disk, I never have to
change BIOS setting to boot from the second disk and I never have to
go through more than two menu selections to get my selected O/S up and
running.
6. The installation:
There are three distinct parts to the installation, first building the
primary O/S on its own dedicated drive. Second, building a second
disk with whatever alternative O/S you selected. Finally,
reconfiguring the BIOS and LILO to support both disks.
6.1. Installing the primary operating system
Installation of the primary/operational O/S is fairly straight
forward. Treat the system as if it were a single drive system
dedicated to Linux. Refer to the documentation that came with your
distribution or see <http://www.linuxdoc.org/HOWTO/Installation-
HOWTO.html> for details on installing Linux.
Because this is ultimately a multiple disk installation, there a few
steps that need to be taken to trick the install routines into
thinking that it is, during the installation process, a single disk
system.
First, Remove the removable Hard Drive and make sure the remaining
drive is identified in the BIOS as the secondary boot device (after
the floppy). The operating system install program should only see one
disk, the one you are going to install to. That way, there is no
question as to where it will be installed. Also, it will install
everything appropriate to a single disk system.
When asked, tell the install program to use the entire disk for your
operating system. I accepted the default RedHat partitioning and
installed the generic LILO on the MBR.
Once the installation is complete, shutdown and reboot to confirm that
your system works properly. At this point you should have a fully
functional machine that boots directly into Linux.
6.2. Installing alternative operating systems
Now that you have a fully functional system, you can move on to
building a second disk with your alternative operating systems.
Select an operating system or two for installation on the second disk.
I decided on, for no good reason, Windows 98 and BeOS for my initial
test case. I partitioned an 8GB drive into two 4GB primary partitions
and installed Windows 98 in the first partition and BeOS in the
second.
Do the same things with this install that you did with the first.
Disable the first disk in the BIOS so that this installer will not
even see it. This is very important. If you can physically remove or
disconnect the first disk, do it! This will protect your primary
system from any errors on your part or overly greedy operating systems
that want to take over all the disks they see during the second
installation. If at some time in the future you decide to create
another removable disk make sure and repeat this step.
Once this is done install your chosen operating systems as if you were
installing them on a single drive system.
If you are only installing one operating system on the second disk,
just plug in the installation disk and let it do its thing. Windows
95 or 98 or just about any other operating system, including a second
Linux should install just fine this way. Allow Windows 9x to write to
the MBR. If installing Linux, select MBR as the location to install
LILO.
I decided to install two operating systems on the second disk so that
I could confirm the functionality of cascading boot loaders.
I first installed Windows 98 because it automatically overwrites the
MBR and would have overwritten any boot loader code I eventually
placed there. Next, I installed BeOS in the second partition and ran
bootman, the BeOS boot loader. With it I built a boot menu for the
second disk and intentionally overwrote the Windows 98 MBR.
Bootman was not essential, I could have used any MBR based boot loader
but it was available and it works quite will.
Reboot frequently to make sure that everything works properly as a
single disk system. I rebooted after each O/S installation to make
sure it worked properly and also to make sure that the boot loader
menu worked properly.
6.3. Final BIOS and LILO configuration:
Next, reconfigure the BIOS so that it again recognizes the first disk
(physically reconnect it if you disconnected it earlier) as the boot
disk and so that it also recognizes the second disk. How to do this is
very system specific and dependent on your BIOS and whether you have a
SCSI/IDE or IDE/IDE setup. I haven't tried a SCSI/SCSI setup because
SCSI disks and removable frames are significantly more expensive than
IDE disks and frames. I wanted performance for my primary O/S but
could accept cheap on the other ones.
Make sure and set the second disk type to "Auto" or "Automatic". This
will force the BIOS to dynamically determine the disk type at boot
time. I have been able to successfully use an ancient 512MB disk, a
4GB, an 8GB, and even a 100MB IDE Zip disk as the second disk. All
recognized automatically by the BIOS.
Reboot the system and get back to Linux. At this point, even though
there are at least two operating systems installed, this LILO only
knows about the original Linux and should boot to it automatically.
Watch the boot process and you should see a message about
automatically identifying a disk. Once booted, check dmesg to make
sure Linux recognized the second disk.
Once this is done, you need to reconfigure LILO on the first disk to
make it aware of the second disk. Here are two different lilo.conf
files, one for a SCSI/IDE and another for an IDE/IDE system. Each has
some strengths and weaknesses...
# lilo.conf file for an internal SCSI disk and a removable disk
# configured as a master on the primary IDE connection
disk = /dev/sda # These four lines are necessary
bios = 0x80 # to get the SCSI disk re-mapped as
disk = /dev/hda # the primary drive even though it
bios = 0x81 # is selected in the BIOS as the
# boot device. This might be a BIOS
# specific problem.
# Without them you get the following errors from LILO:
#
# LILO version 21, Copyright 1992-1998 Werner Almesberger
#
# ading boot sector from /dev/sda
# Warning: /dev/sda is not on the first disk
# And LILO either hangs at LI or repeats endless "01 "'s across the screen
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.12-20smp
label=Linux
root=/dev/sda1
initrd=/boot/initrd-2.2.12-20smp.img
read-only
other = /dev/hda
# other = /dev/hda is the key element. Instead of redirecting lilo to
# a specific partition, it redirects it to the MBR on the second disk.
# that way, LILO doesn't have to know anything about the second disk and
# we can replace it with another because LILO always goes to the same place
# regardless of which specific disk is installed. LILO was the only boot
# loader I found that would do this.
label = Disk2
map-drive = 0x80
to = 0x81
map-drive = 0x81
to = 0x80
# The map-drive lines are necessary to make the second disk think it is
# actually the boot disk.
# lilo.conf file for a system with two IDE drives. Both are masters,
# /dev/hda on the primary connector and /dev/hdc on the secondary.
# /dev/hdb is a CDROM slave on the primary IDE connector.
# disk = /dev/hda # These lines are not necessary for the
# bios = 0x80 # IDE/IDE installation because the BIOS
# disk = /dev/hdc # already knows what order they are in
# bios = 0x81
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.5-15
label=linux
root=/dev/hda4
read-only
other = /dev/hdc
# other = /dev/hdc is again the key. This just redirects LILO to the
# MBR of the second disk. Whatever is there gets control.
label = Disk2
map-drive = 0x80
to = 0x81
map-drive = 0x81
to = 0x80
The /dev, boot, map and image entries are system specific and yours
will probably be different that mine. The entries in your initial
/etc/lilo.conf file should give you an accurate guide for your system.
I copied the "Linux" entry from the original install generated
lilo.conf file directly into the new lilo.conf. This should allow you
to boot into "Linux" and modify your lilo.conf even if the "Disk2"
entry fails totally.
Finally, run lilo -vvv to make sure it agrees with everything you are
trying to do.
7. Cost and gotcha's:
7.1. Cost:
I found a Frame and 1 drawer removable drive mount for $20.00. It is
the "SNT MOBILE RACK". Disks didn't cost me anything because I had
several old or small IDE drives around from upgrades etc. Even if you
have to buy them, 2GB IDE drives are cheap.
7.2. Gotcha's
1. Once you decide whether your removable drive is going to be a
master or slave, make sure and jumper it properly before securing it
in its case. If you forget this step it can take quit a while to
trace booting problems back to an improper jumper setting.
2. Make sure that O/S installation routines can ONLY see the drive
they are installing to. RedHat refused to let me install LILO to the
SCSI MBR if it could see the IDE drive. So, to install to an internal
SCSI drive, I had to physically remove the IDE. To install to the
IDE, I had to disable SCSI support in the BIOS.
3. If an O/S installation routine tells you it is going to repartition
ALL your drives and overwrite EVERYTHING believe it.
4. It is very easy to install an IDE cable backwards.
5. I only tested an IDE master/master set up. I am not sure how a
master/slave would work.
6. Installing the removable disk frame does require opening up the
computer case. If you are uncomfortable with this get a friend to
help.
7. If you set the removable disk to a specific disk type in the BIOS
it will work fine until you replace it with another disk of a
different type. Then you will get errors or warnings and the system
might not boot.
8. Plan everything in advance.
9. With a quick change to the BIOS, the second disk becomes your boot
disk. This means that you can have a fully functional O/S available
as your emergency/recovery disk.