Background: My board has UEFI. I had Windows 8 and Ubuntu 14.04 LTS installed on the same physical drive (windows partitions first). Windows used UEFI to boot while Ubuntu not. It means that in order to boot into Ubuntu I had to pick up BIOS boot menu and pick non-UEFI device with Ubuntu (UEFI respectively for Windows). This worked perfectly fine for me, Ubuntu grub knew nothing about Windows installation nor Windows about Ubuntu.
Situation: I accepted Windows 10 upgrade, which added some partition before my Ubuntu partitions. Windows is still booting fine with UEFI, but Ubuntu enters Grub rescue mode on booting:
error: no such partition.
Entering rescue mode...
grub rescue>
From this point, I managed to start Ubuntu manually by typing
set prefix=(hd0,gpt5)/boot/grub
set root=(hd0,gpt5)
insmod normal
normal
as (hd0,gpt5) is my /boot containing partition (this helped Windows 10 upgrade led to grub rescue)
Question: How to make this prefix/root change permanent? I followed this http://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd and tried to reinstall grub, but got the following:
sudo grub-install /dev/sda
Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
I also tried boot-repair, with separate /boot/efi partition unticked, but I am getting error saying 'GPT detected. Please create BIOS-Boot and try again)[...]'
Here's my bootinfo summary http://paste.ubuntu.com/12520209/
/dev/sdc is pendrive with LiveCD Ubuntu, it's temporarily mounted.
Is there a way to indicate GRUB2 to lookup ,gpt5 instead of gpt4, as indicated in bootinfo? I browsed askubuntu, but cases I found were related to UEFI mode for both systems and I would like to avoid setting up Ubuntu in UEFI mode.
set prefix=(hd0,gpt5)/boot/grub set root=(hd0,gpt5) insmod normal normal
as you mentioned above solved the problem for me. It then didn't show blocklist error. – kashish Sep 22 '15 at 11:59