Ubuntu – GRUB EFI loader cannot find its config file in /boot

bootgrub2system-installationuefi

I installed Ubuntu, but when I boot I go straight to Grub rescue command prompt (GNU GRUB version 2.00-19ubuntu2.1). I can get a Grub boot interface by typing:

set root=(hd0,5) 
set prefix=(hd0,5)/boot/grub 
insmod normal 
normal

And I can then boot into either Windows 8 or Ubuntu. But I really don't want to type that every time I reboot.

For reference: I have a new 2013 Asus Q501L. It had Window 8.0 preinstalled. I shrunk the Windows partition, leaving the other Windows partitions alone, including sda1 and recovery. I installed Ubuntu on the space I created from the shrunken Windows partition.

I have tried the following to fix this:

  1. Boot-recovery (both legacy mode and EFI mode as described here (That is, I get the WinEFI detected message in Boot Repair, but I've tried it both with and without activating the Windows efi inside Boot-Repair). Boot Repair says, when finished with non-efi approach: Please do not forget to make your BIOS boot on sda1/EFI/ubuntustudio/shimx64.efi file!. But in my BIOS, the only Ubuntu boot option is "ubuntu (PO: Toshiba MQ…75).

  2. The instructions here for reassociating grub with the boot
    partition

  3. The instructions
    (Stuck on GRUB Command Line)
    (note, no rep so limited to 2 links) for using the CHROOT method
  4. The instructions here
    to change the Grub record timeout.

In the Grub command line

I really am at a loss. Here is the output from sudo fdisk -l:

Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x5b98f280

Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1465149167   732574583+  ee  GPT
Partition 1 does not start on physical sector boundary.

Here is the result from df -Th:

Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda5      ext4       92G  6.2G   81G   8% /
none           tmpfs     4.0K     0  4.0K   0% /sys/fs/cgroup
udev           devtmpfs  2.8G  4.0K  2.8G   1% /dev
tmpfs          tmpfs     567M  1.1M  566M   1% /run
none           tmpfs     5.0M     0  5.0M   0% /run/lock
none           tmpfs     2.8G   76K  2.8G   1% /run/shm
none           tmpfs     100M   24K  100M   1% /run/user

Finally, here is the link to my latest boot-repair attempt: http://paste.ubuntu.com/6573706/

Please help! I don't want to customize my Ubuntu install until this is resolved, because I'm not sure I won't have to wipe everything.

Thank you.

UPDATE:
I installed rEFInd. It worked, but only if I boot from the default/generic variants. I still can't boot from the specific Ubuntu versions that Ubuntu tries to use, as those go straight to the Grub command line.

Best Answer

I can get a Grub boot interface by typing:

set root=(hd0,5) 
set prefix=(hd0,5)/boot/grub 
insmod normal 
normal

And I can then boot into either Windows 8 or Ubuntu. But I really don't want to type that every time I reboot.

That was pretty far already. In your UEFI setup you would have just needed to put that into a grub.cfg next to /EFI/ubuntustudio/grubx64.efi.

This is what the configuration file looks like that reads the actual grub.cfg containing all the kernels:

search.fs_uuid $paste_uuid_here root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
Related Question