Rescue a VM that's not Booting
First, boot to rescue mode by selecting the VM, and pressing Rescue. Rescue mode will offer to use either an Ubuntu Rescue Image or the VM's initial disk state. In this guide, we'll assume you're using the Ubuntu Rescue Image.
After the VM status changes from Online to Rescue, press VNC to open the VNC console. After the VM finishes booting to rescue mode, you'll be able to login with username and password both "rescue".
Your VM data will be exposed to the rescue image as a separate disk. Use
fdisk -l to list the disks.
$ fdisk -l Disk /dev/vda: 10.7 GB, 10737418240 bytes 4 heads, 32 sectors/track, 163840 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000afd1c Device Boot Start End Blocks Id System /dev/vda1 * 2048 20971519 10484736 83 Linux Disk /dev/vdb: 21.5 GB, 21474836480 bytes 3 heads, 1 sectors/track, 13981013 cylinders, total 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x3fb3835a Device Boot Start End Blocks Id System /dev/vdb1 * 2048 41943006 20970479+ 83 Linux
Above, /dev/vda is the rescue image disk, and /dev/vdb contains your VM data. Let's mount the VM data to /mnt:
$ mount /dev/vdb1 /mnt
Now, we can chroot into the mountpoint and do whatever is needed to fix the boot issue:
$ mount -t proc /proc /mnt/proc $ mount -t sysfs /sys /mnt/sys $ mount -o bind /dev /mnt/dev $ chroot /mnt
After you're done, exit the chroot and run
umount /mnt. Then, press Unrescue to boot to the local disk.