Ubuntu – Insmod error in grub: symbol not found:grub_realidt

bootdual-bootgrub2grubrescue

I have a dual boot PC with Windows 7 and Ubuntu. I upgraded from 12.04 to 12.10 and then to 13.04 and since then I have not been able to boot because the PC goes into grub rescue with the error "File not found".

I have tried the following steps:

set prefix=(hd0,msdos5)/usr/lib/grub/i386-pc
set root=(hd0,msdos5)
insmod linux

I get error:

symbol not found : 'grub_realidt'.

if I do insmod normal, I get error

symbol not found : 'grub_disk_dev_list'

I have two partitions containing linux file system: (hd0,msdos5) and (hd0,msdos6). They were mountpoints for / and /boot respectively.

I have searched for this error, and found some "solved" threads. But all of them are using Live USB to get in grub prompt. I don't have access to one, and was hoping to be able to solve the issue without a flash drive.

Please help…
Thanks in advance.

Best Answer

From Troubleshooting Preparation it should be possible to fix this from command line. But the commands I found are a bit different than you have in your question. So...

  • Do a

    ls (hd0,msdos5)/ 
    ls (hd0,msdos6)/
    
  • If you see grub then do a set prefix="(hd0,msdos5)/grub" where 5 needs to be changed to correct number.

  • If you see boot then do a

    set prefix="(hd0,msdos5)/boot/grub"
    set root="(hd0,msdos5)"
    

    where 5 needs to be changed to correct number.

  • After changing prefix you need to do a

    insmod normal
    normal
    

    and reboot.

Related Question