I recently replaced the hard drive in my laptop. I used Acronis True Image Home 2011 to clone the old hard drive to the new one. It increased the sizes of the partitions proportionatly and made the drive bootable. So far so good.
In addition to Windows 7 I have Ubuntu 10.10 dual booted using Grub2.
Windows 7 booted just fine after the upgrade but Ubuntu would not boot and dropped into busybox with the following error
/dev/disk/by-uuid/xxxx does not exist
dropping to shell
Where xxxx is a long number called a UUID
Because the Linux partition was now 20GB larger than before it had a new UUID which did not match what Ubuntu expected. Since the introduction of Grub2 Ubuntu boots using UUID’s instead of device ID’s. This has many advantages if a linux partition is moved from one device to another or devices ID’s are reassigned after new hardware is added or removed. However if the UUID changes Ubuntu can’t find the installation partition to boot from.
Fortunately, changing the UUID Ubuntu expects is fairly easy.
First you have to note the new UUID of the Linux partition. After Ubuntu fails to boot enter
at the recovery prompt, this will list the partitions and associated UUID’s.
Next reboot the computer and press the letter e when Grub first loads. You will see the boot commands listed, change the UUID to match the UUID you noted earlier, press the down arrow at least once then press Ctrl-X to boot using these new parameters. If you entered the UUID correctly Ubuntu should boot normally.
Log into Ubuntu and open a command prompt.
followed by your password when prompted.
and the system should reboot and load Ubuntu normally.
Of course things didn’t work out so well for me, and the update-grub command failed to list Windows 7 with the following error
Boot: No such file or directory
ls: cannot access /var/lib/os-prober/mount/boot
I could now boot Ubuntu but not Windows 7 :-)
Fixing this is fairly straight forward
Once Ubuntu is loaded open the ‘System Reserved’ volume in places. Look to see of there are two boot folders. One will be all lowercase /boot and one will be captalized /Boot. Rename the lowercase /boot to something else.
Now repeat the update-grub command listed above and it should update the boot configuration without errors and list Windows correctly.
Ubuntu cannot be directly faulted for having problems, Acronis True Image Home should have made the requisite adjustments to UUID’s to enable Ubuntu to resume normal operations.