This tutorial offers a step-by-step guide on how to dual-boot Windows 8 and Ubuntu 13.10 on a single hard disk drive (HDD), with Ubuntu on a btrfs filesystem.

This dual-boot setup is on a system with Legacy BIOS, that is, non-UEFI and using an MBR disk partitioning scheme, which means that GPT is not involved. Because of this, it can also be used as a guide to dual-boot Windows 7 and Ubuntu 13.10.

GRUB 2, the boot loader used by Ubuntu 13.10, will be installed in the boot partition of Ubuntu and EasyBCD will be used to add an entry for Ubuntu in the Windows boot menu. The result is that the Windows boot manager will be the master boot manager, so that every time the computer is rebooted, you will see this ugly boot menu.
Windows 8 Boot manager dual-boot

To start, you either need a system running Windows 8 or Windows 7, an installation media of Ubuntu 13.10 – 32- or 64-bit. The steps involved are:

  1. Shrink the HDD to create free space for Ubuntu 13.10
  2. Install Ubuntu 13.10 on the recovered space
  3. Add an entry for Ubuntu on the Windows 8 or Windows 7 boot menu

1. Shrink the Windows C Drive: Launch the Windows partition manager. You should see a window that looks just like the one shown in the image below. Right-click on the C drive or a Windows partition that you would like to use. Just be sure that it is not the system partition.
Windows 8 partitions

Select Shrink Volume.
Windows 7 partition

This image shows the Window partition editor. You just need to specify by how much the editor should shrink the partition.
Shrink Windows 8 partition

For my test installation, I chose to allocate just 200 GB to Windows. The remaining 600 GB or so will be used to Ubuntu 13.10. Click Shrink.
Shrink Windows 7 partition

The result of that operation is shown in this image. The unallocated partition is what will be used to create the partitions for installing Ubuntu 13.10. You may now reboot the computer, but be sure to insert or connect the media that the installation image of Ubuntu 13.10 is on before rebooting.
Partitioned Windows 8 disk

2. Install Ubuntu 13.10: When the computer reboots, you may either boot to the Ubuntu 13.10 Live desktop, or start the installer without first making that customary stop at the Live desktop. Click until you get to the Installation type step. Be default, the installer will offer to partition the drive automatically. But that’s not what we want. We want to create partitions manually.
Ubuntu 13.10 partition methods

For that, the Something else option is want you need to select. Continue.
Ubuntu 13.10 something else option

That should open the Advanced Partitioning Tool’s window. You should see the free space recovered from Windows, as well as the Windows partitions. To start creating partitions, select the free space and click on the “+” button.
Ubuntu 13.10 advanced partitioning tool

That opens the installer’s partition editor. Because Ubuntu is going to be installed on a btrfs filesystem, at least three partitions are needed – one for /boot, another for Swap, and the last for the btrfs volume.
Ubuntu 13.10 partition editor

For the boot partition, assign it enough disk space that will take into account the potential for increase in disk usage. Typically, 150 MB to 300 MB should do. For this test installation, I allocated 300 MB to it. For file system, you could go with ext4 or ext2. Either one will do. Be sure to select /boot for Mount point, then click OK.
Ubuntu 13.10 create boot partition

Back to the main Advanced Partitioning Tool’s window, you should see the new partition that you just created. Select the remaining free space and click on the “+” button again to create the next partition. This step will have to be repeated for all the other partitions.
Ubuntu 13.10 create partition

For Swap, a disk space of 2 GB (2000 MB) should be enough. From the Use as menu, select swap area, then click OK.
Ubuntu 13.10 create swap partition

For the partition which will be formatted using btrfs, you can allocate a much disk space as you have available, From the Use as menu, select btrfs journaling file system, then select / as the mount point. OK.
Ubuntu 13.10 create btrfs root partition

Back again to this window, all the partitions you need to install Ubuntu 13.10 on a btrfs file system should be listed. Before clicking Install Now to begin package installation, you need to specify where GRUB, the boot loader should be installed. By default, the installer will want to install it in the Master Boot Record (MBR) of the HDD. But that’s not the goal. We want GRUB in the /boot partition. To make that happen, select the partition that matches the boot partition on your system from the Device for boot loader installation menu. For this test installation, it is /dev/sda5.
Ubuntu 13.10 partitions

You may now click Install Now. After the installation has completed successfully, the computer should reboot into Windows. Now, for the final step.
Ubuntu 13.10 install GRUB in boot partition

3. Add an entry for Ubuntu 13.10 in the Windows boot menu: To do that, you need to download a program called EasyBCD. It’s free for personal use. You may download it from here. Install it as you would install any other Windows application. Afterwards, launch it. This screen shot shows EasyBCD’s main interface. To add an entry for Ubuntu 13.10, click on the Add New Entry tab.
EasyBSD Windows 8

The click on the Linux/BSD tab. From the Type menu, select GRUB 2. That’s the version of GRUB used by Ubuntu 13.10. And from the Drive menu, select the partition that correspond to the boot partition. For this test installation, it is Partition 3 (Linux 285 MiB). Click on the Add Entry button. To preview the entries that wil appear on the Windows boot menu, click on the Edit Boot Menu button.
EasyBSD Windows 8 add Ubuntu

You should see a couple of entries just like the one in this screen shot. Exit EasyBCD, then reboot the computer. You should see that ugly boot menu you saw at the beginning of this tutorial. If you select Ubuntu 13.10 from the menu, you will be presented with another boot menu. This time, it is that of GRUB.
EasyBSD Windows 8 edit Ubuntu

If you don’t want to see this menu anytime you opt to boot into Ubuntu 13.10, edit /etc/default/grub, then change GRUB_TIMEOUT = 10 to GRUB_TIMEOUT = 0. Then type sudo update-grub to effect the change. That should do it.
GRUB boot menu dual-boot