GRUB2 – How to Update GRUB with Parameters on Live USB

12.10grub2live-usb

I have booted from a live USB ("Try Ubuntu"), that also has a persistent option set (I used LiLi to create one) to do some tests for this pcie hotplug issue I'm having.

I'm trying to test some boot paramaters (like in this question) by doing this

sudo nano /etc/default/grub
sudo update-grub

The problem is that that last command gives me this:

/usr/sbin/grub-probe: error: failed to get canonical path of /cow.

It looks like /cow is the file-system that is mounted on /, according to:

:~# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/cow             4056896 2840204   1007284  74% /
udev             1525912       4   1525908   1% /dev
tmpfs             613768     844    612924   1% /run
....

Is there a way for me to run update-grub?

Best Answer

You'll need to do a bit of remounting and remapping.

After booting the liveCD, we'll mount the Ubuntu partition to /mnt with:

sudo mount /dev/sd*# /mnt

where /dev/sd*# is updated to your Ubuntu partition.

If you have a separate /boot partition, we'll need to mount it in /mnt/boot as well:

sudo mount /dev/sd*# /mnt/boot

where /dev/sd*# is updated to your /boot partition.

This should mount it with enough access to get the canonical path if needed, but we'll likely not need this.

To finish up, just update grub with the correct root and target:

sudo grub-install --root-directory=/mnt /dev/sdX

where /dev/sdX is the disk(not the partition) where we want GRUB.