Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to install Ubuntu 12.10 for quite some time, and passing hurdles one by one. Now I am in a situation as follows.

I have got a PC and 10 GB HDD which will be totally dedicated to Ubuntu so no option of Wubi and dual boot.

I was trying to install from DVD, but it is getting stuck at "Out of frequency" error. So I had to adapt for USB boot option. But my PC is USB non bootable, so workaround is "Plop Boot Manager". So I am doing the installation procedure as follows:

  1. starting from a CD drive which is having plop installed.
  2. opting for for USB boot in plop options.
  3. booting begins from USB.
  4. monitor eventually gives "out of frequency" error
  5. press Shift+Alt+F1 to get the terminal.
  6. open the grub with sudo nano /etc/default/grub.
  7. do necessary changes.
  8. sudo update-grub.

Now here I am getting error as follows:

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

My system is

P4 3.06 GHz, 1 GB ram , 10 GB HDD without an OS, monitor CRT lg StudioWorks (7 years old). Mobo Mercury P4 266a NDMx (865 equivalent). The whole system is perfectly in working condition under XP, but it is USB non bootable, and all other devices working perfectly.

What should I do next?

share|improve this question
    
Does your computer have the Recommended Minimum System Requirements to run Ubuntu? I have had problems installing 12.04 to machines with less than 1GB RAM. – C.S.Cameron Feb 14 '13 at 5:49
    
Yes ,Now I have added my system specification to question. – ulkaNCST Feb 14 '13 at 7:56
    
askubuntu.com/questions/207663/… might be worth a try. – Rinzwind Feb 14 '13 at 7:59
4  
First mount your hard drive to some folder, say /mnt and then chroot to /mnt. – green Feb 18 '13 at 3:44
2  

After booting from the 14.04 live CD I was able to work around this problem by running update-grub chroot'ed to the grub partition. How you do that depends on what is on the grub partition. (Substitute /dev/sda1 in the below recipes with whatever partition you installed grub on.)

If Your Grub Partition Contains A Full OS Install

sudo mount /dev/sda1 /mnt
sudo chroot /mnt
sudo update-grub2

If Your Grub Partition Only Contains Boot Files

In my case the grub partition was a stand-alone boot partition with no system installed, so I had to bring in most of the system to the chroot environment first:

mkdir /mnt/chrootdir
mount /dev/sda1 /mnt/chrootdir
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do
    mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir
done
chroot /mnt/chrootdir
update-grub2  # inside chroot
share|improve this answer
1  
Attempting to run mount gives me the error:, NTFS signature is missing. which is odd, because it should be Ext4, not NTFS... – Cerin Apr 13 '15 at 3:01
    
@Cerin, I emphasize /dev/sda1 was the right partition for me, but evidently not for you, if that volume is NTFS. – Nathan Kidd Apr 13 '15 at 15:55
    
Your solution is confusing. Do you need to run the first part and the second from within the chroot of the first? Or do you throw away everything you did in the first part and only run the second part? Why do you mount both /dev/sda and /dev/sda1? – Cerin Apr 15 '15 at 1:18
    
/dev/sda was a typo, it should be /dev/sda1, sorry. I updated the info. Is it clearer now? – Nathan Kidd Apr 15 '15 at 16:13
    
Yes, thanks for the edit. – Cerin Apr 15 '15 at 20:36

Find your drive that's supposed to boot with

mount

Or

parted -l

Or

fdisk /dev/sda

And type p to list the partitions, look for type 83.

(If you've got Fedora you might have to use the commands "vgs" and "lvs" and if you've got mdraid you might have to "cat /proc/mdstat" or mdadm -A --scan or insmod raid1 or insmod raid5 and then mdadm -A --scan) and you will use /dev/md0 or /dev/mapper/my-vg instead of /dev/sda

then try mount it

mkdir /mnt
mount /dev/sda1 /mnt
cd /mnt
ls -l

Is this your drive? Cool!

grub-install --recheck --root-directory=/mnt /dev/sda 

(Or whichever /dev drive your root is, with it's mounted path)

grub-install --recheck --root-directory=/mnt /dev/sda -f

(Force it if it doesn't like your partitions.)

Now it should boot into grub, and you can use the grub commands to boot up, after rebooting and selecting the right boot drive from the BIOS Setup, or by pressing ESC or F12 depending on your BIOS and whether you are quick enough, then at the Grub prompt:

insmod linux
ls
root=(hd0,1)
linux /boot/vmlinuz root=/dev/sda1
initrd /boot/initrd
boot

Or, hopefully you've still got an intact grub.cfg file... or maybe this will work:

grub-mkconfig -o /mnt/boot/grub/grub.cfg
share|improve this answer

Revised solution based on code above

The solution from above will not work totally without problems because it mounts the boot partition into the / (root) of the file system. That makes grub complain that /boot does not exist, of course. This will fix that problem:

mkdir /mnt/chrootdir
mkdir /mnt/chrootdir/boot
mount /dev/sda1 /mnt/chrootdir/boot
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir ; done
chroot /mnt/chrootdir
update-grub2  # inside chroot

As you see i also removed the line breaks so that it is easier to execute for everyone.

Another (simpler) solution

If you keep having problems getting it to work you should look to copy the /boot partition onto the / (root) partition. For that start your system with the Ubuntu live boot dvd and open the terminal. Inside it type:

sudo su
fdisk -l

To find out which partitions you have. In my case sda1 is my /boot partition which is about 250MB large and an sda5 which is about 500GB. I use these values in the commands below:

mkdir /mnt/boot/
mount /dev/sda1 /mnt/boot/

mkdir /mnt/root/
mount /dev/sda5 /mnt/root/

cp -R /mnt/boot/ /mnt/root/boot/

Set the bootable flag for the data partition and remove it for the boot partition:

fdisk /dev/sda
b -> 1 (unset the bootable flag for the first partition)
b -> 5 (set the bootable flag for the fifth partition)
w -> write changes to the MBR

Your computer will now look inside the sda5 for the boot files. Time to do the chrooting again, this time with some required folders needed for grub and which are generated by your Ubuntu live disc already:

mkdir /mnt/chrootdir/
mkdir /mnt/chrootdir/dev/
mkdir /mnt/chrootdir/proc/
mkdir /mnt/chrootdir/sys/

mount /dev/sda5 /mnt/chrootdir/
mount --bind /dev/ /mnt/chrootdir/dev/
mount --bind /proc/ /mnt/chrootdir/proc/
mount --bind /sys/ /mnt/chrootdir/sys/

chroot /mnt/chrootdir/

grub-install /dev/sda

Installation finished. No error reported.

If you do not see a message that the grub.cnf file is generated then also run the update command:

update-grub2 /dev/sda

Now you can safely reboot and see the well known boot menu appear again.

This solution was the only one which was working for me after migrating from a physical server to a virtual machine. I hope someone finds this useful!

share|improve this answer

It is the update-grub command which will give you the error when using it from a live cd. I faced with a similar situation when i was doing a grub rescue. The problem you have is that update-grub and grub-install commands do not work directly under live cd (I don't know why). So, you have to go to /usr/sbin where the commands are located and execute them from there (i.e ./update-grub).

share|improve this answer
    
No, you have to mount the hard disk and chroot into it, like @green7 said. – psusi Apr 2 '14 at 18:27
    
my method also works. try it. its simpler – aveemashfaq Apr 4 '14 at 12:32
1  
You don't have a method. /usr/sbin is on the path already so there is no need to cd there. You can't run grub-install and update-grub directly from the live cd ( as you noted ) because it tries to set up grub to boot the current system, which would be the live cd, rather than the os installed on the hard drive. – psusi Apr 4 '14 at 14:00
    
This, of course, doesn't work. You get the "can't get cannonical path of /cow" error. And the stuff about cd-ing to /usr/sbin... oh boy. – dan3 Apr 13 '14 at 12:37
    
try it people. it worked for me all the time – aveemashfaq Apr 13 '14 at 13:09

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.