Installing Ubuntu 12.04 on a UEFI Computer

While it has gotten easier, the process of installing Ubuntu on a UEFI computer is still not fool-proof.  It helps if you know what UEFI is, and which partition is your UEFI System partition.

This guide is tailored specifically for the HP Omni 220 Quad, but the basic concepts should work on any UEFI computer.

Overview

The process is really quite simple.  Install Ubuntu as usual, just make sure the CD is booted in UEFI mode and the boot files go to the right place.

  1. Boot the Ubuntu 12.04 CD in UEFI Mode
  2. Install Ubuntu
  3. Boot into the new system

 

Boot the Ubuntu 12.04 CD in UEFI Mode

Make sure you select the UEFI DVD drive and not the ATAPI one. This will boot Ubuntu in a UEFI-aware mode.  Otherwise it will boot in BIOS mode and will not be able to install the boot files to the UEFI System partition.

Also, add “nomodeset” to the Linux kernel boot parameters.  Nomodeset is needed because Ubuntu has a hard time recognizing the built-in monitor.

 

On the HP Omni 220 Quad:

  1. Press “Esc” at startup to bring up the Startup Menu.
  2. Press “F9″ to select the Boot Menu.
  3. Select the DVD drive (Mine says UEFI: hp DVDWBD TS-LB23P).
  4. The Ubuntu CD will load the GRUB 2 bootloader.
  5. Highlight Install Ubuntu and press “e” to edit the boot parameters.
  6. Add “nomodeset” somewhere on the line.  (e.g. “linux /casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet nomodeset splash –”)
  7. Press “F10″ to boot.
Select nomodeset

At this point the CD/DVD drive will make some noise as the computer boots into the Ubuntu install environment.

 

Install Ubuntu

The most important thing here is to make sure the install program is aware of the UEFI System partition and knows to install the bootloader on the partition Ubuntu is being installed on.  Do not install the bootloader onto the UEFI System partition or onto the MBR.

  1. Select your language/keyboard and press “Install”. Try Ubuntu or Install
  2. Choose to install updates and 3rd party software (or not).  Select your options.
  3. Choose “Something Else” to select your partitions manually.  Select "Something Else"
  4. The partition manager will appear.
    1. Set your root partition (filesystem: ext4; mount point: /).
    2. Set your swap partition (type: swap).
    3. Set your UEFI System partition (filesystem: fat32; type: efi partition; mount point: /boot/efi).
      Do NOT format the UEFI System partition!!
      Ubuntu 12.04 Partition Manager
      Double-check that your UEFI System partition is recognized as an EFI partition by the partition manager. You may need to change the partition type.
    4. Set “device for bootloader installation” to your root partition.  This is where GRUB will be installed.
  5. Press “Install Now”.

The install process will begin.  This will take some time; a perfect opportunity to play some badminton with your friends.

The install process creates an “ubuntu” directory on the UEFI System partition.  Inside that directory a file called grubx64.efi bootstraps into GRUB (located on your linux root partition).

 

Caveats

You may already have had a UEFI boot manager installed (perhaps for an existing UEFI-aware OS).  After installing Ubuntu, your previous boot manager will no longer be the default one.  Instead, your computer will boot straight into GRUB by default.  On most UEFI computers, this can be changed by going into the setup menu at boot time and changing the boot device order.  I was able to choose whether Ubuntu or Windows was the default OS.

GRUB’s auto-detect feature didn’t work properly with my UEFI Windows 7 install.  I had to create an explicit entry for it.  Will post my config file when I get a chance.

When leaving Ubuntu and booting back into Windows, I have noticed some audio issues: the audio out jacks do not work.  This is easily remedied by shutting down rather than rebooting.  For some reason Ubuntu does not properly release the audio codec.  Shutting down the system solves this issue.


Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>