222 lines
11 KiB
Plaintext
222 lines
11 KiB
Plaintext
Linux+Win9x+Grub HOWTO
|
||
|
||
Joel Rosen
|
||
|
||
Revision History
|
||
Revision v1.0 2002-01-10 Revised by: jr
|
||
Initial release.
|
||
|
||
|
||
This HOWTO will tell you how to use the GRUB bootloader to turn your
|
||
computer into a Windows + Linux dual boot machine, without affecting your
|
||
current Linux installation.
|
||
|
||
-----------------------------------------------------------------------------
|
||
Table of Contents
|
||
1. Introduction
|
||
1.1. Why use this method?
|
||
1.2. Copyright and License
|
||
|
||
|
||
2. Requirements
|
||
2.1. What are the requirements?
|
||
|
||
|
||
3. Procedure
|
||
3.1. Creating the Windows partition
|
||
3.2. Installing GRUB
|
||
3.3. Installing Windows
|
||
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
1. Introduction
|
||
|
||
1.1. Why use this method?
|
||
|
||
I'm a big fan of things that aren't Microsoft, so when I got my new computer
|
||
I had it come with Linux preinstalled. It's a great desktop machine, but I've
|
||
been sorely missing my Windows games, and the GIMP just isn't cutting it. So
|
||
I finally gave in and decided to make the machine dual boot. When I looked
|
||
for instructions on how to accomplish this, all I found was directions on how
|
||
to install Linux if you already have Windows installed and how to boot with
|
||
Loadlin. Unfortunately, because Loadlin runs from under DOS, the Loadlin
|
||
method of making your system dual boot requires that you have Windows
|
||
installed on the first partition of your first hard drive, due to the fact
|
||
that Windows believes it is the center of the universe and all your other
|
||
operating systems should revolve around it. This is a problem if you already
|
||
have Linux on that partition and you don't want to wipe out your system to
|
||
install Windows.
|
||
|
||
This is where GNU GRUB, the GRand Unified Bootloader comes in. It differs
|
||
from bootloaders such as LILO in that it can lie to Windows and make Windows
|
||
believe that it's installed on the first partition even if it's not. So you
|
||
can keep your current Linux system where it is and install Windows on the
|
||
side.
|
||
-----------------------------------------------------------------------------
|
||
|
||
1.2. Copyright and License
|
||
|
||
Copyright (c) 2002 Joel Rosen. Permission is granted to copy, distribute
|
||
and/or modify this document under the terms of the GNU Free Documentation
|
||
License, Version 1.1 or any later version published by the Free Software
|
||
Foundation; with no Invariant Sections, with the no Front-Cover Texts, and
|
||
with no Back-Cover Texts. A copy of the license may be found [http://
|
||
www.gnu.org/copyleft/fdl.html] here.
|
||
-----------------------------------------------------------------------------
|
||
|
||
2. Requirements
|
||
|
||
2.1. What are the requirements?
|
||
|
||
You will need:
|
||
|
||
<EFBFBD><EFBFBD>*<2A>A computer with a working installation of Linux.
|
||
<EFBFBD><EFBFBD>*<2A>Enough free disk space for your new Windows partition.
|
||
<EFBFBD><EFBFBD>*<2A>A partition editor such as [http://www.gnu.org/software/parted/] GNU
|
||
Parted.
|
||
<EFBFBD><EFBFBD>*<2A>[http://www.gnu.org/software/grub/] GRUBrpm or source.
|
||
<EFBFBD><EFBFBD>*<2A>A Windows/DOS boot disk with CDROM support and a CD with the Windows 9x
|
||
install on it, or a bootable Windows 9x install CD.
|
||
<EFBFBD><EFBFBD>*<2A>(Recommended)A Linux boot disk.
|
||
|
||
-----------------------------------------------------------------------------
|
||
3. Procedure
|
||
|
||
3.1. Creating the Windows partition
|
||
|
||
If you already have a clear partition or disk for your Windows installation,
|
||
you can skip this section. Otherwise, you'll need to run a partition editor
|
||
to defragment your disk and create a new partition for Windows. I used [http:
|
||
//www.gnu.org/software/parted/] GNU Parted for my installation; sfdisk should
|
||
work as well. DO NOT use fdisk, it won't preserve your data. And note, this
|
||
process is not guaranteed, make sure to backup any important files before you
|
||
begin.
|
||
|
||
Here is how my partition table looked pre-install:
|
||
Device Start End System
|
||
|
||
/dev/hda1 1 3 Linux
|
||
/dev/hda2 4 1222 Extended
|
||
/dev/hda5 4 36 Linux swap
|
||
/dev/hda6 37 1222 Linux
|
||
|
||
/dev/hda1 is my /boot partition (you may or may not have a separate boot
|
||
partition for Linux), /dev/hda2 is an extended partition which contains two
|
||
logical drives, /dev/hda5 and /dev/hda6, which contain my Linux swap
|
||
partition and Linux installation partition.
|
||
|
||
As root, run your partition editor. Resize your Linux partition to however
|
||
small you decide to make it. (Make sure this size isn't smaller than the
|
||
amount of data on your disk.) The program will defragment for a good while
|
||
and then change the partition table. Resize the extended partition which
|
||
contains your Linux partition accordingly. You should now have enough unused
|
||
space on your disk in which to create a new primary Windows partition. Go
|
||
ahead and create the partition with a Win95 FAT32 (LBA) filesystem on it. Now
|
||
your partition table should look something like this:
|
||
Device Start End System
|
||
|
||
/dev/hda1 1 3 Linux
|
||
/dev/hda2 4 905 Extended
|
||
/dev/hda3 906 1222 Win95 FAT32 (LBA)
|
||
/dev/hda5 4 36 Linux swap
|
||
/dev/hda6 37 905 Linux
|
||
|
||
I strongly recommend that you run fdisk at this point and write down all of
|
||
your partition information on a piece of paper. If you make a mistake in your
|
||
installation, Windows will be all too happy to rewrite your partition table
|
||
to its liking, and you'll need to know what your partitions look like in case
|
||
of emergency.
|
||
-----------------------------------------------------------------------------
|
||
|
||
3.2. Installing GRUB
|
||
|
||
3.2.1. Installation
|
||
|
||
You should have either an RPM or source package of [http://www.gnu.org/
|
||
software/grub/] GRUB somewhere on your disk. Go through the appropriate
|
||
installation procedure for your system. GRUB should now be installed but not
|
||
loaded. As root run:
|
||
# /sbin/grub-install /dev/hda
|
||
|
||
This will load GRUB into the master boot record of your disk. Now you need to
|
||
edit /boot/grub/grub.conf to configure the GRUB boot menu:
|
||
-----------------------------------------------------------------------------
|
||
|
||
3.2.2. Editing grub.conf
|
||
|
||
default=0
|
||
timeout=10
|
||
splashimage=(hd0,0)/grub/splash.xpm.gz
|
||
title Red Hat Linux (2.4.7-10)
|
||
root (hd0,0)
|
||
kernel /vmlinuz-2.4.7-10 ro root=/dev/hda6
|
||
initrd /initrd-2.4.7-10.img
|
||
|
||
title Windows 98
|
||
map (hd0,0) (hd0,2)
|
||
map (hd0,2) (hd0,0)
|
||
rootnoverify (hd0,2)
|
||
chainloader +1
|
||
|
||
title DOS Boot Disk
|
||
map (hd0,0) (hd0,2)
|
||
map (hd0,2) (hd0,0)
|
||
chainloader (fd0)+1
|
||
|
||
Let's go through and see what this means.
|
||
|
||
"default=0" and "timeout=10" will cause Linux to boot in 10 seconds if you
|
||
don't touch anything. "splashimage" is self-explanatory and not very
|
||
important.
|
||
|
||
"title" denotes each boot setting and the text that follows is what will
|
||
appear in your menu at startup. "root" specifies which partition contains
|
||
your Linux kernel image (this may or may not be your actual root (/)
|
||
partition). So, "root (hd0,0)" tells GRUB that the kernel is on the first
|
||
partition of /dev/hda. You can see that GRUB has a funny numbering system,
|
||
0-3 for primary partitions and 4+ for logical partitions. The next line tells
|
||
GRUB just where to find your kernel and where your actual root partition with
|
||
your Linux system is. "initrd" tells where your init ramdisk image is
|
||
located. Note that these few lines will probably be somewhat different if you
|
||
don't have a separate /boot partition. Look at the GRUB info page if you need
|
||
more help.
|
||
|
||
The "map" lines under the Windows 98 section are essential for getting your
|
||
installation to work. These are the magical lines that trick Windows into
|
||
believing that it's installed on the first partition of the first disk. If
|
||
you don't map the Windows partition to (hd0,0), Windows will destroy your
|
||
partition table and you won't be able to boot anything.
|
||
|
||
"rootnoverify" tells GRUB to boot from the Windows partition, but not to
|
||
attempt to mount it, and "chainloader +1" tells GRUB to chain to Windows'
|
||
bootloader which will start Windows.
|
||
|
||
The "DOS boot disk" section is needed if you are going to boot from floppy
|
||
to begin the Windows install, but it will also come in handy after your
|
||
install if you ever want to use a DOS boot disk for whatever reason. If your
|
||
Windows install CD is bootable, you'll need to have a "Windows boot disk"
|
||
section which chainloads to whatever your CDROM device is called.
|
||
|
||
Now save grub.conf and exit your text editor. Unlike LILO, GRUB does not
|
||
require you to run any executable after you've modified the boot
|
||
configuration. Now, with your emergency Linux boot disk handy, try rebooting
|
||
your computer. When the system comes up you should see the GRUB menu with
|
||
your three boot options. Select Linux. Hopefully, Linux will boot as usual
|
||
and you'll have installed GRUB properly. If it doesn't, you thankfully have a
|
||
Linux boot disk so that you can boot into Linux and fix your grub.conf. Once
|
||
you've got GRUB successfully booting Linux, it's time to install Windows.
|
||
-----------------------------------------------------------------------------
|
||
|
||
3.3. Installing Windows
|
||
|
||
Remove all diskettes and CDs from your computer and reboot. DO NOT boot your
|
||
computer with the installation media already in the drive. If you do that,
|
||
your BIOS will just boot the Windows install directly and GRUB won't get a
|
||
chance to work its magic. When the GRUB menu comes up, insert your floppy or
|
||
CD and select the DOS boot disk or Windows install CD boot, depending on your
|
||
installation method. Windows install should see the partition you've made for
|
||
it on the C: drive. Go ahead and install Windows.
|
||
|
||
That's it. Your computer is now all set as a dual boot machine.
|