Ubuntu and other Linux distributions make dual booting easy, once certain configuration issues are addressed.
Dual booting requires that space be made on the hard drive for both operating systems. Dual booting also installs a boot loader that will allow the end user to choose which system to boot from. As always, when performing any type of work on a computer, make a backup before doing this!
As I mentioned, Linux and Windows need space on a hard drive. When deciding how to address this, the end user can install a second hard drive and let each operating system have its own physical hard drive or a single hard drive can be partitioned.
Since most people will dual boot Linux on a laptop, adding a second hard drive is not an option. Partitions are logical divisions of space on a hard drive. When Windows or Linux is installed as the only operating system, they will usually create partitions that take up the whole hard drive. With this is mind, we can install Windows and choose to leave space for Linux, or we can install Linux and leave space for Windows. The point is that space is needed on the hard drive for each operating system. It is easier to allocate space for Linux or Windows during installation than after it.
SHRINKING WINDOWS OR LINUX
Linux can be installed on a hard drive already running Windows, but there is a catch: The Windows partition on the hard drive needs to be resized (shrunk down) to open up space for Linux.
Windows has a built in utility called disk management (diskmgmt.msc) that can be used to shrink the Windows partition. Disk Management makes resizing a Windows partition easy.
Open Disk Management. Once open, it will display all the available partitions on the computer. Simply right click on one partition (Usually the Disk 0, C: drive) and choose "Shrink Volume" from the drop down menu. A window will open asking you how much you wish to shrink the partition. Select the amount and click OK. You are done!
The amount of space that needs to be created by shrinking the partition varies with intended use. The base install of Linux requires about 4 GB of space. In reality, you should allocate at least 20 GB of space for the Linux installation. There is not a specified percentage, per se; it is really up to the end user as to how much to rob from their Windows partition for the Linux install.
There is also a Linux based utility called GPartd that will accomplish the same task.
GPartd is a free bootable Linux-based CD used specifically for partition management. It can be downloaded from gpartd.org. This utility will work with Linux, Windows and many other types of partitions. Once booted and running it will display all of the partitions on a hard drive and allow you to remove, resize and reorganize the partitions.
GPartd is easy to use. Select the partition that you wish to resize and then choose resize/move from the partition menu. Once the resize window opens, simply drag the arrows to the desired size and click on the resize/move button. That is it! The partition will be resized.
The advantage that Gpartd has over the Windows utility is that it can move partitions. The Windows utility will only allow the end user to shrink the partition. But what happens if there are partitions between the free spaces you want? Well, Gpartd will allow you to move them out of the way.
One more note about resizing partitions: Data can be lost when resizing the partition on the hard drive. Make sure you have a backup of your Windows machine before making any partition changes!
BOOT LOADER ISSUES
Another issue with dual booting involves the boot loader. A boot loader is a piece of software that tells the computer where to find the installed operating system and start it.
Boot loaders are installed by the operating system at the time of install. If we install Windows after Linux, Windows will overwrite the Linux boot loader. Linux, just like Windows, will overwrite the Windows boot loader during installation.
The Linux boot loader is preferred over the Windows boot loader because the Linux boot loader displays a menu upon booting that allows the end user to choose which operating system to load. The Linux install process will detect the Windows partition and automatically add the Windows operating system as a boot option in the menu. Windows will not detect Linux at install, nor will it install a menu option for booting into Linux. We can see that the best (and easiest) way to fix the boot loader problem is to load Linux after Windows.
Dual booting is a great way to utilize Linux and Windows without the need for additional hardware.