home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / unmaintained / mini / Win95+Win+Linux < prev    next >
Text File  |  1998-01-14  |  14KB  |  324 lines

  1. [ 15 January 1998
  2.   The Linux Win95+Win+Linux mini-HOWTO is not being maintained by 
  3.   the author any more.  If you are interested in maintaining the 
  4.   Win95+Win+Linux mini-HOWTO, please get in touch with me at 
  5.   <gregh@sunsite.unc.edu>. ]
  6.  
  7.                 Windows 95 + Windows 3.x + Linux Howto
  8.              Robert Goodwin <Robert.Goodwin@mcc.ac.uk>
  9.                             August 1996
  10.  
  11.   0. Introduction
  12.  
  13.   This document was originally written in Jan96. I have incorporated
  14.   various comments, information, and questions received since then.
  15.   This document is also avilable in Japanese; see the collection of
  16.   Japanese linux docs at http://epsenewsc.gee.kyoto-u.ac.jp/JF/JF.html
  17.  
  18.   1. Booting Multiple Operating Systems
  19.  
  20.   If you want to boot multiple operating systems (and you don't want
  21.   to have to boot them from floppy disk!), you need to use some
  22.   sort of BOOT MANAGER.
  23.  
  24.   Win95 doesn't really *have* a boot manager - it has boot options,
  25.   but in my book a "boot manager" can be configured to boot anything.
  26.  
  27.   Lilo can be configured to boot almost anything, as can the OS/2
  28.   boot manager and the Windows NT boot manager. Which of these you
  29.   use is really up to you; it depends what you want on your system.
  30.   If you use the OS/2 manager, for example, it "hides" the "other"
  31.   DOSsy partitions from you.
  32.  
  33.  
  34.   2. Other Places You Might Look
  35.  
  36.   If you just want Win95 and Linux, then you probably want the
  37.   Win95+Linux Howto. The latest version can be found at:
  38.  
  39.        http://www.in.net/~jkatz/win95/Linux-HOWTO.html
  40.  
  41.   Win95 and Linux can be installed on a single drive; the problems
  42.   covered in the rest of this document revolve around DOS not allowing
  43.   more than ONE primary DOS partition per drive.
  44.  
  45.   If you want to use the NT boot manager, take a look at 
  46.   http://www.bcpl.lib.md.us/~dbryan/directboot.html
  47.   To add Linux (or others, including OS/2), there's a nifty little
  48.   program that makes boot sector files for use with the NT loader.
  49.   You can find information about this at
  50.   http://ourworld.compuserve.com/homepages/gvollant/othertl.htm
  51.  
  52.   You might also investigate LOADLIN.EXE which allows you to "boot"
  53.   Linux by first booting into DOS.
  54.  
  55.  
  56.   3. Why this HOWTO?
  57.  
  58.   This document addresses the following issues:
  59.  
  60.   * How to get Win 3.x to live on the same machine as Win95 without
  61.     problems (and what those problems might otherwise be)
  62.   * How to avoid problems on a machine with Win95 which can also
  63.     remote boot DOS
  64.   * How to install Win95 with Linux without having to reinstall lilo
  65.     (with the tedious booting of Linux from floppy)
  66.  
  67.   Although the Win95 filesystem lives on top of the standard DOS FAT,
  68.   it does some pretty unpleasant things to it. Boot your Win95 machine
  69.   from a bootable DOS floppy and get Norton to check the disk (but
  70.   DON'T let it attempt any repairs or you'll mess up some "long"
  71.   filenames)
  72.  
  73.   I am currently required to support applications in the Win95
  74.   environment as well as under Win3.x (both run locally and network
  75.   booted). I developed the setup described in this document to allow me
  76.   to do all this with just one PC.
  77.  
  78.   Don't ask how a Unix person ended up in this position :-)
  79.  
  80.  
  81.   4. Requirements
  82.  
  83.   If you are prepared to tinker with the source to lilo (lilo 1.7
  84.   or later, I belive), it is possible to do all this with ONE
  85.   hard disk. This works by changing the contents of the partition
  86.   table as the system boots; if you don't feel confident about trying
  87.   this, then don't!
  88.  
  89.   Otherwise, you will need TWO hard disks. This is due to some
  90.   DOS/Windows limitations with respect to booting and allocation of
  91.   drive letters. Believe me, I tried to get it working with one.
  92.   (but I didn't want to mess with the lilo source)
  93.  
  94.  
  95.   5. What you will end up with
  96.  
  97.   A word on device names. I have seen systems which use /dev/hdc for
  98.   the 3rd IDE disk (first IDE disk on secondary controller) and
  99.   /dev/hdd for the fourth. I've also seen systems which use /dev/hd1a
  100.   and /dev/hd1b (giving such partitions as /dev/hd1a3 etc). My system
  101.   uses this second naming style, but I have changed to names to
  102.   /dev/hdc and /dev/hdd to minimise confusion.
  103.  
  104.   Here is a brief description of what I now have - watch those drive
  105.   letters because they change...
  106.  
  107.   If you use a secondary IDE controller, you may need to create the
  108.   /dev entries yourself (/dev/hdcd* and /dev/hdd*) This might be the
  109.   case if you add a second hard drive to a machine with one IDE disk
  110.   and an IDE CDROM already installed; your second hard disk would be
  111.   /dev/hdc. I have tried this arrangement with no problems.
  112.  
  113.   I have: /dev/hda  - first hard disk
  114.           /dev/hdb  - cd-rom drive
  115.           /dev/hdc  - second hard disk
  116.  
  117.   Option 1:
  118.     On powering up the machine, I can allow the boot ROM on the
  119.     ethernet card to remote boot DOS. The "C" drive is the first DOS
  120.     partition on the FIRST IDE disk (in my case /dev/hda1). The "D"
  121.     drive is the first DOS partition on the SECOND IDE disk (in my
  122.     case /dev/hdc1), and the "E" drive is the second DOS partition on
  123.     the SECOND IDE disk (/dev/hdc2). The CD-ROM becomes F:
  124.  
  125.   Option 2:
  126.     Allow lilo to boot the default system (Linux, naturally)
  127.  
  128.   Option 3:
  129.     Interrupt lilo and ask for an option I call DOS. This boots DOS
  130.     from /dev/hda1, and, as with option 1, the "C" drive is /dev/hda1
  131.     the "D" drive is /dev/hdc1 and the "E" drive is /dev/hdc2. The
  132.     CD-ROM becomes F:
  133.  
  134.   Option 4:
  135.     Interrupt lilo and ask for an option I call Win95. This boots
  136.     Win95 from the first DOS partition on the SECOND IDE drive (in
  137.     my case /dev/hdc1). Follow this carefully: the "C" drive is now
  138.     the first DOS partition on the SECOND IDE disk (/dev/hdc1),
  139.     the "D" drive is now the first DOS partition on the FIRST IDE
  140.     disk (/dev/hda1), and the "E" drive remains the second DOS
  141.     partition on the SECOND IDE disk (/dev/hdc2). The CD-ROM
  142.     becomes F:
  143.  
  144.   Notice that the C drive changes depending how you boot. This means
  145.   that when you install Win95, you install it to C:\WINDOWS, and when
  146.   you install Win3.x, you install it to C:\WINDOWS but this isn't the
  147.   same place :-)
  148.  
  149.   Also notice that the third DOS partition (which I use as a general
  150.   data drive) is E: whichever way you boot, and that the CD-ROM
  151.   stays constant too.
  152.  
  153.  
  154.   6. How to do it
  155.  
  156.   First of all, install Linux;  it does not matter which drive you
  157.   install it on; but since you are using two drives it makes sense to
  158.   create a swap partition on each.
  159.  
  160.   Create a primary DOS partition on the second disk. Unfortunately, the
  161.   DOS FDISK won't let you do this, so you must use the Linux fdisk to
  162.   create the partition, set the type (6 for DOS 16 BIT FAT > 32Mb), set
  163.   the partition as bootable, and CAREFULLY follow the advice on the man
  164.   page for fdisk. This describes how to persuade DOS to recognise a
  165.   partition created in this manner using the dd command to zero the
  166.   first 512 bytes of the partition. (Basically, you use
  167.   "dd if=/dev/zero of=/dev/XXXX bs=512 count=1" where XXXX is the
  168.   device but be VERY careful since this is a good way to trash a disk
  169.   - for example by putting /dev/hda instead of /dev/hda1!)
  170.  
  171.   Creating the primary DOS partition on the first hard disk can be done
  172.   with the DOS FDISK. Any other required DOS partitions can similarly
  173.   be created.
  174.  
  175.   Both of these primary partitions must be formatted as bootable DOS
  176.   partitions; use FORMAT C: /S and FORMAT D: /S having booted from a
  177.   floppy. In order to avoid confusion, give the partitions meaningful
  178.   volume labels!
  179.  
  180.   Edit /etc/lilo.conf to give you the option of booting from either
  181.   of the two primary DOS partitions. I have appended an example
  182.   to the end of this document. Note the use of the "loader" line in
  183.   this example file.  Which you choose to install as Win95 and which
  184.   as DOS/Win3.x is up to you; I used the second hard disk for Win95
  185.   since network booting of the machine then gives the normal DOS
  186.   drive as "C". Also (and usefully), installing Win95 on the second
  187.   hard disk avoids having to boot linux from a recovery disk and
  188.   re-install lilo (why this should be is explained below). Remember
  189.   to run lilo to install the options.
  190.  
  191.   If you are (sensibly) planning to install Win95 from CDROM, you
  192.   will need to include the relevant drivers on the Win95 partition
  193.   such that when you boot from it, the CDROM drive will be accessible.
  194.  
  195.   Now boot, using lilo, from the drive you wish to use for DOS/Win3.x
  196.   and install the rest of DOS and Win3.x - the Windows installation
  197.   should go to the C:\WINDOWS directory as per default.
  198.  
  199.   Once this is done, reboot the machine and, using lilo, boot from the
  200.   Win95 partition. Perform your Win95 installation. The installation
  201.   procedure may suggest D:\WINDOWS for installing Win95 because it
  202.   searches the machine for existing WINDOWS versions - DON'T accept
  203.   this - install Win95 to C:\WINDOWS.
  204.  
  205.   Now for the neat part! Win95 is a rather arrogant system - when you
  206.   install it, it assumes that it is the only operating system on the
  207.   machine and proceeds to write its own MBR (Master Boot Record) to
  208.   the hard disk. This is why you generally need to re-install lilo.
  209.   If you have installed Win95 to the second hard disk, you have done
  210.   something which the Microsoft(tm) programmers didn't consider.
  211.   On one machine where I performed this operation, Win95 wrote its
  212.   replacement MBR to the MBR of the SECOND hard disk. On another, I
  213.   never found any evidence of it at all. The practical upshot of this
  214.   is that the MBR which matters, that of the first hard disk, is
  215.   not disturbed. Thus when you reboot the machine, you will be greeted
  216.   by the friendly and familiar LILO prompt.
  217.  
  218.   Example Partition List:
  219.   /dev/hda1  *   DOS partition  (C: or D: depending upon boot)
  220.   /dev/hda2      Extended partition
  221.   /dev/hda5      /
  222.   /dev/hda6      swap
  223.   /dev/hda7      /home
  224.  
  225.   /dev/hdc1  *   Win95 partition  (C: or D: depending upon boot)
  226.   /dev/hdc2      DOS partition    (E: always)
  227.   /dev/hdc3      swap
  228.  
  229.   (Partitions with a * are set as bootable (or "active") by fdisk)
  230.  
  231.   Example lilo.conf:
  232.   # /etc/lilo.conf
  233.   install = /boot/boot.b
  234.   compact
  235.   delay = 20    # optional, for systems that boot very quickly
  236.   #prompt               # use instead of delay to force response to boot prompt
  237.   #vga = normal # force sane state
  238.   #ramdisk = 0  # paranoia setting
  239.   #root = current       # use "current" root
  240.   boot = /dev/hda
  241.   image = /boot/vmlinuz
  242.     read-only
  243.     label = linux
  244.   other = /dev/hdc1
  245.     label = win95
  246.     loader= /boot/any_d.b
  247.   other = /dev/hda1
  248.     table = /dev/hda
  249.     label = dos
  250.   image = /boot/vmlinuz.old
  251.     label = linux.old
  252.     optional
  253.     read-only
  254.  
  255.  
  256.  
  257.   7. Some Questions and Answers
  258.  
  259.   Q: Does this scheme work for SCSI disks?
  260.   A: I have been told that this works, but have not been able to try it
  261.      for myself
  262.  
  263.   Q: Does this scheme work if Linux is wholly on one disk, and DOS and 
  264.      Win 95 are partitions of the other?
  265.   A: No - the DOS and Win95 bits both have to be the primary "DOS"
  266.      partition of a disk. It is possible to get round this by
  267.      recompiling LILO
  268.  
  269.   Q: I have downloaded a Win95 FAQ which speaks of the ability to boot
  270.      between DOS and Win95. If I install Win3.11 in a different directory
  271.      from "windows" it says I can run Win95 and Win3.11 in harmony. This
  272.      is one partition.
  273.   A: Yes, this can be done. It may cause problems however. Win95 does
  274.      some nasty things to the FAT drive and some operations you perform
  275.      under your old DOS and old windows (3.x) can easily destroy the
  276.      long-filename information. For example, defragmenting the drive using
  277.      a DOS/Win3.x utility will do this. You are also introducing
  278.      difficulties for yourself when things don't work; you have to worry
  279.      about the INI files under each system *and* the win95 registry.
  280.  
  281.   Q: Does LBA matter?
  282.   A: Yes. Ugh!
  283.      BIOS's after approx 1994 support LBA to get around a limit somewhere
  284.      inside DOS which prevents DOS from being able to cope with cylinder
  285.      numbers > 1024. (This is covered in much greater detail in PC hardware
  286.      FAQs). LBA fiddles the disk geometry, multiplying the number of heads
  287.      by 2 or 4 (etc) in order to divide the aparent number of cylinders by
  288.      2 or 4 (etc) to a number < 1024. This works around this limit.
  289.      
  290.      Linux can handle cylinders > 1024 (provided that the partition from
  291.      which you boot is wholly below 1024 cylinders), so can handle large
  292.      (>504Mb) disks even on old machines (pre-1994 BIOS). It can also
  293.      handle large disks on BIOS's which do support LBA, whether or not
  294.      LBA is enabled.
  295.  
  296.      It is vital that ALL the OS's view each disk as having the same
  297.      geometry - this is because the numbers in the partition table are
  298.      "perceived" cylinder numbers, not the actual ones. Therefore, changing
  299.      the BIOS setting to activate LBA will invalidate the existing contents
  300.      of a disk.
  301.  
  302.      If your linux system does not "see" the "correct" geometry (that is,
  303.      the same that DOS "sees"), you will need to add a line to lilo.conf
  304.      append="hd=x,y,z"  where x,y,z represent the disk geometry (see the
  305.      relevant man pages).
  306.      
  307.   Q: My BIOS only holds information on two HDDs, not four. Does this
  308.      matter?
  309.   A: Maybe! Having 4 HDDs with old BIOS's under DOS required the use of 
  310.      driver software. Newer BIOS's hold information on 4 HDDs.
  311.  
  312.      Linux can happily use 4 HDDs even with most of these older BIOS's,
  313.      but if you put a DOS partition on disk 3 you will only be able to
  314.      access it via linux.
  315.  
  316.      This is relevant since many machines have an IDE drive, an IDE
  317.      CD-ROM and, if you want to implement this document, another IDE
  318.      drive too.
  319.  
  320.  
  321.  
  322.      If you have found this document useful, please let me know.
  323.  
  324.