The latest version of VMWare Converter doesn’t play nice with newer versions of Ubuntu. It will fail at 99% with this very informative error message:

FAILED: An error occurred during the conversion: ‘GrubInstaller::InstallGrub: /usr/lib/vmware-converter/installGrub.sh failed with return code: 1, and message: FATAL:
kernel too old Error running vmware-updateGrub.sh through chroot into /mnt/p2v-src-root ‘

The problem is that the temporary kernel that Converter uses to update the system configuration is just too old to run any of the 12.04 binaries. You can tell it not to try and then fix the configuration yourself:

  1. Create the job as normal up to the “Options” step
  2. Click on edit next to advanced options
  3. Uncheck “Reconfigure destination virtual machine” and click ok in the resulting warning
  4. Run the job
  5. Boot the VM to an Ubuntu 12.04 install CD (normal or alternate definitely work, minimal probably doesn’t work)
  6. Select “Rescue a broken system”
  7. Use all the default options until you get to “Device to use as root file system:”
  8. Select the root partition (in my case /dev/sda1)
  9. Select the “Reinstall GRUB boot loader” option
  10. Enter the dev path of your first hard drive (in my case “/dev/sda”; this should be shown in the first example)
  11. Open a shell (i.e. “Execute a shell in /dev/sda1”)
  12. Using nano, vi, etc. update the /etc/fstab file, either replacing the UUIDs with the device name noted in the comment above them (which is easier) or updating with the new UUIDs (which is less likely to be broken in a multi-boot situation). The UUIDs can be obtained by running “blkid” from the recovery console.
  13. Run update-grup in the recovery console
  14. Run “exit” to exit the recovery console
  15. Select “Reboot the system”

At this point one of the systems I was working with booted fine, most likely either because it had been running on slightly newer hardware than the other, or because it had a slightly older kernel (3.2.0-33 compared to 3.2.0-39). The other machine got a chill inducing error accompanied by a busybox prompt:

 Alert! /dev/disk/by-uuid/<your UUID> does not exist 

If you still can’t boot:

  1. Boot the VM to an Ubuntu 12.04 install CD (normal or alternate definitely work, minimal probably doesn’t work)
  2. Select “Rescue a broken system”
  3. Use all the default options until you get to “Device to use as root file system:”
  4. Select the root partition (in my case /dev/sda1)
  5. Open a shell (i.e. “Execute a shell in /dev/sda1”)
  6. Run “dpkg-reconfigure udev”
  7. Run cd /boot
  8. Run “ls” and make a note of the highest version initrd (i.e. for “initrd.img-3.2.0-39-generic” you need “3.2.0.-39-generic”)
  9. Run something like “update-initramfs -u -k 3.2.0-39-generic” replacing the version with the one found above 
  10. Run “exit” to exit the recovery console
  11. Select “Reboot the system”

References:
http://communities.vmware.com/message/2101836#2101836
http://ubuntuforums.org/showthread.php?t=1127779&page=3&p=10186536#post10186536


1 Comment

WifiCity · April 19, 2013 at 14:34

Thanks for this info! Maybe this could be helpfull in certain cases.
In my case the root system is installed on LVM (/dev/mapper/owncloud-root). I don’t get the option “Reinstall GRUB boot loader”. First I have to perform step 11 en 12 (choose Execute a shell in /dev/mapper/owncloud-root).
Then I exit from the shell (command exit). Now I see the Reinstall option. After Reinstalling GRUB I open a shell again and perform step 13, 14 and 15.

Leave a Reply