Inicializando o Android com o GRUB, mas como?

8

Eu tenho um pequeno problema. Eu tenho sete partições:

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

Eu encontrei um tutorial, mas eu tentei isso e não funciona. Aqui está o link:

link

Eu usei este Android do android-x86.org e a versão android-x86-4.4-r1.iso.

Este é o meu 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 eu iniciar meu PC, o gerenciador de inicialização do GRUB é exibido e posso escolher o Android, mas ele não inicializa o Android . O fundo é roxo e nada acontece.

Qual seria um script 40_Customm completo e funcionando?

Não funciona se eu fizer um script no Grub Customizer e salvá-lo. Ele não aparece no menu de inicialização se eu abrir o Grub Customizer novamente, o script é removido.

Este é o meu código:

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

Agora eu tenho um problema extra:

Se eu iniciar meu laptop, ele mostra o Ubuntu, o Windows, o Kali Linux e o Android (o que não funciona), mas se eu iniciar o GRub Costumizer, o Windows não está listado ?! Mas por quê?

    
por VirusPLayer 28.08.2014 / 17:39

6 respostas

2

Em relação ao Android x86 6.0

A atribuição "EEEPC" é apenas para ASUS EEEPCs, use-a apenas se você tiver uma, caso contrário use android_x86 , não use generic_x86 , você ficará preso na animação de inicialização e terá para reiniciar usando CTRL + F1 para acessar o terminal e emitir reboot , pois a GUI não será carregada. Eu sei disso porque passei várias horas seguindo conselhos ruins, embora bem intencionados.

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

Esta foi a configuração final que funcionou para mim em uma velha escola SONY VAIO de 64 bits em uma configuração de inicialização tripla.

'(0,4)' foi a localização do meu disco rígido e partição do Android x86 foi instalado, altere-o de acordo. Você não precisa do seu UUID, você só precisa exatamente o que eu coloquei acima com a sua localização de instalação sendo a única mudança.

    
por Bus42 22.06.2016 / 23:51
1

Isto é de XDA Developers

Para o GRUB de 1,97 a 1,99 & 2,00 +

  1. Para facilitar, instale o GRUB Customizer Digite estes no emulador de terminal: Código:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt-get update
    sudo apt-get install grub-customizer
    
  2. Abra o personalizador do GRUB e crie uma nova entrada no GRUB.

  3. Abra a guia "Fontes", digite:

    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
    

Veja o que mudar:

  1. set root='(hd0,4)' : Change the (hd0,4) to partiton Android x86 is installed. The hd0 means sda, so if you install it to sdb, it'll be hd1 and so on. The hd0,4 means the partition number, in my case, hd0,4 means sda4. So if you install it on sda6, it'll be hd0,6.

  2. --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3 : The random number here is the UUID of partition Android x86 is installed You must change it to correct UUID, you can easily got UUID by creating new entry in GRUB Customizer then go to Options tab, then select the 'Linux' option in dropdown. You'll see partition dropdown, select your partition. Open the source tab, you'll see the UUID there.

  3. androidx86/ : The root of Android x86 Change it into your Android x86 root. You can see what's your Android x86 root by navigating to Android x86 partition, and you'll see a folder name started with 'android', that's the root of your Android x86

  4. androidboot.hardware : Your device, of course. Note : If you're using Android 2.3 - 4.0.3, change it to androidboot_hardware Here's the list of hardware :

  • generic_x86 : Se o seu hardware não estiver listado, use este
  • eeepc : laptops EEEPC
  • asus_laptop : Portáteis ASUS (apenas computadores portáteis ASUS suportados)
por Mark Kirby 28.08.2014 / 17:45
0

Esta é uma pergunta de dez meses, mas eu achei que ajudaria mesmo assim. Na verdade, é uma correção muito simples. Estou jogando a correção na minha resposta, em vez de clicar em "editar" na resposta acima, porque não quero esperar por revisão por pares ou qualquer outra coisa.

De qualquer forma, a resposta com mais votos indica que você deve usar o seguinte código:

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

A questão está na linha dois. Há uma sepultura perdida (') no início da segunda linha. Literalmente tão simples quanto isso. Às vezes é a coisa mais simples que faz com que tudo pare de funcionar.

Eu imagino que você tenha encontrado uma maneira de adicionar o Android x86 ao GRUB ou simplesmente não se importa mais, mas sim. Então aqui está o código correto:

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

Aqui está todo o meu arquivo /etc/grub.d/40_custom (excluindo as linhas exec tail e comentadas no começo):

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
}

Obviamente, hd0,msdos2 é a partição em que tenho o Android 4.4 R2 instalado e a47b5fe5-8969-4774-be9c-72c32a3fd14b é o UUID da partição e hd0,msdos4 é a partição que tenho Android 5.0.2 (não-oficial e altamente instável) instalada e d2edeae9-3dc8-41b1-b775-25d0a8028092 sendo o UUID dessa partição.

Para mim, hd0,msdos2 é /dev/sdb2 e hd0,msdos4 é /dev/sdb4 . Não tenho certeza do seguinte, mas acho que o GRUB usa hd0 , hd1 , hd2 , etc. em uma ordem diferente da do Linux sda/hda , sdb/hdb , sdc/hdc etc. Novamente, não tenho certeza, mas acho que o GRUB faz isso em ordem física (como eles seriam identificados no seu BIOS) e o Linux os faz em ... uhh ... de alguma outra forma, eu acho. Novamente, não tenho certeza disso.

Mas sim, se você precisar descobrir qual partição no formato de partição do GRUB ( hdX,msdosY ) sua partição Android é (que eu vejo é /dev/sda3 ), reinicie seu PC e pressione C para ir para uma linha de comando. Em seguida, digite (hd e clique na guia (a guia autocomplete coisas) e listará todas as unidades como opções de preenchimento automático (não 100% de certeza, mas tenho 70% de certeza de que ele não exibe unidades USB, a menos que elas estejam conectadas) com um adaptador USB para SATA). Em seguida, digite (hd0 e clique na guia e listará todas as partições em hd0 como opções de autocompletar. Se você tiver várias unidades, descobrir qual /dev/sda3 é apenas uma questão de tentativa e erro ao usar o preenchimento automático em (hd . Não tenho certeza exatamente de como são os resultados, mas sei que os resultados de (hd0 exibirão (obviamente) os identificadores de partições no estilo GRUB para todas as partições em hd0 (para você, seria msdos1 a msdos7 ; no GRUB, hd começa em 0, mas msdos começa em 1), os rótulos de todas as partições em hd0 e o sistema de arquivos ( Normalmente você joga Android x86 no ext2, mas desde que você o tenha em NTFS, ele mostrará o sistema de arquivos como NTFS; para a maioria das pessoas ele exibiria ext2, que é como eu sei qual é porque minhas partições Android são as únicas partições ext2 Eu tenho).

Hmm ... Inicialmente eu pretendia apenas corrigir o erro na segunda linha da resposta mais popular e acabei com um tutorial quase completo sobre como adicionar o Android x86 ao GRUB ...

    
por Andrew Endominium 19.07.2015 / 23:25
0
  • Abra 40_custom :

    sudo -H gedit /etc/burg.d/40_custom
    
  • Adicionar entrada de menu do 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
    

    (defina path e * como seu)

  • Atualizar o grub:

    sudo update-grub
    
por kevy 12.01.2015 / 12:12
0

Nenhuma das outras respostas funcionou para mim, então decidi encontrar a solução eu mesmo nos arquivos fornecidos pela imagem ISO com arquivos de instalação do Android-x86.

Em Android-x86 LiveCD1/efi/boot/android.cfg achei a seguinte entrada de menu:

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

A questão era quais seriam os valores de $kdir e $android . Após montar a partição na qual instalei o sistema ( sda2 ), encontrei o nome do diretório - cm-x86-14.1-r2 .

$@ são parâmetros adicionais ( quiet na minha solução) e $src podem ser ignorados. Finalmente, fiz a seguinte entrada no 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 funciona.

    
por banan3'14 18.05.2018 / 12:36
-1

Não se preocupe com o sda ou sdc, é sempre (hd0, x) no meu caso, se você instalou o android x86 para o dispositivo de inicialização. Isso é para dizer, no meu caso, se o seu dispositivo está listado em como o Ubuntu como / dev / sda ou / dev / sdb, você deve adicionar (hd0, x), x é o número da sua partição android x86, no grub 2 item, desde que você inicialize com o mesmo dispositivo que instalou o seu android x86 (por exemplo, você instalou o android x86 em uma unidade USB chamada U na partição 3 e U listado em seu ubuntu como / dev / sdc, mas você boot de U, então você deve adicionar root = (hd0,3) mas não root = (hd2,3) no grub).

    
por CRE 29.10.2014 / 13:19