Updated: July 6, 2007
One of the major obstacles a new Linux user faces is the configuration of partitions. Windows and Linux use
different notation for hard disks and partitions, which makes this task a bit daunting. Then, the user must
know what partitions are and how they relate to one another. All in all, it can make a Linux newcomer hesitate
a bit, especially if he is very afraid of destroying an existing Windows installation, with all his favorite
documents.
Fortunately, things are much simpler than they appear at first sight.
In this article, I will try to explain how to configure a dual-boot system, running Windows XP and Kubuntu
Linux. Please note that although my choice focuses on two rather popular versions of operating systems, the
principle holds true for a wide range of versions and distributions with very small nuances. However, to be
able to take full advantage of this article, you will need to know some things:
- How to install Windows XP; See my step-by-step guide for further information.
- How to install Kubuntu Linux; see my step-by-step guide for further
information.
- How to use VMware Player or Server and install guest operating systems in them; by reading the
two articles above, you will have gained enough knowledge to attempt building and running your own virtual
machines, however you might want to refer to my article VMware Player - A great
friend, which explains the necessary procedures in detail.
I will install the two operating systems inside a single virtual machine. I will install Windows XP first, then
Kubuntu. I will not fully detail the installation procedures; instead I will only focus on the crucial matter
of partitioning and dual booting.
Getting ready
- Install VMware Player / Server first.
- Create the dual-boot virtual machine. Create the .vmx configuration file; you may use VMware Server or
EasyVMX! online virtual
machine creator. Next create two separate virtual hard disks; you may use VMware Server, EasyVMX! or QEMU emulator to create them. Personally, I find QEMU to be the most
convenient choice.
- Prepare your Windows XP and Kubuntu Linux installation disks; you may also use .iso files as mounted
CD-ROMs for the purpose of installation, although it will be more realistic if you use CDs.
Installation setup
My virtual computer has 256MB RAM and 2 hard disks 4GB each. The question is: how do I configure the two
operating systems on this machine?
Basic concepts
Imagine hard disk as an apartment. This apartment is used to store things in. Partitions are like rooms.
Although they belong to the same entity, they are in fact individual storage spaces. Partitions are distinguished
by different letters or names when booted in an operating system environment (you can read more in the guides
above). Windows uses alphabetic letters while Linux uses a combination of letters and numbers, based on several
parameters.
If you think of a hard disk as a linear storage space (i.e. one room after another in a line), partitions are
segments of its length from one end to another. The
first partition on any hard
disk is called the
primary partition. Whatever comes after the primary partition is
the
extended partition, which can be segmented into
logical
partitions. When you are booted into an operating system, the partition on which it resides becomes the
active partition.
By reading my step-by-step installation guides, you will have realized that I strongly favor
separating core system files from personal documents. In Linux, this is usually the default
configuration - the system (root) and the personal stuff (home) are written to two separate partitions. We will
also want to do this in Windows; install Windows XP on one partition and create a separate hard disk space
for documents.
Furthermore, separating Windows from Linux by installing them on different hard disks is also a very good idea.
This means that the chance of one operating system affecting the other is much smaller. This can be as simple as
a physical failure of the hard disk or deliberate tampering with partitions.
Windows will want to be installed on a primary partition, because it wants to be near the first sector of the
hard disk, the 1st sector (called Master Boot Record), where the boot information is written. Linux will want a
separate partition for its installation, either primary or logical. Windows needs to be installed first, because
whenever Windows is installed, it rewrites the 1st sector.
This means that a Linux system
already installed on the computer will not be able to boot the next time without repairing the boot
sector.
Therefore, the recommended setup for Windows & Linux on a system with two hard disks should be:
- Windows installed on the first hard disk, on the primary partition; one or more logical partitions can be
created for personal or other data.
- Linux installed on the second hard disk, preferably on the primary partition; the partitions will be
created during the Linux installation setup, although they can be made beforehand.
Windows XP partitioning
Following the above guidelines, I started with Windows XP. During the partitioning phase, I made two
partitions on the first hard disk, 2GB each - one for Windows and one for personal data. Just for fun, I also
partitioned the second hard disk, into 3GB and 1GB partitions.
I then installed Windows XP on the highlighted partition.
Kubuntu Linux partitioning
Now comes the supposedly tricky part. After booting off the CD (which is also a live CD, by the way) and
starting the installation, you will reach the partitioning stage, which scares so many people. What now?
Selecting the hard disk
As you can see, Kubuntu installer finds the two hard disks and asks us which one to choose. We could safely
select the second hard disk (hdb - hard disk b), ignoring the existing partitions. Remember, we want to leave the
first hard disk alone (hda).
Select
Manually edit partition table and click
Continue
>.
The image below may seem confusing, but it is a really very simple situation map:
Windows XP is installed on the first hard disk, on the first partition - hence the notation hda1. Please note
that Windows partition is active - this means it has an operating system on it.
The second partition on that hard disk is the extended partition, which can contain one or more logical
partitions. Indeed, the partition table tells us that - hda2 - extended. Within the extended partition, there is
a logical partition, which is currently unformatted and thus its type is unknown. It bears the hda5 symbol.
The reason for this jump from hda2 to hda5 is because a hard disk can contain no more than 4 primary partitions.
Logical partitions in the extended partitions will therefore begin at number 5.
The third partition is the tiny 8MB partition for system use (the File Allocation Table - FAT, the 0th sector).
Its type stands for free, meaning it has not been partitioned. This explains the hyphen in the partition name
(hda-1).
By looking above the table, you can see colored bars. The first one, marked in red, denotes the NTFS partition
containing Windows (note even the little Windows logo marking it). Yellow color shows how much of the space is
taken. The second partition has a pale gray border, which means it has no file system. The thick blue rectangle
denotes the extended partition. The last bit belongs to the FAT, marked in gray and without a border - meaning it
is unpartitioned.
All of the above belongs to the first hard disk, which we are not interested in.
Nevertheless, please note how friendly Kubuntu is. It marks everything in colors and even displays a little
Windows logo to keep you from doing harm.
To switch to the second hard disk, use the little drop-down button above the colored bars on the right side.
Currently it reads
/dev/hda. Switch to
/dev/hdb.
This is the second hard disk, where we want to install Linux. We can see the partitions we created earlier,
during the Windows installations.
Once again, please note the partition table and the color bars. There are no color borders, meaning both
partitions are unformatted. The thick blue rectangle marks the extended partition.
For Linux installation, we will require a swap partition of at least 256MB and a root partition of at least 2GB.
This means that the arbitrary partitioning we did earlier does not suit us. We will delete the existing
partitions and then create our own table, as explained in the Kubuntu installation guide.
Select the extended partition by highlighting it. The grayed-out buttons on the menu above the colored bars will
become active. Choose
Delete to destroy the extended partition.
As you can see, the previously partitioned but unformatted space is now free. Repeat this with the primary
partition (hdb1) so that all of the space is free.
Now, we will create our own setup, with swap, root (/) and home (/home). This is explained in great detail in the
installation guides.
Once you are satisfied with the partitioning, click
Continue > to proceed.
Our partitions need to be mounted. Again, we will follow the same principles as before.
To make our system truly dual-bootable, we need to mount our Windows partition and the Linux partitions. First,
we will mount hda1, where Windows resides.
Make sure you DO NOT reformat this
partition!
Then, we will mount the three linux partitions, namely hdb1, hdb2 and hdb3. We will also format them. Reformat
option stands for partitions that may have existed before and may have been formatted with some other file
system. For best results, you should reformat them. Each partition will be formatted according to the file system
you chose during their creation.
The information about these mount points will be given over to the boot loader, which will use it to prompt the
user about the choices during boot up.
It's time to complete the install.
Dual booting
After Kubuntu installs and you reboot, you will enter the boot screen. By default, Kubuntu uses the GRUB
boot loader. As you can see, you have the choice of booting Ubuntu (actually Kubuntu), in a number of modes, or
Microsoft Windows XP Professional.
Conclusion
And that's it. You now have a fully dual-bootable machine, which runs two operating system from two separate
hard disks. Furthermore, you have personal data stored on separate partitions, which keeps it immune from
destruction in case the operating systems become inaccessible.
As an afternote, bear in mind that by default Linux can read from an NTFS partition, but cannot write to one.
There are patches that overcome this limitation. Nevertheless, it is usually useful to create a FAT32 partition
on the system to use when booted in both Windows and Linux, for exchange of files between the two. Well, now it's
time you do this yourself!
Enjoy!