Disclaimer: This document is provided "as is" without warranty. Use at your own risk. In no event shall I be liable for any damage resulting from the use of this work. This is essentially the original product of the author, with minor formatting and editorial comments by this site owner.
On this page… (hide)
You can use either GRUB or LILO to dual-boot Windows 2000/Windows XP and Linux. Both functionally work fine, but from what I've read, GRUB requires less maintenance, as LILO requires you to reinstall the boot loader (by running /sbin/lilo) every time you rebuild the kernel or make changes to /etc/lilo.conf.
If This HOWTO does not apply: While you may not use Gentoo, this is their Guide to Bootloaders that describes how to set up the boot loader. It includes a bit on dual booting.
The location of the /boot partition on the hard drive is critical so that you don't get screwed by the infamous BIOS 1024 cylinder limit. The BIOS of older systems can't access data beyond cylinder 1024, which is ~8.5 GB. A simple way to avoid the BIOS 1024 limit is to create /boot within the first 1024 cylinders (~8.5 GB) of the hard drive. If you have multiple hard drives (disks), /boot must be on the same hard drive (probably the first hard drive) that has the Windows boot loader (NTLDR) on the MBR.
[I had no problem having the boot partition being beyond this limit--BenWilson?]
To non-destructively shrink the Windows partition, you can use the free software program fips (please note that fips does not currently support NTFS partitions). Another option is the excellent commercial product Partition Magic. It has an easy-to-use GUI. Unfortunately, the tool that comes with Red Hat 7.2, Disk Druid, does not have the ability to shrink existing partitions. Once you've shrunk the Windows partition, you can use Disk Druid during the Red Hat Installation to create all the partitions you need for Linux.
[What I did was create three partitions: an NTFS partition, an OSSwap (FAT32) partition, and a Linux partitionBenWilson?]
Following are the steps to get dual-boot working with GRUB; I figured out how to do this by looking at a similar procedure for LILO. I've verified that this works for Windows 2000 and Windows XP, and this should work on Windows NT (all 3 OSs use the same booting architecture).
If you are performing the Red Hat installation, for the "Boot Loader Installation" screen:
If you already have Linux installed:
Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda3 8665372 1639580 6585612 20% / /dev/hda2 46636 5959 38269 14% /boot /dev/hda6 513776 189504 324272 37% /osshare none 256624 0 256624 0% /dev/shm
From this output, we see that /boot is on /dev/hda2.
If your C: filesystem is NTFS (not FAT32), you must edit C:\boot.ini as a user with administrator-level privileges. To make C:\boot.ini writable, you can either :
For reference, here is a copy of my boot.ini file.
When I select Linux from the boot menu, I get a frozen "GRUB" (or an "L" in the case of LILO)
Make sure you created the linux.bin file correctly with the dd command. If you think you ran the command correctly, the problem may be that your /boot partition is beyond cylinder 1024 and your BIOS can't reach it. At system startup, the Windows boot loader lists the choices from boot.ini. When you select Linux, the boot loader then loads the 512-byte linux.bin file, and then BIOS tries to access the /boot partition to run GRUB. Some BIOS implementations can only address the first 1024 cylinders of a hard drive, which corresponds to ~8.5 GB. How do you fix this? Create your /boot partition before cylinder 1024; i.e. before ~8.5 GB.
If I select Linux from the boot menu, I get an error message that says "Windows XP could not load: The file hal.dll (windows/system32/) is missing or corrupt. Please reinstall.
This is usually caused by an error in the boot.ini file.
Copyright © 2002 Ed B. Park (:commentable:)
Copyright © 1997-2010 Benjamin C. Wilson · All Rights Reserved.