2

Yes, I have read, many times, "Installing Ubuntu on a Pre-Installed Windows 8 (64-bit) System (UEFI Supported)," and I have read the "UEFI" piece with the subtitle "Installing Ubuntu Quickly and Easily via Trial and Error." I have learned much from these pieces, but I'm still too much of a newbie to make it all work.

I have an HP15 Notebook with Windows 8.1 (64 bit) pre-installed. The chip is Intel Pentium CPU N3520 @ 2.16 GHz. Ram is 4GB. I wish to keep Windows 8.1 and have Ubuntu 14.04 dual boot with it.

The steps I've taken:

  1. I changed the boot order in BIOS to enable booting to the USB.

  2. I have Ubuntu on a USB, and I have toured it on that device. When I tried to install Ubuntu on the HD, I did not get the option of installing it along with Windows.

  3. I turned off fast startup in Win8.

  4. I disalbed hibernation in Win8.

  5. In Win8 Disk Management I noticed that the partitions are these: 400 MB (Recovery Partition) 260 MB (EFI System Partition) 678.58 GB NTFS Windows (C:) 19.28 GB NTFS Recovery (D:) (OEM Partition)

  6. Shut down.

  7. In Win 8's Disk Management I created 300 GB unalloated partition by shrinking C:. The partition is GPT. The other partitions seem to be MS-DOS. Based on my understanding of the above articles, I leave UEFI enabled/installed, and I leave Secure Boot enabled.

  8. On this machine ESC F10 gets one into BIOS. (ESC F2 gets one into UEFI.)

8 Booted up in the USB, using the try ubuntu without installing.

  1. Set up internet connection.

  2. tried to install Ubuntu on HD. Did not get the option to install alongside Windows.

  3. At this point I guess I'm supposed to use the "something else" option, but unless it takes me through step-by-step, I'm afraid of screwing things up.

  4. Here is what the BIOS currently has: Legacy Support is disabled Secure Boot is enabled UEFI boot order is USB Diskette then OS Boot Manager, then other options

(Many years ago I did this with MEPIS and had no trouble (:-).)

Many thanks.

2
  • I think you'll have to choose "Something Else". In the partitioning screen that appears, can you see a partition marked EFI (the 260 MB partition)? If it shows up as an EFI partition, I think you're safe and can go ahead with the installation. Side note: You can't mix GPT and MSDOS partitions. The entire disk uses GPT, or it doesn't use GPT. In your case, it does.
    – muru
    Jul 9, 2014 at 2:00
  • Suggested partitions are here: askubuntu.com/questions/336439/… Generally Desktop systems do not need /boot as a separate partition. HPs also often need work arounds to boot: askubuntu.com/questions/486752/…
    – oldfred
    Jul 9, 2014 at 4:07

5 Answers 5

3

As of January 2015, the bios for UEFI in HP laptops (probably any HP computer) is broken. Every time the bios runs, it overwrites the boot sequence to make sure that Windows boots. As a temporary workaround, you can interrupt the boot sequence and choose to boot ubuntu (in my laptop, the sequence is Esc, then F9).

However, that is probably not a good long term solution to the problem. I also did not like the USB boot solution proposed above. I don't want to have my system on a USB drive. Fortunately, you can make it work. Use the dual boot instructions here and the HP fix/workaround below.

GreatEmerald writes the solution here, but I will copy so to have more references to this important solution. The below recipe worked for me, although I used bootmgf2.efi instead of bootmgfw.efi~.


There is some sort of a "recovery feature" or so that on every boot sets the very first UEFI load option to point to one of the two locations, in this order:

  • \EFI\Microsoft\Boot\bootmgfw.efi
  • \EFI\Boot\bootx64.efi

This option is displayed as "OS boot Manager" (for the first path) and something akin to "UEFI partition" for the second path, completely ignoring the actual name given to it (when you look at the EFI variables through efibootmgr, you can see that what is displayed as "OS boot Manager" actually is set to the name "Windows Boot Manager"; why anyone would do such renaming is beyond me). If you try to change the boot order so that this slot isn't the first, the UEFI will overwrite the BootOrder variable on next boot and reset it to point to "OS boot Manager" anyway.

By default, both of the paths above contain the same Microsoft bootloader (if you check the md5sum of both, you'll see they match).

So, until HP releases an updated UEFI that allows turning this "feature" off or rearranging boot options through the F10 UEFI setup, this is what you can do to get dual boot with the least amount of hackiness:

  1. In Windows, mount the UEFI partition (mountvol S: /S mounts it as the S: drive) and copy the file \EFI\Microsoft\Boot\bootmgfw.efi to use some other name (for example, I copied it to \EFI\Microsoft\Boot\bootmgfw.efi~, but you can change the name to anything else).

  2. In the Windows command prompt, update the Windows UEFI entry to point to the new name:

    bcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi~
    

    (adapt to your set name accordingly).

  3. Optionally, change the name of the Windows boot loader so that you would be certain that it points to the new file location:

    bcdedit /set {bootmgr} description "Fixed Windows path"
    
  4. Install the other OS. In my case the bootloader was installed into \EFI\opensuse\grubx64.efi.

  5. Delete the two files, \EFI\Microsoft\Boot\bootmgfw.efi and \EFI\Boot\bootx64.efi.

  6. Use efibootmgr to delete the "OS boot Manager" entry:

    sudo efibootmgr -b 0000 -B
    
  7. Set the new OS bootloader to be the default bootloader by using efibootmgr with the -o option. In my case, I had an entry called "opensuse" in slot Boot0001 and the updated path Windows entry in slot Boot0002, so I had to do sudo efibootmgr -o 0001,0002

  8. Update GRUB to point the Windows entry to your renamed file (you'll have to create a new file in /etc/grub.d and rerun grub-mkconfig).

And that's it, now the UEFI will boot GRUB by default (it won't regenerate the "OS boot Manager" entry since it won't be able to find either of the two hardcoded paths and will "fall back" to properly reading the BootOrder variable), and the F9 menu will still allow choosing to boot Windows directly.


So you don't have to struggle with the grub configuration, here is the windows entry that I put in my /etc/grub.d/40_custom file:

menuentry "HP / Microsoft Windows 8.1" {
   echo "Loading HP / Microsoft Windows 8.1"
   insmod part_gpt
   insmod fat
   insmod search_fs_uuid
   insmod chain
   search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 3C62-71F3
   chainloader /EFI/Microsoft/Boot/bootmgf2.efi
}

YOUR UUID WILL NOT BE 3C62-71F3. Use this command to find it:

grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgf2.efi

YOUR gpt partition and hints may be different. Use this commannd:

grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgf2.efi

To get your grub configuration edits compiled:

grub-mkconfig -o /boot/grub/grub.cfg
2

I have Ubuntu on a USB, and I have toured it on that device. When I tried to install Ubuntu on the HD, I did not get the option of installing it along with Windows.

The "Install Alongside" option is (almost?) always missing when doing an EFI-mode install of Ubuntu. You'll have to either use the "Something Else" option or completely wipe Windows from the computer. There are numerous descriptions of how to use the "Something Else" option, both on this site and elsewhere, such as:

In Win 8's Disk Management I created 300 GB unalloated partition by shrinking C:. The partition is GPT. The other partitions seem to be MS-DOS. Based on my understanding of the above articles, I leave UEFI enabled/installed, and I leave Secure Boot enabled.

You're confusing two things. The GUID Partition Table (GPT) is a data structure that describes the entire disk. On a GPT disk, every partition is a GPT partition -- but these partitions can belong to different OSes or be used for different purposes by a single OS, just like partitions on a Master Boot Record (MBR) disk.

The term "MS-DOS," applied to disk, can refer either to an entire disk that uses the MBR partition scheme or to a single partition that uses the FAT filesystem. Given your context, I suspect you mean the latter, although if you've got two physical disks, it could be that you've got one GPT and one MBR disk. A GPT disk can certainly hold FAT partitions, and in fact, one special FAT partition, known as the EFI System Partition (ESP), holds boot loaders that enable the computer to boot. If you need more help interpreting your disk layout, you must provide more details, such as a screen shot of a GUI partitioning tool or cut-and-pasted output showing your partitions from a text-mode tool like parted or gdisk.

1
2

An additional important point if you want both Windows and Ubuntu to be bootable through EFI:

When you select the Installation Type of "Something else" and then get the screen that allows you to do partitioning, select the EFI partition (e.g. /dev/sda1, not /dev/sda) for "Device for boot loader installation". This is allows GRUB to work together with EFI. At least in 14.04, this selection is not the default, so look at the partitions to find one with a Type of "efi".

1

I answer my own question above in the form of a newbie step-by-step guide for getting Ubuntu 14.04 and Windows 8.1 dual booting on an HP 15 Notebook sold in the US.

Thanks to all above who provided their own answers and follow-up questions to my own question and for putting up with my ignorance and nevertheless helping me along the way. Most of what follows merely applies your suggestions to this particular situation. [DISCLAIMER: Things always change. Your situation may differ for some reason. OR I might have made a mistake in remembering exactly what I did. Always back up your files before messing with the computer in ways not familiar to you. Know how to restore the computer before proceeding. See the User Manual in HP Support Assistant.]

  1. Assumption: You have an HP 15 Notebook with Windows 8.1 preloaded.

  2. In Win8.1 download the iso file of Ubuntu 14.04. Copy it to a USB stick or DVD [I used a USB stick, and the following directions reflect that. Adjust these directions if you are using a DVD or another source for Ubuntu.]

  3. Restart or power up the computer. Immediately press ESC f10. This gets you to the BIOS file. Use the arrow keys to select System across the top. Press Enter. This will give you a list of system settings. You will see that UEFI and Secure Boot are Enabled, and Legacy Support is disabled. Leave all that as is.

  4. In the UEFI Boot Order, use arrow keys to select USB diskette on Key/USB Hard Drive. With the f9 or f10 key [see bottom of screen] move that to the top of the list. OS boot manager should be second in the list. (Doing this allows you to boot with the USB stick and try Ubuntu.)

  5. Exit BIOS with changes saved.

  6. In Windows go to Control Panel -> Power Options -> Choose what the power button does. Here turn off fast startup.

  7. In a console, and with administrator rights, disable hibernate with this command: powercfg.exe -h off

  8. Shut down (not restart, etc.).

  9. Power on. In Windows, find Disk Management, which I think is through Control Panel. Since this was a brand new computer for me, it had a lot of space in the c: partition. I shrunk that by about half, leaving it free, unallocated space.

  10. Shutdown.

  11. Place the USB stick in and power on. You should be asked here if you want to install Ubuntu or try it without installing. I always selected the latter. You can install from the live-session of Ubuntu.

  12. Be sure to have your internet connection working.

  13. When you're ready, click on the Install Ubuntu 14.04 icon. If you're really lucky, you'll be given the option to install Ubuntu alongside Windows. I was not lucky, so here's what needed to be done.

  14. Choose "something else." Du courage!

  15. Select the empty partition you produced in Windows Disk Manager. Here, one by one, you will make a root partition (/), a home partition (/home), and a swap partition. For each you select a size, its name, and its mounting point. Root ad home are both primary; swap is logical. I did this in that order. Since my RAM is 64 GB, I made the swap partition that size. The root partition I made about 50 GB, and the rest I gave to /home. For file type I followed sage advice and remained with EXT4. When all that is done, click "Install Now."

  16. Shut down. Take the USB stick out. Power up, and what happened is that all I got was a direct boot into Windows. Fear not. Shut down. Power up again and immediately press ESC f9. That should bring up boot options. OS boot manager, ie Windows, comes first. Select Ubuntu, which is second, and the computer boots into Ubuntu.

  17. Done, unless you'd rather not have to do the ESC f9 business every time you want to boot Ubuntu. Then, I suggest you follow instructions provided by "oldfred" to the question at "Dual Boot Win8/Ubuntu Loads Only Win." I'm not enough of a non-newbie to be able to follow it, but installing rEFInd is tempting. Good luck.

1

I tried this on a HP laptop with Windows 10 (64 bit) pre-installed (UEFI supported) and it worked.

The ubuntu 16.04 installation process is standard.

After installing open terminal type

efibootmgr

If it is not installed, install it using

sudo apt-get install efibootmgr

The output will be somewhat like this

BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 0001,2001,2002,2004
Boot0001* Windows Boot Manager
Boot0002* ubuntu
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot3001* Internal Hard Disk or Solid State Disk
Boot3002* Internal Hard Disk or Solid State Disk

At the top of the text you will see that my current boot device is 0002.

The boot order is listed as 0001,2001,2002,2004

To change the boot order type

sudo efibootmgr –o 2,1

Now reboot the computer. A menu will appear with options for booting into Ubuntu and Windows 10.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .