14.04 Upgrade triggers grub-pc failure

My problem begins with an upgrade from Ubuntu 12.04 LTS to 14.02 LTS. As part of this I received several error messages about not being able to remove old kernels.

When first booting into 14.02, I checked everything was ok by running sudo apt-get autoremove, the same errors appeared.

Following a guide online, I ran the following:

sudo apt-get purge grub-common
sudo apt-get install grub-pc

The first operation succeeded, removing grub from my pc. The second operation failed with the following:

Creating config file /etc/default/grub with new version
Installing for i386-pc platform.
Installation finished. No error reported.
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-3.13.0-54-generic
Found initrd image: /boot/initrd.img-3.13.0-54-generic
Found linux image: /boot/vmlinuz-3.13.0-44-generic
Found initrd image: /boot/initrd.img-3.13.0-44-generic
Found linux image: /boot/vmlinuz-3.13.0-40-generic
Found initrd image: /boot/initrd.img-3.13.0-40-generic
Adding boot menu entry for EFI firmware configuration
cat: /video.lst: No such file or directory
/usr/sbin/grub-probe: error: failed to get canonical path of `'.
No path or device is specified.
Usage: grub-probe [OPTION...] [OPTION]... [PATH|DEVICE]
Try 'grub-probe --help' or 'grub-probe --usage' for more information.
dpkg: error processing package grub-pc (--configure):
 subprocess installed post-installation script returned error exit status 64
Errors were encountered while processing:
 grub-pc
E: Sub-process /usr/bin/dpkg returned an error code (1)

I have tried numerous fixes for this, most of which are documented here. I created a LiveCD before removing grub-common, so I have access to my old partition and can mount and chroot into it.

But when running update-grub the same error appears, I also cannot run dpkg --configure -a without this occurring.

I used boot-repair to get a boot summary for my machine, which is a 2 HDD rig with dual boot on the first drive (/dev/sda). With Windows on /dev/sda1 and my Ubuntu partition (also boot) on /dev/sda2.

Please help me fix this and I promise I won't touch my Ubuntu install ever again. :-)


I "elegantly solved" my problem by using the following:

sudo apt-get purge grub-pc grub-common
sudo rm -r /etc/grub.d/
sudo apt-get install grub-pc grub-common
sudo grub-install /dev/sda
sudo update-grub

Deleting the /etc/grub.d/ directory seemed to have gotten rid of whatever 12.04 files I had lurking, allowing 14.04 to get on with installing grub!

Although I would of course recommend making a backup of anything that you are about to delete.


these grub errors have been ongoing for many years and even now on 20.04 ... just run these

sudo apt-get update
sudo apt-get --fix-broken install -y
sudo apt-get -f install -y 
sudo  apt-get -o Dpkg::Options::="--force-confnew" -yy dist-upgrade -yq
sudo apt-get autoremove -yq
sudo apt-get autoclean -y

if output of above shows some flareup then just rerun all of above again and you will be good to go