mirror of https://github.com/tLDP/LDP
413 lines
18 KiB
Plaintext
413 lines
18 KiB
Plaintext
|
<!doctype linuxdoc system>
|
||
|
<article>
|
||
|
|
||
|
<title> Managing Multiple Operating Systems HOWTO
|
||
|
</title>
|
||
|
|
||
|
<author> Robert W. Schultz
|
||
|
</author>
|
||
|
|
||
|
<date> v0.4, 17 Feb 2000
|
||
|
</date>
|
||
|
|
||
|
<abstract>This HOWTO covers the procedures for using removable hard disks
|
||
|
to install and manage multiple alternative operating systems while leaving
|
||
|
a single fixed disk to permanently house and protect the primary operating
|
||
|
system. It is very scalable and offers a good degree of protection to
|
||
|
and a stable disk environment for the primary operating system.
|
||
|
</abstract>
|
||
|
|
||
|
<toc>
|
||
|
<sect>Introduction
|
||
|
<sect1> Copyright
|
||
|
<p>
|
||
|
Copyright (c) 2000 by Robert W. Schultz.
|
||
|
<!-- license.H begin -->
|
||
|
|
||
|
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.
|
||
|
|
||
|
<!-- copyright.H end -->
|
||
|
|
||
|
|
||
|
<sect1> New Versions of this HOWTO
|
||
|
<p> 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:
|
||
|
|
||
|
<url url="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
|
||
|
|
||
|
<url url="http://www.linuxdoc.org/HOWTO/MultiOS-HOWTO.html">
|
||
|
|
||
|
and compare it to this version: v0.4, 17 February 2000
|
||
|
|
||
|
<sect1>Feedback
|
||
|
<p> Please send any questions, comments, or suggestions to <tt><htmlurl
|
||
|
url="mailto:rwschul@smart.net"> (Robert W. Schultz)</tt>. 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.
|
||
|
|
||
|
<sect> Purpose and goals:
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>Its specific goals are:
|
||
|
|
||
|
<p>* - 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.
|
||
|
|
||
|
<p>* - Easy selection of multiple alternative operating systems at boot
|
||
|
time without having to go through more than one or two menu selections.
|
||
|
|
||
|
<p>* - No need to modify the BIOS, LILO, or any other configuration to
|
||
|
access an O/S once it is installed.
|
||
|
|
||
|
<p>* - Easy addition/removal of operating systems depending on
|
||
|
requirements at the moment.
|
||
|
|
||
|
<p>* - Inexpensive and scalable to allow for an increasing number of
|
||
|
operating systems and versions as time goes on.
|
||
|
|
||
|
<p>I think I succeeded admirably in the first three of these requirements.
|
||
|
You can form your own opinions on the last two.
|
||
|
|
||
|
<sect> Background: <p>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.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<sect> System requirements:
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>DISKS - One fixed internal disk dedicated to Linux. (first disk)
|
||
|
One Removable drive enclosure, with any number of drives. (second disk)
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<sect> How it works (a scenario):
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<sect> The installation:
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<sect1> Installing the primary operating system
|
||
|
|
||
|
<p>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
|
||
|
<url url="http://www.linuxdoc.org/HOWTO/Installation-HOWTO.html">
|
||
|
for details on installing Linux.
|
||
|
|
||
|
<p> 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.
|
||
|
|
||
|
<p> 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.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p> 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.
|
||
|
<sect1> Installing alternative operating systems
|
||
|
|
||
|
<p> Now that you have a fully functional system, you can move on to
|
||
|
building a second disk with your alternative operating systems.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>Once this is done install your chosen operating systems as if you
|
||
|
were installing them on a single drive system.
|
||
|
|
||
|
<p> 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.
|
||
|
|
||
|
<p> I decided to install two operating systems on the second disk so
|
||
|
that I could confirm the functionality of cascading boot loaders.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
|
||
|
<p>Bootman was not essential, I could have used any MBR based boot
|
||
|
loader but it was available and it works quite will.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<sect1> Final BIOS and LILO configuration:
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>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...
|
||
|
|
||
|
<verb>
|
||
|
# 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
|
||
|
</verb>
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>Finally, run lilo -vvv to make sure it agrees with everything you
|
||
|
are trying to do.
|
||
|
|
||
|
<sect> Cost and gotcha's:
|
||
|
|
||
|
<sect1> Cost:
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<sect1> Gotcha's
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>3. If an O/S installation routine tells you it is going to repartition
|
||
|
ALL your drives and overwrite EVERYTHING believe it.
|
||
|
|
||
|
<p>4. It is very easy to install an IDE cable backwards.
|
||
|
|
||
|
<p>5. I only tested an IDE master/master set up. I am not sure how a
|
||
|
master/slave would work.
|
||
|
|
||
|
<p>6. Installing the removable disk frame does require opening up the
|
||
|
computer case. If you are uncomfortable with this get a friend to help.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
<p>8. Plan everything in advance.
|
||
|
|
||
|
<p>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.
|
||
|
|
||
|
</article>
|
||
|
|
||
|
|