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 nomodeset vga=794
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
Access /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.
grub.cfg
asmenu.lst
doesn't work (not tried that yet). My other try with Android 5.1 hung in the boot animation ("android" text), so I gave up after 15min. What OS setting is your install based on? I've used "other Linux", as that worked in the past.