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 ...