Windows 8, Ubuntu Dual Boot On The ExoPC

Windows 8 Developer Preview on the ExoPC

I spent part of the weekend installing the Windows 8 Developer Preview on an ExoPC X86 tablet. The ExoPC already had three versions of Linux on it; Ubuntu 11.04, the MeeGo 1.2 tablet preview and WeTab, which is a third party disto based on MeeGo. I wanted to keep the other OSs if possible. Lots of guides to dual booting Windows and Linux claim that you need to install Windows first as it will take over you hard drive and obliterate any other installed OSs. I’m here to tell you that’s not true. Here’s how to safely install the Windows 8 Developer Preview alongside Ubuntu.

Download the 64 bit Win8 .iso from http://msdn.microsoft.com/en-us/windows/apps/br229516. I used a Windows 7 box with Microsoft’s Windows 7 USB/DVD download tool to create a bootable USB drive.

Before Windows 8 my ExoPC’s partitions looked like this

Partition 1 (200 MB primary) WeTab /boot
Partition 2 (primary) /linux swap (shared by WeTab, MeeGo and Ubuntu)
Partition 3 (10 GB primary) WeTab /
Partition 4 (extended) containing:

Partiton 5 (200 MB logical) MeeGo /boot
Partion 6 (10 GB logical) MeeGo root
Partition 7 (200 MB logical) Ubuntu /boot
Partion 8 (10 GB logical) Ubuntu root
Unallocated (27 GB)

 

I hoped to put Windows 8 into a logical partition using the 27 GB of unallocated space. It initially looked promising. Choosing the custom option in the Win8 installer displayed my partitions and seemed to give me the option to install to the unallocated space. But when I tried that I got the error “Setup was unable to create a system partition or locate an existing partition.” which I was afraid meant that Windows 8 could only be installed in a primary partition.

Fortunately for me, the Windows 8 installer can install into any partition including logical partitions. However the windows loader must be in a primary parttion. The loader is only about 70 MB. The rest of Windows can be in a logical partition. Also, and this is critical, the Win8 installer only supports installing into a partition if it can find another copy of Windows installed somewhere on the disk. What it looks for specifically is a primary NTFS or FAT partition that has the “active” flag set. This is what it calls the “system” partition. So you can trick the installer into thinking Windows is present by creating an NTFS primary partition and setting its Active flag

As all four of my primary/extended partition slots were allocated something had to go; either WeTab or the extended partition containing Ubuntu and MeeGo. I chose to nuke WeTab which is unfortunate as I’ve found it to be the best touch friendly Linux distro I’ve used to date. I’m hoping to be able to find a way to re-install WeTab in a logical partition.

You can do all the necessary partition manipulation from within the Win 8 installer. Here’s how:

Windows 8 Installer - Choose the Custom option

1. Start the Win8 installer and choose “Custom”.

Windows 8 Installer Choose Install Partition

2. If the primary partition you want to use isn’t already NTFS, highlight it and tap or click Drive Options (advanced). Otherwise skip to step 4

Windows 8 Advanced Drive Options

3.Tap delete to remove the non-NTFS partition, creating some unallocated space. With the unallocated space highlighted, tap New to create an NTFS partition in the unallocated space.

Diskpart running within the Windows 8 Installer

4. Press Shift-F10 from within the Win8 installer to launch a command window and type the following commands:

SELECT DISK 0
LIST PARTITION to display a partition list and verify the partition number that you want to use.
SELECT PARTITION <partition to use>
ACTIVE to set the partition’s Active flag.
Type EXIT twice to return to the installer

5. Now you should be able to install Win8 into the active partition if it’s large enough. The 64-bit version of Win8 requires 20 GB. If you don’t have a primary partition that’s big enough, the loader will let you pick any NTFS primary or logical partition to install to as long as you have a primary system partition for it to install the Windows loader to.

When the install finishes, reboot the tablet and it should boot directly into Win8 with no option to boot into your Linux installs. If you had Ubuntu installed as I did it’s easy get the GRUB bootloader back so that you can choose to boot Win8, Ubuntu and any other OSs you have. There are several ways to do this which are all documented at help.ubuntu.com. By far the easiest is with the Boot-Repair utility. You can either create a bootable Boot-Repair USB drive or CD or do as I did and use a copy of Ubuntu Live on a bootable USB to install and run Boot-Repair:

Boot Ubuntu Live. Launch a Terminal and type the following to install and run Boot-Repair:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update && sudo apt-get install -y boot-repair && boot-repair\

Ubuntu Boot Repair Utility

Then click the “Recommended repair” button to reinstall the Grub2 bootloader with options to launch Windows, Ubuntu and any other OSs you have on your hard disk.

Grub2 Boot Menu

Grub will label Windows 8 as “Windows Recovery Console” and MeeGo as “Other Linux distro”. If that bothers you it easily fixable by installing and running Grub-Customizer from within Ubuntu.

Windows 8 runs surprising well on the ExoPC, which uses a single core Atom CPU. The user interface is both attractive and usable on the touch-only tablet. I use Linux as my primary desktop OS and I’m hoping this release from Microsoft will inspire the open source communities to create more and better touch friendly tablet interfaces for mainstream Linux distros.

5 thoughts on “Windows 8, Ubuntu Dual Boot On The ExoPC

  1. Glad I stumbled upon this. I had an issue with installing to a logical partition, which had 40GB of space and previously contained Windows XP. WinXP used a 100MB primary partition for boot information, and I could not find any reason why I was getting an “Insufficient disk space to install windows 8” popup. Now, I realize that the 100MB was insufficient for the loader, and not my 40GB partition. I only post here because anyone not aware that Windows 8 can be installed to a logical partition might better be able to find this page. Thanks, I’m now happily running Arch Linux and Windows 8 in dual boot.

  2. Thanks for cool post. You can run all four OS’s by following the below steps.

    1.Remove the partition2 /dev/sda2 (swap) using gparted from Ubuntu.
    3.Create nfts partition with minimum of 20 GB or shrink other partitions to get more space.
    3.Update the /etc/fstab of WeTab with correct devices (Remove the swap partition line itself).
    4.For meego also you may need update /etc/fstab with correct device details.
    5.update the /boot/grub/grub.cfg with correct device and boot loading text.

    Here critical thing is having right /dev/ configured in /etc/fstab files for each of the OSs.

Comments are closed.