[CentOS] Dual-boot with WinXP, CentOS already installed
David G. Miller
dave at davenjudy.org
Thu Apr 16 18:32:46 UTC 2009
"Sorin Srbu" <sorin.srbu at orgfarm.uu.se> wrote:
> Hi all,
> I'd like to deploy a solution with dual-booting systems where CentOS 5.3 is
> already installed and WinXP will be installed to a separate disk.
> I found
> and it seems straight forward enough, although the description is for Ubuntu.
> The problem as I see it, is that the how-to differs from how CentOS looks in
> /etc/grub.conf and the boot-loader in Ubuntu with respect to making grub work
> again after the Windows install.
> I found Tldp.org mentioning dual-boot plenty, but most or all articles listed
> are using lilo as a boot-loader, which seems a bit obsolete and besides I
> can't quite translate the instructions from lilo to grub. 8-/
> Basically, what would I need to change in the how-to from apcmag.com above??
> Thanks for any pointers.
As noted in other replies, Windows not not play well with anything
else. Your best bet would be to disable/remove/disconnect the drive
with CentOS and then do the Windows install to the other drive. Once
Windows is installed, you can reconnect the CentOS drive and then easily
edit grub.conf to boot Windows using the "chainloader" directive. This
approach will only work if there are no primary partitions on the CentOS
drive that Windows recognizes. Windows (just like DOS) assigns drive
letters to partitions in drive number order starting with the primary
partitions and then moving on to the extended partitions. The bottom
line is that you want the first Windows partition on the non-CentOS
drive to get assigned drive letter C: when Windows boots. As long as
Windows doesn't recognize the partition type (e.g., ext3), no drive
letter gets assigned.
The problem with suggestions to just install Windows and then either use
another boot loader or repair the grub installation is that you are
stuck doing that work through Windows. My experience has been that
Windows isn't as easy to work with for making changes to the boot loader
and any approach that overwrites the Windows boot loader may leave you
with Windows not being bootable. The approach I described above leaves
the Windows boot loader in place although you may need to edit
C:\boot.ini to make sure it can still find Windows when both disks are
Here is the grub.conf that I use on my laptop. The internal drive boots
to either CentOS or Windows while Fedora 10 and Ubuntu are on an
external USB drive.
# grub.conf generated by anaconda
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,2)
# kernel /vmlinuz-version ro root=/dev/hda6
# initrd /initrd-version.img
title CentOS (2.6.18-92.1.22.el5)
kernel /vmlinuz-2.6.18-92.1.22.el5 ro root=LABEL=/ rhgb
title CentOS (2.6.18-92.1.18.el5)
kernel /vmlinuz-2.6.18-92.1.18.el5 ro root=LABEL=/ rhgb
title Fedora (220.127.116.11-170.2.35.fc10.x86_64)
kernel /vmlinuz-18.104.22.168-170.2.35.fc10.x86_64 ro
root=UUID=232029fe-c524-47b4-a5d6-d45c0ce7e56b rhgb nomodeset
title Ubuntu (2.6.27-7 x86_64)
kernel /vmlinuz-2.6.27-7-generic ro root=LABEL=uSlash
My grub.conf points to Windows on a partition on the internal drive.
Yours would point to Windows on the "second" drive (probably hd1).
Likewise, your boot.ini will need to point to Windows with something like:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP"
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP"
Note the change -----^
I'm assuming your Windows disk would end up being /dev/hdb in a Linux
world. If your system is using SATA drives or the Windows drive would
be something other than /dev/hdb, you may need to make some adjustments
to what I have suggested.
Politics, n. Strife of interests masquerading as a contest of principles.
-- Ambrose Bierce
More information about the CentOS