  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.



