I'd like to extend and improve @Jay Smith answer based on personal experience.
He is right in the core thing that the cause of the issue is VGA resolution used by Android, but he is wrong in his assumption it is disposable fix and should be typed at each boot.
It can be made persistent, and should be! And I show you how:)
- First of all, install the Android from iso image correctly through the wizard steps.
- Do not use EFI GRUB during install.
- Do not use immediate Run Android_x86 option, instead select Reboot and eject the iso. The error mentioned by @Jay Smith
The big drawback of this approach is that the next time you try to
boot from the hard drive, GRUB will not be able to find the image
is not related to VGA issue and should be dealt separately. I also met this error and full reinstall helped, so I assume this error is somehow connected with the Run option, 'cause when I selected Reboot I didn't face the error.
- After the install you will boot and will stuck into Android command prompt. Okay, go on then.
- Now you should try to pick up your correct resolution.
It won't necessarily be 788 or 794, as they say here, it all depends on your hardware setup. For me 796, 794 and 792 worked for KitKat, Lollipop and Marshmallow images correspondingly, however your values could be different.
Here is the table for linking GRUB VGA values to resolutions.
To check what match you use trial and error method
Then on boot to GRUB screen choose e key to edit the option
There you will find a long-long string of options to which you should append your VGA option like that
After editing press Enter and b to boot the desired bootrecord.
- Iterate these steps N times to find proper resolution. You will recognize that by the booting of Android:)
- O-la-la, excellent! We achieved the desired result and booted Android for one time. But this is only 50% of job. I guess you don't want to type this VGA crap each time? Okay, let's go on to persist our result.
- Now we need to edit
GRUB config to add our desired resolution. While there are ways that allow doing this within the GRUB itself (i.e. debug mode, grub cmd) I wasn't able to get it to work and propose another 100% solution.
We need working Linux installation (physical or virtual, doesn't matter). The problem here is that GRUB folder cannot be accessed from inside Android as it's protected, and it should be accessed externally. And not from Windows because it doesn't recognize
ext3/ext4 partitions, only from *nix OSes.
So add this disk (VHD, VDI, VMDK or whatever) to your Linux installation for it to have access to android filesystem
/grub/menu.lst. Usually it is located in root folder.
There you'll find smth like
Append the desired VGA option to the bootrecord as we did earlier and that's it!
- Save the file.
We've done! Now you can reattach your android disk to virtual machine and happily use it.