The manual installation onto a multi boot system is fairly similar to installation on a single boot system. A disk partition tool such as GParted or PartedMagic will be required.

In this tutorial we will demonstrate the manual installation of OpenELEC onto a single hard drive, multi boot system.

Combinations of operating systems can be numerous, but here we will focus on a multiboot system using Windows, Ubuntu and OpenELEC: a triple boot system. Just because we can.

If you want to build a triple boot system, it is best to install your OS'es in the following sequence:

  1. Windows XP / Vista / 7
  2. Ubuntu 12.04+
  3. OpenELEC

Here we will eventually use the GRUB2 bootloader installed by Ubuntu.

OpenELEC itself requires at least 2 partitions. You can add a third partition for swapmemory. If a partition for swapmemory is already present from the Ubuntu installation, OpenELEC will use that existing partition for swapping memory. A swap partition is only recommended for OpenELEC when using computers with less than 1GB internal memory.

Hopefully you have enough free diskspace remaining from partitioning your harddrive for Windows and Ubuntu, because now the 2 partitions for OpenELEC will be created.

Harddrives can contain upto 4 primairy partitions, after that logical partitions must be created inside an extended partition.

Bootable Linux partitions (inluding OpenELEC) can also be created as logical partitions.

Write down the linux drive letters (i.e. /dev/sda3, /dev/sdc2 etc.) that have been assigned to both partitions. You will need them later on when adding the OpenELEC entry in the Grub2 bootloader.

The OE_SYSTEM partition must be flagged as bootable. This option can be set by you disk partition tool.

Next, both operating system files, SYSTEM and KERNEL, must be placed into the OE_SYSTEM partition. Mount the OE_SYSTEM partition, and copy both files to it via a Terminal session.

sudo cp /<location_of_OE_files>/* /media/OE_SYSTEM

Adding the OpenELEC menu item to GRUB is done by editing the following file:

sudo gedit /etc/grub.d/40_custom

or

sudo nano /etc/grub.d/40_custom

An example:

 #!/bin/sh
 exec tail -n +3 $0
 # This file provides an easy way to add custom menu entries.  Simply type the
 # menu entries you want to add after this comment.  Be careful not to change
 # the 'exec tail' line above.
 #
 menuentry "OpenELEC" {
    search --set=root --label OE_SYSTEM --hint hd0,msdos3
    linux /KERNEL boot=LABEL=OE_SYSTEM disk=LABEL=OE_DATA quiet
 }
 menuentry "OpenELEC debugging" {
    search --set=root --label OE_SYSTEM --hint hd0,msdos3
    linux /KERNEL boot=LABEL=OE_SYSTEM disk=LABEL=OE_DATA debugging
 }

Please note the /dev/sda3 and /dev/sda4 devices correspond to the two OpenELEC partition device names that you created earlier in this tutorial. In the example, /dev/sda3 corresponds to the partition labelled OE_SYSTEM which KERNEL and SYSTEM have been copied to, and /dev/sda4 corresponds to the partition OE_DATA which was left empty.

Please note that GRUB2 differs from GRUB regarding the partitions schemes, as it starts enumerating partitions from 1 instead of 0. Within GRUB2, the notation set root=(hd0,3) corresponds to the third partition on the first drive, i.e. sda3. The two values shall match.

Now, we will finalize the grub menu addition(s):

sudo update-grub

If all went well, reboot and the OpenELEC entry will show up in the GRUB2 bootloader, and OpenELEC will be selectable.