My restless effort to promote a Linux operating system and encourage its usage among other "PC" users made me this time to tackle a core topic of this effort and that is dual boot Linux Operating System and MS Windows XP Pro. I really do not expect windows users to switch from MS Windows to the Linux from one day to another, but I rather expect a slower and gradual transition with less headaches and without productivity losses.
There are already plenty of excellent articles in regard to this topic. However, I do still see Linux forums flooded with simple basic questions on how to dual boot these two operating systems. I see users coming from a MS Windows environment completely lost when it comes to a UNIX File System Hierarchy Standard (FHS), partitioning using EXT3 file system and navigation with simple "cd" command. It is very hard for them to let go of an idea of C: and D: drives. In recent 2 or 3 years Linux operating systems and its installation has improved in such a manner that I do not see a problem for a NON-IT person to install its own fully functional and productive version of the LINUX on his "Designed for Microsoft Windows XP" notebook.
Despite my believe I have decided to write this Linux-Windows dual boot "howto" for new Linux enthusiasts. In fact, I have had a friend who has no IT background to helping me by following my steps in this tutorial and believe it or not, he could install his own dual booting system without any problems.
Be aware that we are not going to describe all installation steps for both Linux and Windows installations in this article, only those steps which are necessary to accomplish this task.
It is good time to describe a scenario which will be followed trough the whole article, and which you should use to help you think about your own requirements and expectations.
We will be using 42GB hard drive for both operating systems. The hard drive will be partitioned in a way that it will contain a separate partition for Windows XP and Linux installation. We have decided to dedicate a 10GB of space for each operating system. Remember that you can adjust this size according to your needs and your hard disk size.
Then we will create a partition with a SWAP file system, which is an absolute "must" for a Linux operating system to be functioning. Swap partition can be think of in MS windows terms like a "virtual memory".
All created partitions up to this point are called primary partitions. The limitation is that we can have a maximum of 4 primary partitions and what is more, unpartitioned disk space is not usable ! At this point, there is only one primary partition left for us. However, what if we need more than one partition to be created. In this case, we need to create an extended primary partition which will serve as a container for other logical partitions ( LPAR ). Fortunately for us an extended partition is created automatically once we create a logical partition. Our first logical partition in this scenario will be used for both systems as a shared drive. In MS Windows this partition will be accessible as a E:\ drive and Linux, will mount and make this partition available via /mnt/shared directory.
At the end, we will leave some free unpartitioned space for a further use. It was and I still believe this is a good administration practice to leave a free unpartitioned space for a troubleshooting and other emergencies at the end of the hard drive space. If you will need to use this space in a future all you need to do is to create an another logical partition and create a file system. At the moment, this space will NOT be accessible and this applies for both operating systems.
The figure below should help you to visualize the entire process:
For successful installation, we assume that you have an access to the following resources:
- Internet connection ( DHCP would be nice )
- Backed up all necessary data
- An Empty hard drive ready to format
- CD-ROM burner and empty CD-R/CD-RW media
- Official MS Windows Installation disk with product key
Ubuntu Linux Download
This step is very simple. All you need to do is to acquire an official Ubuntu Linux ISO image. This will be of course free of charge.
Burn Ubuntu Linux ISO image
Next step is to burn a Ubuntu Linux ISO image to an empty CD-R/CD-RW medium.
Bios Settings to boot from CD-ROM
In case that your PC is not set up to boot from CD-ROM as a default you need to access a BIOS utility to change these settings. This is required for both, Windows XP and Ubuntu Linux installations. To get to the BOIS, restart your PC and keep pressing a DEL key. DEL key is most commonly used but since there is a lot of different hardware, there is also a couple different keys. The other keys you may also try are: F2, F10 . Settings to boot from CD-ROM are different for each mother board. You may try to search for a keywords boot, boot sequence. If unsuccessful consult your official manual which came with your motherboard.
Windows XP PRO installation
Now that we have successfully completed all preparations steps we can move forward and begin with Windows XP installation. Windows XP installation must always go before a Linux Installation. The reason for this is that MS Windows and its creators completely ignore any other operating systems and the coexistence of both Linux and windows does not seem very attractive to them. Therefore, MS Windows will not recognize a linux operating system on the hard disk if the Linux was installed first. Use the Official Windows XP PRO disk to begin an installation.As it was already mentioned this tutorial will not cover every step during the Windows XP installation. However, we will only focus on the crucial steps which are necessary for Linux and Windows dual boot. In both cases, this will be only the part of the installation process where you will need to partition a free space on your hard drive.
Remove existing partitions
Before you can create partitions to follow this tutorial you might need to remove existing partitions on your disk. This is only of course if your disk had been used before and contain any partitions.
From the figure above our hard disk currently holds two partitions and no space for Linux and Windows coexisting scenario which we are trying to achieve. Windows installation wizard can help is in this situation by offering us a "D" key to delete any unnecessary partitions. The Key sequence to delete a partition should be as follows: "D" ( DELETE PARTITION ) -> ENTER -> "L" or "D" -> "L". Once you have removed all partitions, the information on your screen should be similar to the screen shot below:
Installation wizard does not show any partitions, and we have an entire hard disk free space available for us to play with.
Create a new partition
We need to create a partition in order to install MS Windows. This can be done by highlighting and "Unpartitioned disk space" and pressing a "C" key. This will prompt us to enter a size of the new partitions. To follow our scenario, we enter 10000MB which is an equivalent of 10GB: :[[Image:create_partition.png]] This is the only partition we need to create at this stage. We will leave rest of the unpartitioned disk space for linux installation and shared directory. :[[Image:create_partition1.png]] We choose newly created partition as a target partition for a Windows XP PRO installation and format it with NTFS file system.
This is the only partition we need to create at this stage. We will leave rest of the unpartitioned disk space for linux installation and shared directory.
We choose newly created partition as a target partition for a Windows XP PRO installation and format it with NTFS file system.
The other steps on how to install a windows operating system are beyond the scope of this tutorial.
Ubuntu Linux Installation
If you have followed previous steps you should have a MS Windows XP PRO installed on your PC. The size of your partition where your Windows XP resides may have a different size but what is important it this point that the windows installation files are on the first primary partition and the rest of the hard drive is left unpartitioned. Here is a summary of a key steps during the following Ubuntu Linux installation:
- set a mount point for first primary partition to /mnt/wind_C, this way you can get access to the windows installation files from the Linux OS
- create a second primary partition in size of 10GB which will be used for Ubuntu Linux installation and mounted on the root of the file system "/". This partition will be using an EXT3 file system.
- define a third primary partition with size if 1GB which will be used as a swap memory for A Linux operating system. This partition is an absolute "MUST" when it comes to any Linux. In windows terms, you can refer to this partition as a virtual memory, however in this case it is not a single file but entire partition.
- create an extended primary partition which will serve as a container for other logical partitions. Fortunately this step can be omitted because primary partition is created automatically once we create a new logical partition.
- create a logical partition in size of 20GB. This partition will use a FAT32 file system and will serve as a shared drive between both operating systems. MS Windows XP will recognize this partition as a E: drive and in Linux we will mount this partition into /mnt/shared directory.
Same as it was in case of Windows XP installation this manual will only cover the necessary steps for dual boot to function. The whole installation of the Linux operating system had been shirked to the simple 7 steps only where one step is just a summary. Our concern here is with step 4. Let's get started. Put your burned Ubuntu Linux installation disk into your CD-ROM drive and restart your PC ( you may also want to check your CD for defects) and start installation.
Manual disk preparation
This dialog window represents current partition layout on our hard drive. We can see that the firs primary partition is defined with size of 10GB. Ubuntu Linux installation dialog offers 3 options on how to partition our hard disk.
- Guided - resize: This would instruct a Ubuntu Linux installation wizard to create all partitions automatically
- Guided - use entire disk: This option will remove all current partitions and use entire hard disk space to install Ubuntu linux.
- Guided - use the largest continuous free space
- Manual : This option will allow us to have a full control of the entire partition creation process. Just because we are professionals, and we do not need any help a Manual option is our only choice:-)
- MANUAL -> FORWARD
Define a mount point for NTFS partition
First we need to define a mount point for the only partition which we already have and that is /dev/sda1 which holds Windows XP installation files:
- /DEV/SDA1 -> EDIT PARTITION
Set mount point path
All what needs to be done is to set a correct absolute path to the as a mount point. This way we will instruct Linux to mount our NTFS partition to /mnt/wind_C:
- MOUNT POINT -> /mnt/winc_C
- WARNING: Do NOT tick a formation partition radio button. This will completely remove your windows installation. You have been warned !
Create a second primary partition
At this stage, we are ready to create yet another primary partition which will be used for Ubuntu Linux installation. Use the installation wizard window to move on the free space and select new partition button:
- FREE SPACE -> NEW PARTITION
Define a attributes for a new partition
Choose a partition size, file system and a mount point for a new partition:
- PRIMARY -> 7000 -> BEGINNING -> EXT3 JOURNALING FILE SYSTEM -> / -> OK
Create a SWAP partition
This partition is an absolute compulsory when it comes to any Linux operating system. There are many ways on how to choose a correct swap partition size. The most common procedure is to make it twice as big as is a RAM size on your system. For example, if you have a 512 MB of RAM your would create 1024MB big swap partition.
- FREE SPACE -> NEW PARTITION
Define a attributes for a SWAP partition
Let's make a 1GB swap partition:
- PRIMARY -> BEGINNING -> SWAP AREA -> OK
Create a first logical partition
At this point, we are going to create a first logical partition with FAT32 file system. Purpose of this partition is to store and share data between both operating systems:
- FREE SPACE -> NEW PARTITION
Define a attributes for a new logical partition
Please note that you do not have to create a same partition size and mount point. Select the size according to your needs and hard disk space.By selecting a mount point to /mnt/shared the Linux will automatically mount this file system to a /mnt/shared directory.
- LOGICAL -> 20000 -> BEGINNING -> FAT32 file system -> /mnt/shared
This dialog window represents a partition summary. You should have a similar output.
Windows and Linux dual boot "boot menu"
If you followed above steps carefully by now you will have a fully functional dual boot installation of the Windows XP and Ubuntu Linux.