Android x86 Marshmallow nie uruchamia się na Virtualbox i VMware Workstation

32

Pobrałem stąd najnowszy Android x86 (android-x86-6.0_20160129.iso) i próbowałem zainstalować go na dysku twardym na maszynie wirtualnej w VMware Workstation i Virtualbox.

Wygląda na to, że instalacja przebiega poprawnie (przy użyciu EXT4 i EFI Grub) i pojawia się komunikat o pomyślnym zainstalowaniu. Jednak po ponownym uruchomieniu uruchamia się GRUB, wybiera prawidłową instalację Androida, ale nie uruchamia się. Otrzymuję wynik widoczny na zrzucie ekranu poniżej, a następnie pusty ekran z migającym kursorem .

wprowadź opis zdjęcia tutaj

Widziałem podobne pytania na Android-SE ( tu i tutaj ), ale używają starszych wersji Androida x86 i nie wydają się mieć rozwiązań, które działałyby dla mnie.

Maszyny wirtualne zarówno w VMware, jak i Virtualbox mają: HDD = 4 GB (IDE), RAM = 2 GB, 2 procesory i uruchamiają się przez EFI. Próbowałem nomodeset i xforcevesa w parametrach rozruchu Grub, ale wydaje się, że nic nie działa.

.Iso uruchamia się do samego GUI w trybie Live (LiveCD).

Każda pomoc byłaby bardzo mile widziana. Mam wrażenie, że rozwiązaniem może być coś związanego z ustawieniami grafiki, ale nie jestem do końca pewien.

Irvin H.
źródło
Podzielam twoje uczucia (ten sam problem tutaj). Ze względu na pewne wskazówki zwiększyłem nawet pamięć graficzną do 32 MB (bez poprawy). Niektóre posty mówią o potrzebie 2 partycji (1 = podstawowa 100 MB dla grub, 2 = rozszerzona z pozostałym miejscem na Androida), w moim przypadku nie pomogła. Inne źródło sugerowało, że ręczna edycja / tworzenie grub.cfgas menu.lstnie działa (jeszcze tego nie próbowałem). Moja druga próba z Androidem 5.1 zawiesiła się w animacji rozruchu (tekst „android”), więc poddałem się po 15 minutach. Jakie ustawienie systemu operacyjnego jest oparte na twojej instalacji? Użyłem „innego Linuksa”, ponieważ działało to w przeszłości.
Izzy
Do tej pory wypróbowałem „Ubuntu” i „FreeBSD” ... pozwól mi zepsuć kilka innych i sprawdź, czy to pomoże.
Irvin H.,
Widziałem film na YouTube, w którym ktoś używał Windows7, co mnie naprawdę pomyliło.
Izzy
BTW: Właśnie próbowałem ponownie, dla mnie nawet nie uruchamia się w trybie na żywo (kończy się wtedy w tym samym miejscu). Powiązany problem na naszej siostrzanej stronie, o której już wspomniałem: Android-x86 6.0 Marshmallow w VirtualBox: instalacja utknęła na GRUB-u
Izzy
@Izzy: Właściwie z tego, co przeczytałem, rozwiązanie pod linkiem w poprzednim poście (i po odrobinie eksperymentów) nie jest dokładnie poprawne, ale działa. Z mojego zrozumienia wynika, że ​​tak naprawdę utworzenie sektora rozruchowego GPT pozwala na kontynuowanie działania Grub, a nie obecność 2 partycji. Czytałem gdzieś, że formatowanie partycji dla Androida x86 nie powiedzie się po cichu, jeśli najpierw „Utwórz / Zmodyfikuj partycję nie jest zrobione”, co prowadzi do zawieszenia instalatora grub, ponieważ dysk nie był nawet sformatowany na początku. (Dodam ten „przypis” również do tego linku)
Irvin H.

Odpowiedzi:

51

Znalazłem rozwiązanie!

Musisz edytować menu.lst file. Oto jak:

  1. uruchom w trybie debugowania (zwykle druga opcja w menu rozruchu)
  2. kiedy ładowanie się zatrzymuje (dla mnie po prostu wisi tam z migającym kursorem i bez monitu) enter mount -o remount,rw /mnt
  3. wchodzić cd /mnt/grub
  4. wchodzić vi menu.lst
  5. naciśnij Shift + a
  6. tuż pod pierwszym wpisem bootowania znajdź linię zaczynającą się od kernel initrd=/in(twoja linia może wyglądać inaczej; zależy to od wersji Androida; ogólnie po prostu znajdź linię, która zaczyna się od kernel)
  7. na końcu typu linii vga=834 nomodeset xforcevesa
  8. następnie naciśnij ESC :wq- te polecenia zapiszą plik i zakończą vi
  9. wchodzić cd /
  10. wchodzić umount /mnt
  11. wchodzić reboot -f

Teraz system powinien się zrestartować w wybranym przez ciebie trybie VESA.

Wymusi to użycie sterownika VESA dla X.

Możesz zastąpić vga=xxxdowolnym numerem rozdzielczości ekranu. Testowane również, które 832działa dobrze (daje rozdzielczość 800 x 600).

Możesz znaleźć wszystkie tryby VESA, gdy używasz pliku ISO i wybierz opcję rozruchu, aby uruchomić w trybie VESA - wyświetli listę wszystkich trybów (cyfry są szesnastkowe, a przed niektórymi trybami znajduje się nadmiarowa litera - zignoruj ​​go) i możesz je natychmiast przetestować, aby sprawdzić, czy działa i dobrze jest skorzystać z tej menu.lstpoprawki, ale najpierw musisz przekonwertować go z hex na dec za pomocą dowolnego konwertera hex-> dec.

ajira
źródło
2
+1, potwierdzono, że działa android-x86-6.0-r3.isona VMware Workstation.
David Refoua
Czy istnieje niepotrzebna alternatywa, która również nie dopuszcza błędów, które mogą być spowodowane przez 1 literówkę?
neverMind9,
1
Wielkie dzięki ❗️ nadal działa na Androidzie 8 😊
Yassine ElBadaoui
2
Wielkie dzięki ❗️ nadal działa na Androidzie 8.1 井上
井上 文
1
W kroku 10 otrzymuję: „nie mogę umount / mnt: urządzenie lub zasób zajęte”
Koy
7

Chciałbym rozszerzyć i ulepszyć odpowiedź @Jay Smith na podstawie osobistych doświadczeń. Ma rację w tym, że przyczyną problemu jest rozdzielczość VGA używana przez Androida, ale nie ma racji, zakładając, że jest to jednorazowa poprawka i powinna być wpisywana przy każdym uruchomieniu.
To może być trwałe, a powinno być! I pokażę ci jak :)

  1. Przede wszystkim zainstaluj poprawnie system Android z obrazu ISO poprzez kroki kreatora.
  2. Czy nie używać EFI GRUB podczas instalacji.
  3. Czy nie używać natychmiastowy Run Android_x86 opcję, zamiast wybrać Reboot i wysunąć iso. Błąd wspomniany przez @Jay Smith

Dużą wadą tego podejścia jest to, że przy następnym uruchomieniu systemu z dysku twardego GRUB nie będzie w stanie znaleźć obrazu

nie jest związany z problemem VGA i powinien być rozpatrywany osobno. Zetknąłem się również z tym błędem i pomogła pełna ponowna instalacja, więc zakładam , że ten błąd jest w jakiś sposób związany z opcją Uruchom , ponieważ kiedy wybrałem Uruchom ponownie , nie napotkałem błędu.

  1. Po instalacji uruchomisz się i utkniesz w wierszu poleceń Androida. OK, kontynuuj.
  2. Teraz powinieneś spróbować wybrać prawidłową rozdzielczość. Niekoniecznie będzie to 788 lub 794 , jak mówią tutaj , wszystko zależy od konfiguracji sprzętu. Dla mnie 796, 794 i 792 działały odpowiednio dla obrazów KitKat, Lollipop i Marshmallow, jednak twoje wartości mogą być inne. Oto tabela łączenia wartości GRUB VGA z rozdzielczością. Aby sprawdzić, które dopasowanie używasz metody prób i błędów

Następnie przy uruchomieniu do ekranu GRUB wybierz klawisz e , aby edytować opcję

wprowadź opis zdjęcia tutaj

Znajdziesz tam długi ciąg opcji, do których powinieneś dołączyć taką opcję VGA nomodeset vga=794

wprowadź opis zdjęcia tutaj

Po edycji naciśnij Enter ib, aby uruchomić żądany rekord rozruchowy.

  1. Powtórz te kroki N razy, aby znaleźć właściwą rozdzielczość. Poznasz to po uruchomieniu Androida :)
  2. O-la-la, doskonale! Osiągnęliśmy pożądany wynik i uruchomiliśmy Androida raz. Ale to tylko 50% pracy. Chyba nie chcesz za każdym razem pisać tego badziewia VGA? Dobra, kontynuujmy, by utrzymać nasz wynik.
  3. Teraz musimy edytować, GRUB configaby dodać pożądaną rozdzielczość. Chociaż istnieją sposoby, które pozwalają to zrobić w samym GRUB-ie (tj. Tryb debugowania, grub cmd), nie byłem w stanie zmusić go do działania i zaproponować inne 100% rozwiązanie.

Potrzebujemy działającej instalacji Linuksa (fizycznej lub wirtualnej, to nie ma znaczenia). Problem polega na tym, że do folderu GRUB nie można uzyskać dostępu z poziomu Androida, ponieważ jest chroniony, i powinien być dostępny zewnętrznie. I nie z systemu Windows, ponieważ nie rozpoznaje ext3/ext4partycji, tylko z systemów operacyjnych * nix. Dodaj więc ten dysk (VHD, VDI, VMDK lub cokolwiek innego) do instalacji Linuksa, aby mieć dostęp do systemu plików Android

  1. Access /grub/menu.lst. Zwykle znajduje się w folderze głównym.

  2. Tam znajdziesz coś podobnego

wprowadź opis zdjęcia tutaj

Dodaj żądaną opcję VGA do bootrecord, jak to zrobiliśmy wcześniej i to wszystko!

  1. Zapisz plik.

Zrobiliśmy! Teraz możesz ponownie podłączyć dysk z Androidem do maszyny wirtualnej i chętnie z niego korzystać.

Suncatcher
źródło
4

Miałem też problemy z systemem Android x86 Vitual Box na komputerze AMD z systemem Windows 7 Pro x64. Przypuszczam, że wszyscy będziemy mieć nieco inne problemy w zależności od naszej architektury / sprzętu, ale wszystkie wydają się być podobne z przyczyn źródłowych. Myślę, że większy nacisk należy położyć na architekturę / sprzęt niż na system hosta. Wypróbuj tryb 32-bitowy bez / z ustawionym EFI w systemie, pozostaw domyślne przyspieszenie sprzętowe, upewnij się, że wirtualizacja jest włączona w twoim systemie BIOS. Nie włączaj akceleracji grafiki 3D, powinieneś otrzymać ostrzeżenie, jeśli włączysz akcelerację 2D, więc nie włączaj tego, jeśli pojawi się czarny ekran podczas wstępnej konfiguracji, spróbuj zwiększyć pamięć wideo do 64 MB. Wreszcie możesz pobrać wstępnie zbudowane obrazy maszyn wirtualnych tutaj:

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

Wszystkie te drobne poprawki pomogły mi z powodzeniem zainstalować system Android x86 4.4 na komputerze z systemem Windows 7 x64 Pro.

PassingGuest
źródło
4

Pewien postęp tutaj, ale nie prawdziwy. Poniższe pozwoliło mi poprawnie uruchomić system Android x86 6.0 w VirtualBox - ale tylko raz:

1) Podczas uruchamiania obrazu instalacyjnego ekran początkowy daje cztery opcje. Przesuń kursor do ostatniego: Instalacja - Zainstaluj system Android-x86 na dysku twardym ".

2) Naciśnij klawisz [Tab], aby wyświetlić opcje edycji.

3) Natychmiast po INSTALL=1 DEBUG=typievga=788

(Upewnij się, że pomiędzy DEBUG=i vga=788. Jest spacja ).

4) Naciśnij [Enter].

5) Kontynuuj partycjonowanie dysku w sposób opisany w wielu witrynach w sieci.

6) Po zaoferowaniu opcji Run Android x86i Rebootwybierz Run Android x86. Powinieneś zobaczyć, jak ANDROID pulsuje dużymi literami przez kilka minut, a następnie pojawi się ekran powitalny Androida.

Dużą wadą tego podejścia jest to, że przy następnej próbie rozruchu z dysku twardego GRUB nie będzie w stanie znaleźć obrazu :-( Każda pomoc w naprawieniu tego będzie mile widziana.

Jay Smith
źródło
1
Niestety jest to jednorazowe obejście: (...
Suncatcher
0

Oto film z YouTube pokazujący, jak ustawić tryb VESA w Grub.

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

Mój inny post został z jakiegoś powodu usunięty, ale jeśli chcesz dowiedzieć się, czy VESA / VIDEO jest przyczyną, dla której twoje GUI nie pojawia się po instalacji, uruchom system z Androida x86 ISO i wybierz tryb VESA (Live boot) i jeśli dostajesz GUI, a następnie sprawdź ten film na YouTube. Doskonale wyjaśnia, jak skonfigurować gruba, aby uruchamiał prawidłowy tryb VESA.

Android Helper
źródło
Naciśnięcie [esc] nie jest obsługiwane
Micha93,
0

Zupełnie nowy w tym, ale właśnie próbowałem zainstalować system Android 6.0 na stacji roboczej 12 Pro, a podczas rozruchu po prostu utknąłem w wierszu polecenia ocassionaly flashowanie. Wypróbowałem kilka sugestii od abvoe bezskutecznie. W końcu przeszedł do ustawień VM i zaznaczył grafikę 3D, w której ostrzegł, że nie jest obsługiwany. To pozwoliło mi wybrać 32 MB pamięci graficznej. Zrestartowano i zadziałało. Próbowałem uruchomić się jeszcze kilka razy, aby to udowodnić i nadal działa. Mam nadzieję że to pomoże.

Spider5445
źródło
Wypróbowałem rozwiązanie podane przez Spider5445 i zadziałało również dla Nougat ... dzięki kolega z tony! :)
Kapil Vyas
0

W programie ładującym grub, naciśnij tab i zmień androidboot.hardware = android_x86 na androidboot.hardware = x86.

Alec Petridis
źródło
-1

Miałem ten sam problem z instalacją na dysku twardym i dla mnie następujące kroki pomogły:

  • Tak jak wspomniany powyżej Jay: na nośniku instalacyjnym nacisnąłem klawisz [Tab].
  • Spisałem dokładnie wszystkie argumenty, jak androidboot.hardware=android_x86_64i DEBUG=2itp, które są pokazane teraz do wejścia w menu rozruchu średnich instalacji.

  • Dodałem wszystkie te argumenty do mojej niestandardowej konfiguracji gruba i zaktualizowałem grub.

  • Podczas uruchamiania muszę dwukrotnie wpisać „exit” w wierszu poleceń konsoli.

Wykonanie tego Androida uruchomiło i uruchomiło menedżera okien.

PS: Bardzo niechlujny, jeśli recenzent przekręci format odpowiedzi, a nawet zagłosuje bez uzyskania treści.

głupkowaty
źródło