27

Ok, so I'm such a newbie to Ubuntu and I bought a Windows 8 pre-installed laptop last month.

I updated to Windows 8.1 and then I thought about installing Ubuntu as a dual boot so I could mess around and learn more about it.

So I followed a Youtube tutorial ( http://www.youtube.com/watch?v=dJfTvkgLqfQ ) and I got my stuff working fine.

The first few times I booted I got the GRUB menu instead of my default HP Boot OS Manager, and I was able to select my OS.

So I went to sleep and the next day I turned on my computer and the GRUB menu did not show up. I tried several times and it didn't automatically show up.

In order for me to see the GRUB menu I had to turn on my PC and on start had to press ESC to pause startup and press F9 to get boot options. Then from there I had to pick from OS Boot, Ubuntu, Ubuntu (Yes there were two Ubuntus available) and a default EFI file thingy.

When I click the first Ubuntu I get the GRUB Menu (I was too scared to try the second in case I screwed my laptop up) and I can safely load Ubuntu from there and use it (although I do have to increase my brightness every time I load Ubuntu because it somehow reduces my brightness to complete darkness on boot)

So my problem here is why isn't my GRUB showing on boot, after it worked on the first day?

My laptop is a HP TouchSmart j-078CA.

EDIT 1: FYI I just switched to Ubuntu LiveCD to check my Installation and found out that one of my partition is flagged as msftres. Here is a screenshot of my GParted on a LiveCD: Gparted on LiveCD

4 Answers 4

26

First, turn off the Windows 8 Fast Startup feature, as described here. That feature causes filesystem corruption, which can in turn cause odd boot issues. There's a good chance that this issue caused your problem initially. Disabling Fast Startup might or might not cause GRUB to reappear the next time you reboot.

If that doesn't fix the problem, you should try re-registering GRUB with your firmware's NVRAM. The way to do this that's most reliable is to use bcdedit in Windows. Open an Administrator Command Prompt window and type:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

If you're booting with Secure Boot active, change grubx64.efi to shim.efi (or maybe it's shimx64.efi; in Linux, check the contents of /boot/efi/EFI/ubuntu to see what's there). Doing this in Windows is more reliable than other methods because some users have reported that some versions of Windows repeatedly re-register themselves as the default boot loader if the default is set outside of Windows. Although this is rare, it's consistent with what you're seeing, so using Windows for this task may be necessary.

An easier way to do it, but potentially less reliable in your case, is to use Boot Repair. This tool automatically fixes certain types of boot problems, and it's likely to work for you. The biggest risk is that if an overzealous Windows caused GRUB to become inaccessible to begin with, the Boot Repair change won't work.

If you continue to have problems, post back with details. (If necessary, edit your original post and comment on this one to alert me to the change.)

6
  • Hey Rod before i advance on your solution do you think the partition that is flagged as msftres has anything to do with GRUB not loading because i followed the instructions in the youtube tutorial that i posted above. If you want the exact spot in the video its: goo.gl/qnkxMZ. When i was installing Ubuntu 13.10 on my pre-installed Windows 8.1 it did not detect Windows pre-installed. So i had to follow the dude's instructions and got it working the first time. Appreciate the help. Nov 5, 2013 at 17:30
  • No, the "msftres flag" just identifies a partition that uses the Microsoft Basic Data type code. See my answer to this question for details.
    – Rod Smith
    Nov 5, 2013 at 17:39
  • Aiite thanks for the info man. So i did the bcdedit on Cmd Prompt and got a "The operation was completed successfully" but i dont understand how to "check the contents of /boot/efi/EFI/ubuntu to see what's there)." Can you please explain this further? Nov 5, 2013 at 23:55
  • Actually its cool i figured it out. I happen to have MiniTool Partition Editor so just used that to explore my EFI partition and this is wht i got... imgur.com/GMYpfAW Not sure wht this means so I'm hoping you someone can englighten me on what has happened. Thanks! Nov 6, 2013 at 0:07
  • 1
    HEY DUDE! Just wanna update that your solution paid off and it seems to be working. I did the command prompt bootmanager path change thing and then i saw a HP BIOS update so i did that but i still didnt get the GRUB screen so then i thought i might have messed up so i retried your solution and rebooted and VOILA! it worked, so i went into Ubuntu, rebooted and it worked again, then i went into Windows 8 and rebooted and it worked yet again. So hopefully i think i can conclusively say your solution fixed my problem and my problem is now not a problem since it has a solution.THANK YOU SO MUCH BRO Nov 6, 2013 at 1:29
7

If you are usinge Windows Power Shell, you have to use Quotemarks:

bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi
2

I have one piece of advice. I followed the first answer process, but GRUB still was not showing up.

I followed the Fast startup off and the bcedit command, but it doesn't work. I was ready to use Boot-Repair in a Linux live USB, booting from BIOS, and I noticed a feature in 'Boot Manager' options that still showed 'Fast Boot' enabled, even when Windows said it was not enabled.

I turned it off, rebooted and there it is, as fast as always the GRUB interface!

I hope it helps before someone tries to reinstall Ubuntu or use Boot-Repair.

Edit 1: The 'Boot Manager' tab is the first tab in my BIOS, there is a list of devices from where I can choose to boot (hard drive, CD, USB...) Above that there are two options 'Fast Boot' and another that I don't remember. I hope it clarifies the ambiguous context of my answer.

1
  • What “bootmanager options” are you talking about? Without that info your answer is rather ambiguous. Nov 7, 2014 at 22:52
0

Most motherboard vendors should let you reset the boot order with efibootmgr (which grub uses when it is installed in UEFI mode). Deactivate Windows Boot Manager. Boot into Ubuntu from either the original install or a live Ubuntu USB/DVD) and run efibootmgr. If you installed it in UEFI mode, you'll get some information and a boot sequence list. You'll notice Windows bootloader/Windows Boot Manager and Ubuntu somewhere in the list. It's likely that Windows will have a higher boot priority (Windows boot entry is above Ubuntu in the boot sequence).

There are also asterisks* beside some, if not all, of the entries, marking them as active.

Look at the 4-digit boot number next to the Windows entry and run:

sudo efibootmgr --bootnum #### --inactive

This will deactivate the Windows entry. Also make sure that the now deactivated Windows has higher priority if it doesn't already:

sudo efibootmgr --bootorder ####,$$$$,&&&&,%%%%

where #### is the Windows boot number.

If you reboot now, you'll boot to grub if the Ubuntu option is enabled with the highest priority.

Note that Windows doesn't seem to recognize that it's been deactivated, so this will not get reverted by booting into Windows or updating it.

Source: revised from this answer


If that doesn't work try to change the boot manager in the BIOS/UEFI settings. Enter the BIOS setup utility -> select System Configuration tab -> OS Boot Manager -> Ubuntu -> press the appropriate key (e.g. F10 Save and Exit) to save the changed settings and exit.

OS Boot Manager

Not the answer you're looking for? Browse other questions tagged or ask your own question.