Avvio di Android con GRUB, ma come?

8

Ho un piccolo problema. Ho sette partizioni:

Device    Boot   Begin       End         Blocks     Id   System
/dev/sda1   *      206848   219013119   109403136    7  HPFS/NTFS/exFAT     <-- wINDOWS 7
/dev/sda2       219013120   735516671   258251776    7  HPFS/NTFS/exFAT     <--Musik,....
/dev/sda3       735516672   815638527    40060928    7  HPFS/NTFS/exFAT     <-- Android
/dev/sda4       815640574   976771071    80565249    5  Erweiterte          <-- No Idea:D
Partition 4 does not start at a physical sector boundary.
/dev/sda5       815640576   872494091    28426758   83  Linux               <--Kali Linux
/dev/sda6       970151936   976771071     3309568   82  Linux Swap / Solaris
/dev/sda7       872495104   970149887    48827392   83  Linux               <-- Ubuntu

Ho trovato un tutorial, ma l'ho provato e non funziona. Ecco il link:

link

Ho usato questo Android da android-x86.org e la versione android-x86-4.4-r1.iso.

Questo è il mio documento 40_Costum:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Android-x86" {
set root='(hd0,3)'
linux /android-x86-4.4-r1/kernel quiet root=/dev/ram0 androidboot_hardware=eeepc acpi_sleep=s3_bios,s3_mode SRC=/android-x86-4.4-r1
initrd /android-x86-4.4-r1/initrd.img}

Se avvio il mio PC arriva il gestore di avvio GRUB e posso scegliere Android, ma non avvia Android . Lo sfondo è viola e non succede nulla.

Quale sarebbe uno script completo e funzionante 40_Customm ?

Non funziona se faccio uno script in Grub Customizer e lo salvo. Non viene visualizzato nel menu di avvio se apro nuovamente il programma di personalizzazione di Grub e lo script viene rimosso.

Questo è il mio codice:

set root='(hd0,3)' 
'search --no-floppy --fs-uuid --set=root 28D9FDF951298246  
linux android-x86/kernel root=UUID=28D9FDF951298246  quiet 
androidboot.hardware=generic_x86 SRC=/android-x86 acpi_sleep=s3_bios,s3_mode 
initrd Android-x86/android-4.4-r1/initrd.img

Ora ho un problema in più:

Se avvio il mio portatile mostra Ubuntu, Windows, Kali Linux e Android (che non funziona), ma se avvio GRub Costumizer, Windows non è elencato ?! Ma perché?

    
posta VirusPLayer 28.08.2014 - 17:39

6 risposte

2

Per quanto riguarda Android x86 6.0

L'assegnazione "EEEPC" è solo per ASUS EEEPC, usala solo se ne hai uno, altrimenti usa android_x86 , non usi generic_x86 , rimarrai bloccato nell'animazione di avvio e per riavviare usando CTRL + F1 per accedere al terminale ed emettere reboot poiché la GUI non verrà caricata. Lo so perché ho passato diverse ore a seguire consigli sbagliati, benché ben intenzionati.

set root='(hd0,4)'
linux /android-6.0-rc1/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 acpi_sleep=s3_bios,s3_mode SRC=/android-6.0-rc1
initrd /android-6.0-rc1/initrd.img

Questa è stata la configurazione finale che ha funzionato per me su una SONY VAIO 64 bit vecchia scuola su una configurazione di avvio tripla.

'(0,4)' è stata la posizione del mio disco rigido e la partizione di Android x86 è stata installata, cambiandola di conseguenza. Non hai bisogno del tuo UUID, hai solo bisogno esattamente di quello che ho messo sopra con la tua posizione di installazione come unica modifica.

    
risposta data Bus42 22.06.2016 - 23:51
1

Questo è da XDA Developers

Per GRUB 1.97 - 1.99 & amp; 2.00 +

  1. Per semplificare, installa GRUB Customizer Digitali nell'emulatore di terminale: Codice:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt-get update
    sudo apt-get install grub-customizer
    
  2. Apri il customizer di GRUB e crea una nuova voce di GRUB.

  3. Apri la scheda "Fonti", digita queste:

    set root='(hd0,4)'
    search --no-floppy --fs-uuid --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3
    linux androidx86/kernel root=UUID=e1f9de05-8d18-48aa-8f08-f0377f663de3 quiet      androidboot.hardware=generic_x86 SRC=/androidx86 acpi_sleep=s3_bios,s3_mode
    initrd androidx86/initrd.img
    

Ecco cosa cambiare:

% Bl0ck_qu0te%
  • generic_x86 : se il tuo hardware non è elencato, usa questo
  • eeepc : laptop EEEPC
  • asus_laptop : laptop ASUS (solo computer portatili ASUS supportati)
risposta data Mark Kirby 28.08.2014 - 17:45
0

Questa è una domanda di dieci mesi, ma ho pensato che avrei comunque aiutato. In realtà è una soluzione molto semplice. Sto gettando la correzione nella mia risposta invece di premere "modifica" nella risposta sopra perché non voglio aspettare la revisione da parte dei colleghi o altro.

Ad ogni modo, la risposta con il maggior numero di voti afferma che dovresti usare il seguente codice:

set root='(hd0,4)'
'search --no-floppy --fs-uuid --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3
linux androidx86/kernel root=UUID=e1f9de05-8d18-48aa-8f08-f0377f663de3 quiet      androidboot.hardware=generic_x86 SRC=/androidx86 acpi_sleep=s3_bios,s3_mode
initrd androidx86/initrd.img

Il problema è nella seconda riga. C'è una tomba vagante (') all'inizio della seconda linea. Letteralmente così semplice. A volte è la cosa più semplice che fa smettere tutto di funzionare.

Immagino che tu abbia trovato un modo per aggiungere Android x86 a GRUB o semplicemente non ti interessa più, ma si. Quindi, ecco il codice corretto:

set root='(hd0,4)'
search --no-floppy --fs-uuid --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3
linux androidx86/kernel root=UUID=e1f9de05-8d18-48aa-8f08-f0377f663de3 quiet      androidboot.hardware=generic_x86 SRC=/androidx86 acpi_sleep=s3_bios,s3_mode
initrd androidx86/initrd.img

Questo è il mio intero file /etc/grub.d/40_custom (escluso exec tail e le righe commentate all'inizio):

menuentry "Android x86 4.4 R2" --class android --class gnu-linux --class gnu --class os {
    set root='(hd0,msdos2)'
    search --no-floppy --fs-uuid --set=root a47b5fe5-8969-4774-be9c-72c32a3fd14b
    linux /android-4.4-r2/kernel root=UUID=a47b5fe5-8969-4774-be9c-72c32a3fd14b quiet      androidboot.hardware=generic_x86 SRC=/android-4.4-r2 acpi_sleep=s3_bios,s3_mode
    initrd /android-4.4-r2/initrd.img
}
menuentry "Android x86 5.0.2 UNOFFICIAL" --class android --class gnu-linux --class gnu --class os {
    set root='(hd0,msdos4)'
    search --no-floppy --fs-uuid --set=root d2edeae9-3dc8-41b1-b775-25d0a8028092
    linux /android-2014-12-25/kernel root=UUID=d2edeae9-3dc8-41b1-b775-25d0a8028092 quiet      androidboot.hardware=generic_x86 SRC/android-2014-12-25 acpi_sleep=s3_bios,s3_mode
    initrd /android-2014-12-25/initrd.img
}

Ovviamente hd0,msdos2 è la partizione su cui ho installato Android 4.4 R2 e a47b5fe5-8969-4774-be9c-72c32a3fd14b è l'UUID di detta partizione e hd0,msdos4 è la partizione su cui ho Android 5.0.2 (non ufficiale e altamente instabile) installato su e d2edeae9-3dc8-41b1-b775-25d0a8028092 è l'UUID di quella partizione.

Per me, hd0,msdos2 è /dev/sdb2 e hd0,msdos4 è /dev/sdb4 . Non sono sicuro di quanto segue, ma penso che GRUB faccia hd0 , hd1 , hd2 , ecc. In un ordine diverso da quello di Linux sda/hda , sdb/hdb , sdc/hdc , ecc. Di nuovo, non sono sicuro, ma penso che GRUB lo faccia in ordine fisico (come verrebbero identificati nel tuo BIOS) e Linux li fa in ... uhh ... in un altro modo, immagino. Di nuovo, non sono sicuro.

Ma sì, se avete bisogno di capire quale partizione in formato di partizione GRUB ( hdX,msdosY ) la vostra partizione Android è (che vedo è /dev/sda3 ), riavviare il PC e premere C per andare a una riga di comando. Quindi digita (hd e attiva la scheda (la scheda completa automaticamente cose) e quindi elencherà tutte le unità come opzioni di completamento automatico (non sicuro al 100% ma sono del 70% sicuro che non visualizzi le unità USB a meno che non siano unità SATA connesse con un adattatore da USB a SATA). Quindi digita (hd0 , quindi premi la scheda e elencherà tutte le partizioni su hd0 come opzioni di completamento automatico. Se disponi di più unità, accertati quale percentuale di co_de% è solo una questione di tentativi ed errori con l'utilizzo del completamento automatico su /dev/sda3 . Non sono sicuro esattamente di come appaiono i risultati, ma so per certo che i risultati per (hd , mostreranno (ovviamente) gli identificatori di partizione in stile GRUB per tutte le partizioni su (hd0 (per te, sarebbe hd0 a msdos1 ; in GRUB, msdos7 inizia da 0 ma hd inizia da 1), le etichette di tutte le partizioni su msdos e il filesystem ( di solito getti Android x86 su ext2 ma dato che lo hai su NTFS, mostrerebbe il filesystem come NTFS, per la maggior parte delle persone visualizzerebbe ext2 che è il modo in cui so quale è perché le mie partizioni Android sono le uniche partizioni ext2 Ho).

Hmm ... Inizialmente avevo inteso correggere l'errore nella seconda riga della risposta più popolare e ho finito con un dannato tutorial completo su come aggiungere Android x86 a GRUB ...

    
risposta data Andrew Endominium 19.07.2015 - 23:25
0
  • Apri 40_custom :

    sudo -H gedit /etc/burg.d/40_custom
    
  • Aggiungi voce di menu Android x86:

    menuentry "Android-4.3-x86" --class android {
    set root='(hd*,msdos*)'
    linux /path/android-4.3-x86/kernel quiet root=/dev/ram0 androidboot.hardware=tx2500 acpi_sleep=s3_bios,s3_mode SRC=/path/android-4.3-x86 vga=788
    initrd /path/android-4.3-x86/initrd.img
    

    (imposta path e * come tua)

  • Aggiorna grub:

    sudo update-grub
    
risposta data kevy 12.01.2015 - 12:12
0

Nessuna delle altre risposte ha funzionato per me, quindi ho deciso di trovare personalmente la soluzione nei file forniti dall'immagine ISO con i file di installazione di Android-x86.

In Android-x86 LiveCD1/efi/boot/android.cfg ho trovato la seguente voce di menu:

set root=$android
linux $kdir/kernel root=/dev/ram0 androidboot.selinux=permissive buildvariant=userdebug $src [email protected]
initrd $kdir/initrd.img

La domanda era cosa dovevano essere i valori di $kdir e $android . Dopo aver montato la partizione su cui ho installato il sistema ( sda2 ), ho trovato il nome della directory - cm-x86-14.1-r2 .

[email protected] sono parametri aggiuntivi ( quiet nella mia soluzione) e $src può essere ignorato. Alla fine ho creato la seguente voce di GRUB:

set root='(hd0,2)'
linux /cm-x86-14.1-r2/kernel quiet root=/dev/ram0 androidboot.selinux=permissive buildvariant=userdebug
initrd /cm-x86-14.1-r2/initrd.img

E funziona.

    
risposta data banan3'14 18.05.2018 - 12:36
-1

Non preoccuparti di sda o sdc, è sempre (hd0, x) nel mio caso se hai installato Android x86 sul dispositivo di avvio. Vale a dire, nel mio caso, se il tuo dispositivo è elencato in os come ubuntu come / dev / sda o / dev / sdb, dovresti aggiungere (hd0, x), x è il numero della tua partizione x86 per android, nella grub 2 item, finché si avvia con lo stesso dispositivo che hai installato il tuo Android x86 (ad esempio, hai installato Android x86 in un drive USB chiamato U alla partizione 3, e U elencato nel tuo ubuntu come / dev / sdc, ma tu avvia da U, quindi dovresti aggiungere root = (hd0,3) ma non root = (hd2,3) nel grub).

    
risposta data CRE 29.10.2014 - 13:19

Leggi altre domande sui tag