Android x86棉花糖无法在Virtualbox和VMware Workstation上启动


32

我从这里下载了最新的Android x86(android-x86-6.0_20160129.iso),并尝试将其安装到VMware Workstation和Virtualbox中的VM上的HDD中。

安装似乎可以正确进行(使用EXT4和EFI Grub),并且我收到一条消息,说明已成功安装。但是,当我重新启动时,它会通过GRUB,选择正确的Android安装,但不会启动。我在下面的屏幕截图中看到了结果,然后在空白屏幕上显示闪烁的光标

在此处输入图片说明

我已经在Android-SE上(这里这里)看到了类似的问题,但是它们使用的是旧版的Android x86,并且似乎没有适合我的解决方案。

VMware和Virtualbox中的VM具有:HDD = 4GB(IDE),RAM = 2GB,2个CPU,它们通过EFI引导。我已经在Grub引导参数中尝试过nomodesetxforcevesa,但是似乎没有任何效果。

.iso确实会以实时模式(LiveCD)一直引导到GUI。

任何帮助将不胜感激。我觉得解决方案可能与图形设置有关,但我不确定。


我与您分享您的感受(此处是同一问题)。由于一些提示,我什至将图形内存增加到32MB(没有改善)。有些帖子说需要2个分区(1 = grub的主要100MB,2 =扩展了Android的剩余空间),对我而言没有帮助。另一个消息来源建议手动编辑/创建grub.cfgas menu.lst不起作用(尚未尝试过)。我对Android 5.1的另一次尝试挂在启动动画(“ android”文本)中,因此15分钟后我放弃了。您的安装基于什么操作系统设置?我曾经使用过“ other Linux”,就像过去那样。
的Izzy

到目前为止,我尝试过“ Ubuntu”和“ FreeBSD”……让我弄乱其他对象,看看是否有帮助。
Irvin H.

我看到一个YouTube视频,其中有人使用Windows7,这确实让我感到困惑。
伊齐

顺便说一句:我刚刚尝试过一次,对我来说,它甚至都没有启动进入实时模式(然后在同一位置结束)。我已经提到过的姐妹网站上的相关问题:VirtualBox中的Android-x86 6.0棉花糖:安装卡在GRUB上
Izzy

@Izzy:实际上,根据我所读的内容,您上一篇文章中的链接上的解决方案(并通过一些实验)并不完全正确,但它可以工作。据我了解,实际上是GPT引导扇区的创建,它允许Grub继续处理,而不是存在2个分区。我在某处读到,如果首先未完成“创建/修改分区”,则Android x86分区格式化会无声地失败,这导致grub安装程序挂起,因为磁盘甚至没有被格式化。(我还将在该链接中添加此“脚注”)
Irvin H.

Answers:


51

找到了解决方案!

您必须进行编辑menu.lst file。方法如下:

  1. 以调试模式启动(通常是启动菜单中的第二个选项)
  2. 当启动停止时(对我而言,它只是悬挂在上面,并且带有闪烁的光标,没有任何提示),输入 mount -o remount,rw /mnt
  3. 输入 cd /mnt/grub
  4. 输入 vi menu.lst
  5. 按Shift + a
  6. 在第一个引导项下找到以开头的行kernel initrd=/in(您的行可能看起来有所不同;它取决于Android版本;通常只需找到以开头的行kernel
  7. 在行尾 vga=834 nomodeset xforcevesa
  8. 然后按ESC- :wq这些命令将保存文件并退出vi
  9. 输入 cd /
  10. 输入 umount /mnt
  11. 输入 reboot -f

现在,系统应以您选择的VESA模式重启。

这将强制为X使用VESA驱动程序。

您可以用vga=xxx任何您想要的屏幕分辨率数字代替。经过测试也832可以正常工作(分辨率为800x600)。

使用iso文件时,您可以找到所有VESA模式,并选择启动选项以VESA模式启动-它会显示所有模式的列表(数字以十六进制表示,某些模式前面还有一个冗余字母-忽略它),您可以立即在那里对其进行测试,以查看它是否有效并且可以在此menu.lst修复程序中很好地使用,但是您必须先使用任何hex-> dec转换器将其从hex转换为dec。


2
+1,确认可android-x86-6.0-r3.iso在VMware Workstation上使用。
David Refoua '18

是否有一种非繁琐的替代方式,它也不允许由1个错字引起的错误?
neverMind9

1
非常感谢❗️它仍然可以在Android 8上运行
Yassine ElBadaoui

2
谢谢lot❗️它仍然工作在Android 8.1😊
井上智文

1
在步骤10中,我得到:'无法卸载/ mnt:设备或资源繁忙'
Koy

7

我想根据个人经验来扩展和完善@Jay Smith的答案。他认为问题的根源是Android使用的VGA分辨率,这是正确的,但他认为这是一次性修复程序,应该在每次启动时都键入错误,这是错误的。
可以是持久的,而且应该是!我告诉你如何:)

  1. 首先,通过向导步骤从iso映像正确安装Android。
  2. 千万不能在安装过程中使用EFI GRUB。
  3. 千万不能使用即时运行Android_x86选项,而不是选择重新启动并弹出异。@Jay Smith提到的错误

这种方法的最大缺点是,下次尝试从硬盘启动时,GRUB将无法找到该映像。

不是涉及到VGA的问题,应该分开处理。我也遇到了此错误,并且完全重新安装得到了帮助,因此我认为此错误与“ 运行”选项相关,因为当我选择“ 重新启动 ”时,我没有遇到该错误。

  1. 安装后,您将启动并陷入Android命令提示符。好吧,继续。
  2. 现在,您应该尝试选择正确的分辨率。正如他们在这里所说的,不一定是788794,这完全取决于您的硬件设置。对我来说,796、794和792分别适用于KitKat,Lollipop和棉花糖图像,但是您的值可能有所不同。 这是用于将GRUB VGA值链接到分辨率的表。要检查匹配项,请使用试错法

然后在启动至GRUB屏幕时,选择e键以编辑选项

在此处输入图片说明

在那里,您会发现一长串的选项,您应该在其中添加VGA选项 nomodeset vga=794

在此处输入图片说明

编辑后,按Enter和b引导所需的引导记录。

  1. 将这些步骤重复N次以找到合适的分辨率。您将通过启动Android来认识到这一点:)
  2. 哦啦,太好了!我们取得了预期的结果,并一次性启动了Android。但这只是工作的50%。我想您不想每次都输入VGA废话吗?好吧,让我们继续我们的结果。
  3. 现在我们需要进行编辑GRUB config以添加所需的分辨率。虽然有一些方法可以在GRUB本身中执行此操作(即调试模式,grub cmd),但我无法使其工作并提出另一种100%解决方案。

我们需要有效的Linux安装(物理或虚拟都无所谓)。这里的问题是,由于受保护,无法从Android内部访问GRUB文件夹,因此应从外部进行访问。并非来自Windows,因为它无法识别ext3/ext4分区,只能识别* nix操作系统。因此,将此磁盘(VHD,VDI,VMDK或其他任何磁盘)添加到您的Linux安装中,使其可以访问android文件系统

  1. 访问/grub/menu.lst。通常它位于根文件夹中。

  2. 在那里你会发现像

在此处输入图片说明

像我们之前所做的那样,将所需的VGA选项添加到引导记录中就可以了!

  1. 保存文件。

我们完成了!现在,您可以将android磁盘重新连接到虚拟机并愉快地使用它。


4

我还遇到了Windows 7 Pro x64 AMD机器上的Android x86虚拟框的问题。我想根据我们的体系结构/硬件,我们每个人都会遇到一些稍有不同的问题,但是它们似乎都是相似的根本原因。我认为应该比主机OS更加注重体系结构/硬件。尝试在系统中设置了EFI或不设置EFI的情况下尝试32位,将硬件加速保留为默认设置,确保在您的BIOS中启用了虚拟化。不要启用3D图形加速,如果启用2D加速,则应该收到警告,因此不要启用它,如果在初始设置过程中出现黑屏,请尝试将视频内存增加到64mb。最后,您可以在此处下载预构建的VM映像:

http://www.osboxes.org/android-x86/

所有这些小调整都帮助我在Windows 7 x64 Pro计算机上成功安装了Android x86 4.4。


4

这里有些进步,但不是真实的。以下内容使我可以在VirtualBox下正确启动Android x86 6.0-但只能启动一次:

1)引导安装映像时,初始屏幕为您提供四个选项。将光标移到最后一个位置:安装-将Android-x86安装到硬盘上。

2)按[Tab]键进行编辑。

3)INSTALL=1 DEBUG=输入后立即vga=788

(确保DEBUG=和之间有空格vga=788。)

4)按[Enter]。

5)继续进行网络中许多站点所述的磁盘分区。

6)当提供选项Run Android x86和时Reboot,选择Run Android x86。您应该会看到ANDROID在大字母下跳动了几分钟,然后出现了Android欢迎屏幕。

这种方法的最大缺点是,下次尝试从硬盘驱动器启动时,GRUB将无法找到该映像:-(修复此问题的任何帮助将不胜感激。


1
不幸的是,这是一次性解决方法:(...
Suncatcher


0

这是一个YouTube视频,显示了如何在Grub中设置VESA模式。

https://www.youtube.com/watch?v=JoMs-4bsygs

我的另一篇文章由于某种原因而被删除,但是如果您想确定VESA / VIDEO是否是您的GUI在安装后无法显示的原因,请从Android x86 ISO引导并选择VESA模式(实时引导),如果您会得到一个gui,然后查看该youtube视频。它完美地说明了如何设置您的grub以启动正确的VESA模式。


不支持按[esc]
Micha93,

0

完全陌生,但我只是尝试在Workstation 12 Pro上安装Android 6.0,并在启动时卡在命令提示符处,偶尔闪烁。从头开始尝试了一些建议,但无济于事。最后进入虚拟机设置,并在3D图形上打钩,警告它不支持该图形。然后,这使我可以选择32mb的图形内存。重新启动,它工作了。尝试多次启动只是为了证明它,它仍然可以正常工作。希望这可以帮助。


我尝试了Spider5445提供的解决方案,它也适用于牛轧糖...感谢吨伴侣!:)
Kapil Vyas



-1

我在硬盘上安装时遇到了同样的问题,以下步骤对我有帮助:

  • 就像上面提到的Jay一样:在安装媒体上,我按下了[Tab]键。
  • 我写下正是所有类似的论点 androidboot.hardware=android_x86_64DEBUG=2现在都显示了安装媒体启动菜单项等。

  • 我在自定义grub配置中添加了所有这些参数,并更新了grub。

  • 引导时,我必须在控制台提示符下输入两次“退出”。

为此,Android启动并启动了窗口管理器。

PS:如果审阅者弄乱了答案的格式,甚至没有获得内容就投了您一票,那就太不酷了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.