Dual Booting Linux and NT/2K/XP Using Windows MBR and boot.ini I started dual booting NT and Linux when the reference books I had said that Windows NT/2000/XP expected to use the Windows boot loader. (I understand that newer versions of grub and maybe even lilo CAN handle NT/2K/XP.) The following steps are based on material in the "Booting" chapter in O'Reilly's "Linux in a Nutshell"--AND they work! The following assumes that you are installing Linux into partition three on the second disk or, in Linux terms, hdb3. Obviously, modify as required. 1. When installing, two things are critical: a. Do NOT allow the installation program to write a boot manager which will overwrite the MBR of your boot disk. Depending on your distro you can choose 1) no boot manager (Red hat & Fedora), 2) write boot manager to fd0 (Mandrake), 3) write the boot manager to the partition you’re installing to, rather than to the mbr of the disk (Mepis), etc. b. Be sure to have the installation program create a boot floppy. 2. Using the boot floppy, boot into the just-installed Linux, open a terminal window, and su - to root. a) On occasions when creating a boot floppy failed, I have been able to continue, but it was a bit flaky. Basically, I had to boot into rescue mode from the installation CD and chroot to the mount point of the new Linux partition. 3. If you are using lilo: a. If /etc/lilo.conf exists, rename it--you may need it later. b. Create /etc/lilo.conf with more or less the following content: boot=/dev/hdb3 map=/boot/map root=/dev/hdb3 install=/boot/boot.b lba32 image=vmlinuz read-only Modify both hdb3 entries to match the partition you're installing Linux on. c. cd to /boot d. If there is not a "vmlinuz" entry as a symbolic link to the real vmlinuz, create one. e. Run lilo. This will install lilo on the Linux root partition. 4. If you are using grub: a. If /boot/grub/grub.conf exists, rename it--you may need it later. b. Create /boot/grub/grub.conf with content similar to the following. (Note: grub labels disks and partitions starting with zero.) It is not necessary to run grub. title Red Hat Linux (2.4.18-14) root (hd1,2) kernel /vmlinuz-2.4.18-14 ro root=LABEL=/ hdc=ide-scsi initrd /initrd-2.4.18-14.img 5. Run the dd comand to make a copy of the just created Linux boot sector. dd if=/dev/hdb3 of=/bootsect.lnx bs=512 count=1 Modify "hdb3" as necessary. Use any name you like instead of "bootsect.lnx" 6. Copy /bootsect.lnx to a DOS formatted floppy disk. umount /dev/fd0 mkdir /mnt/floppy mount -t msdos /dev/fd0 /mnt/floppy cp /bootsect.lnx /mnt/floppy umount /mnt/floppy 7. Boot into windows. 8. Copy bootsect.lnx from the floppy to the C: drive. 9. Make C:\boot.int editable (no system or read-only attributes). attrib -a -r c:\boot.ini Add a line similar to the following to "c:\boot.ini". c:\bootsect.lnx="My Linux Installation" The following is my "boot.ini". As you can see, my system is "a little different". (Note: Some lines may be folded.) [boot loader] timeout=10 default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Pro on 75 GB G Drive" /fastdetect c:\whitebox.lnx="WBEL: White Box Enterprise Linux" c:\fedora_s.lnx="Small Fedora Linux (Yarrow)" c:\mepis.lnx="Mepis Linux" c:\knoppix.lnx="Knoppix Linux" c:\fedora_b.lnx="Fedora Linux--Everything (Yarrow)" multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Pro on 15 GB F Drive" /fastdetect scsi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT4 Workstation on SCSI Drive (D)"