Démarrer Android avec GRUB, mais comment?

9

J'ai un petit problème. J'ai sept partitions:

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

J'ai trouvé un tutoriel, mais j'ai essayé et cela ne fonctionne pas. Voici le lien:

http://www.webupd8.org/2012/03/03/how-to-dual-boot-android-x86-and-ubuntu.html

J'ai utilisé cet Android sur android-x86.org et la version android-x86-4.4-r1.iso.

Voici mon document 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}

Si je démarre mon PC, le gestionnaire de démarrage GRUB arrive et je peux choisir Android, mais il ne démarre pas Android. Le fond est violet et rien ne se passe.

Quel serait un 40_Custommscript complet et fonctionnel ?


Cela ne fonctionne pas si je crée un script dans Grub Customizer et l'enregistre. Il ne s'affiche pas dans le menu de démarrage si j'ouvre à nouveau le personnalisateur Grub, le script est supprimé.

Voici mon code:

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

Maintenant, j'ai un problème supplémentaire:

Si je démarre mon ordinateur portable, il affiche Ubuntu, Windows, Kali Linux et Android (ce qui ne fonctionne pas), mais si je démarre le GRub Costumizer, Windows n'est pas répertorié?! Mais pourquoi?

VirusPLayer
la source

Réponses:

3

Concernant Android x86 6.0

L'affectation "EEEPC" est uniquement pour les EEEPC ASUS, ne l'utilisez que si vous en avez un, sinon utilisez android_x86, n'utilisez pas generic_x86 , vous serez bloqué à l'animation de démarrage et devrez redémarrer en utilisant CTRL+ F1pour accéder au terminal et émettre en reboottant que L'interface graphique ne sera pas chargée. Je le sais parce que j'ai passé plusieurs heures à suivre de mauvais conseils, bien que bien intentionnés.

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

C'était la configuration finale qui a fonctionné pour moi sur une vieille école SONY VAIO 64 bits sur une configuration à triple démarrage.

'(0,4)'était l'emplacement de mon disque dur et de la partition sur laquelle Android x86 était installé, modifiez-le en conséquence. Vous n'avez pas besoin de votre UUID, vous avez seulement besoin exactement de ce que j'ai mis ci-dessus, votre emplacement d'installation étant le seul changement.

Bus42
la source
2

Ceci vient des développeurs XDA

Pour GRUB 1.97 - 1.99 & 2.00 +

  1. Pour le rendre facile, installez GRUB Customizer Tapez-les dans l'émulateur de terminal: Code:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt-get update
    sudo apt-get install grub-customizer
    
  2. Ouvrez le personnalisateur GRUB et créez une nouvelle entrée GRUB.

  3. Ouvrez l'onglet «Sources», saisissez-les:

    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
    

Voici ce qu'il faut changer:

  1. set root='(hd0,4)': Changez le (hd0,4) en partiton Android x86 est installé. Le hd0 signifie sda, donc si vous l'installez sur sdb, ce sera hd1 et ainsi de suite. Le hd0,4 signifie le numéro de partition, dans mon cas, hd0,4 signifie sda4. Donc, si vous l'installez sur sda6, ce sera hd0,6.

  2. --set=root e1f9de05-8d18-48aa-8f08-f0377f663de3: Le nombre aléatoire ici est l'UUID de la partition Android x86 est installé Vous devez le changer pour corriger l'UUID, vous pouvez facilement obtenir l'UUID en créant une nouvelle entrée dans GRUB Customizer puis allez dans l'onglet Options, puis sélectionnez l'option 'Linux' dans la liste déroulante. Vous verrez une liste déroulante de partition, sélectionnez votre partition. Ouvrez l'onglet source, vous y verrez l'UUID.

  3. androidx86/: La racine d'Android x86 Changez-la en votre racine Android x86. Vous pouvez voir quelle est votre racine Android x86 en accédant à la partition Android x86, et vous verrez un nom de dossier commençant par 'android', c'est la racine de votre Android x86

  4. androidboot.hardware: Votre appareil, bien sûr. Remarque: Si vous utilisez Android 2.3 - 4.0.3, changez-le en androidboot_hardware Voici la liste du matériel:

  • generic_x86 : Si votre matériel n'est pas répertorié, utilisez ceci
  • eeepc : Ordinateurs portables EEEPC
  • asus_laptop : Ordinateurs portables ASUS (ordinateurs portables ASUS pris en charge uniquement)
Mark Kirby
la source
J'ai dû utiliser un chemin absolu, c'est-à-dire /androidx86/kernel. Sinon, j'ai reçu une erreur sur le fichier introuvable.
banan3'14
1

C'est une question vieille de dix mois mais j'ai pensé que j'aiderais de toute façon. C'est en fait une solution très simple. Je jette le correctif dans ma réponse au lieu d'appuyer sur "modifier" sur la réponse ci-dessus parce que je ne veux pas attendre la révision par les pairs ou autre chose.

Quoi qu'il en soit, la réponse avec le plus de votes indique que vous devez utiliser le code suivant:

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

Le problème est en ligne deux. Il y a une tombe perdue (`) au début de la ligne deux. Littéralement aussi simple que ça. Parfois, c'est la chose la plus simple qui fait que tout cesse de fonctionner.

J'imagine que vous avez trouvé un moyen d'ajouter Android x86 à GRUB ou que vous ne vous en souciez plus, mais oui. Voici donc le bon code:

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

Voici l'intégralité de mon /etc/grub.d/40_customdossier (hors les exec taillignes commentées et commentées au début):

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
}

De toute évidence, hd0,msdos2est la partition sur laquelle j'ai installé Android 4.4 R2 et a47b5fe5-8969-4774-be9c-72c32a3fd14best l'UUID de ladite partition et hd0,msdos4est la partition sur laquelle j'ai Android 5.0.2 (non officiel et très instable) installé et d2edeae9-3dc8-41b1-b775-25d0a8028092étant l'UUID de cette partition.

Pour moi, hd0,msdos2c'est /dev/sdb2et hd0,msdos4c'est /dev/sdb4. Je ne sais pas sur ce qui suit, mais je pense que Grub ne hd0, hd1, hd2, etc. , dans un autre ordre que Linux ne sda/hda, sdb/hdb, sdc/hdc, etc. Encore une fois, pas sûr, mais je pense qu'il fait dans Grub ordre physique (comme ils le feraient être identifié dans votre BIOS) et Linux les fait de ... euh ... d'une autre manière, je suppose. Encore une fois, je n'en suis pas sûr.

Mais oui, si vous devez déterminer quelle partition au format de partition GRUB ( hdX,msdosY) est votre partition Android (ce que je vois /dev/sda3), redémarrez votre PC et appuyez sur C pour accéder à une ligne de commande. Ensuite, tapez (hdet appuyez sur tab (tabulation de saisie semi-automatique des choses) et il répertoriera ensuite tous les lecteurs en tant qu'options de saisie semi-automatique (pas sûr à 100% mais je suis sûr à 70% qu'il n'affiche pas les lecteurs USB à moins qu'il ne s'agisse de lecteurs SATA connectés à un port USB) vers l'adaptateur SATA). Tapez ensuite (hd0et appuyez sur tab et il répertoriera toutes les partitions hd0comme options de saisie semi-automatique. Si vous avez plusieurs lecteurs, déterminer lequel /dev/sda3est juste une question d'essais et d'erreurs avec l'utilisation de la saisie semi-automatique sur (hd. Je ne sais pas exactement à quoi ressemblent les résultats, mais je sais pertinemment que les résultats(hd0, affichera (évidemment) les identificateurs de partition de style GRUB pour toutes les partitions hd0(pour vous, ce serait msdos1fini msdos7; dans GRUB, hdcommence à 0 mais msdoscommence à 1), les étiquettes de toutes les partitions hd0et le système de fichiers ( Habituellement, vous lancez Android x86 sur ext2, mais comme vous l'avez sur NTFS, il afficherait le système de fichiers en NTFS; pour la plupart des gens, il afficherait ext2, c'est ainsi que je sais lequel, car mes partitions Android sont les seules partitions ext2. J'ai).

Hmm ... J'avais initialement prévu de ne corriger l'erreur que dans la ligne 2 de la réponse la plus populaire et je me suis retrouvé avec un putain de tutoriel complet sur la façon d'ajouter Android x86 à GRUB ...

Andrew Endominium
la source
1
  • Ouvert 40_custom:

    sudo -H gedit /etc/burg.d/40_custom
    
  • Ajouter une entrée de 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
    

    (ensemble pathet *comme le vôtre)

  • Mettre à jour grub:

    sudo update-grub
    
kevy
la source
0

Aucune des autres réponses n'a fonctionné pour moi, j'ai donc décidé de trouver la solution moi-même dans les fichiers fournis par l'image ISO avec les fichiers d'installation d'Android-x86.

Dans Android-x86 LiveCD1/efi/boot/android.cfgj'ai trouvé l'entrée de menu suivante:

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

La question était de savoir quelles devraient être $kdiret quelles $androiddevraient être les valeurs . Après avoir monté la partition, j'ai installé le système sur ( sda2), j'ai trouvé le nom du répertoire - cm-x86-14.1-r2.

$@sont des paramètres supplémentaires ( quietdans ma solution) et $srcpeuvent être ignorés. Enfin, j'ai fait l'entrée grub suivante:

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

Et il fonctionne.

banan3'14
la source
0

Tout cela a été très utile, mais à la fin, il me manquait un peu et cela ne fonctionnerait pas tant que je n'aurais pas ajouté toutes les parties.

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

Tel que publié par Banan3'14 avait raison, mais il manquait:

search --no-floppy --fs-uuid --set=root a47b5fe5-8969-4774-be9c-72c32a3fd14b

Peut-être que c'était implicite et je suis trop nouveau pour l'avoir compris, mais une fois que j'ai tout rassemblé, cela a fonctionné.

    set root='(hd0,2)'
 search --no-floppy --fs-uuid --set=root a47b5fe5-8969-4774-be9c-72c32a3fd14b
    linux /cm-x86-14.1-r2/kernel quiet root=/dev/ram0 androidboot.selinux=permissive buildvariant=userdebug
    initrd /cm-x86-14.1-r2/initrd.img
Karen Schmidt
la source
-1

Ne vous embêtez pas avec le sda ​​ou le sdc, c'est toujours (hd0, x) dans mon cas si vous avez installé l'androïde x86 sur le périphérique de démarrage. Cela veut dire, dans mon cas, que votre appareil soit répertorié dans os comme ubuntu comme / dev / sda ou / dev / sdb, vous devez ajouter (hd0, x), x est le numéro de votre partition android x86, dans le grub 2 élément, tant que vous démarrez avec le même appareil que vous avez installé votre Android x86 (par exemple, vous avez installé Android x86 dans un lecteur USB nommé U sur la partition 3, et U répertorié dans votre Ubuntu sous / dev / sdc, mais vous démarrer à partir de U, alors vous devez ajouter root = (hd0,3) mais pas root = (hd2,3) dans le grub).

CRE
la source
J'ai essayé d'améliorer ta réponse. Mais je ne peux pas en faire la tête ou la queue. Vous pouvez modifier votre réponse si vous cliquez sur le lien d' édition sous votre réponse.
MadMike