web-dev-qa-db-fra.com

Démarrer Android avec GRUB, mais comment?

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 ça ne marche pas. Voici le lien:

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

J'ai utilisé ce Android sous Android-x86.org et la version Android-x86-4.4-r1.iso.

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

Que serait un script complet et fonctionnel 40_Customm?


Cela ne fonctionne pas si je crée un script dans Grub Customizer et le sauvegarde. Le menu de démarrage n'apparaît pas si j'ouvre à nouveau le personnaliseur Grub si le script est supprimé.

Ceci est 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 lance GRub Costumizer, Windows ne figure pas dans la liste?! Mais pourquoi?

8
VirusPLayer

À propos de Android x 86 6.0

L’affectation "EEEPC" concerne uniquement les EEEPC ASUS, ne l’utilisez que si vous en avez un. Sinon, utilisez Android_x86, ne pas utiliser generic_x86, vous serez bloqué lors de l’animation de démarrage et devrez le redémarrer en utilisant CTRL+F1 pour accéder au terminal et émettez reboot car l'interface graphique ne sera pas chargée. Je le sais parce que j'ai passé plusieurs heures à suivre de mauvais conseils 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

Ce fut la configuration finale qui a fonctionné pour moi sur une ancienne école SONY VAIO 64 bits sur une installation de triple démarrage.

'(0,4)' était l'emplacement de mon disque dur et de la partition Android x 86 a été installé sur, changez-le en conséquence. Vous n'avez pas besoin de votre UUID, vous n'avez besoin que de ce que j'ai indiqué ci-dessus, l'emplacement d'installation étant le seul changement.

2
Bus42

Ceci provient des développeurs XDA

Pour GRUB 1,97 - 1,99 & 2,00 +

  1. Pour faciliter la tâche, 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', tapez:

    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)': Modifiez le (hd0,4) en partiton Android x86 est installé. 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 indiqué ici correspond à l'UUID de la partition Android x86 installée. Vous devez le modifier en UUID correct. Vous pouvez facilement obtenir un UUID en créant une nouvelle entrée dans le personnaliseur GRUB, puis en cliquant sur l'onglet Options. sélectionnez l'option 'Linux' dans la liste déroulante. Vous verrez la liste déroulante, sélectionnez votre partition. Ouvrez l'onglet source, vous y verrez l'UUID.

  3. androidx86/: La racine de 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", qui 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, remplacez-le par androidboot_hardware. Voici la liste du matériel:

  • generic_x86: Si votre matériel n'est pas répertorié, utilisez cette
  • eeepc: ordinateurs portables EEEPC
  • asus_laptop: ordinateurs portables ASUS (ordinateurs portables ASUS pris en charge uniquement)
1
Mark Kirby

C'est une question vieille de dix mois, mais je me suis dit que j'aiderais quand même. C'est en fait une solution très simple. Je lance le correctif dans ma réponse au lieu de frapper "modifier" sur la réponse ci-dessus parce que je ne veux pas attendre l'examen par les pairs ou quoi que ce soit.

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

La question est en ligne deux. Il y a une sépulture parasite (`) au début de la deuxième ligne. Littéralement aussi simple que cela. Parfois, ce sont les choses les plus simples qui font que tout cesse de fonctionner.

J'imagine que vous avez soit trouvé un moyen d'ajouter Android x86 à GRUB, soit vous ne vous en souciez plus mais oui. Alors, voici le code correct:

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 mon fichier entier /etc/grub.d/40_custom (à l'exception du exec tail et des lignes mises en commentaire 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,msdos2 est la partition sur laquelle j'ai installé Android 4.4 R2 et a47b5fe5-8969-4774-be9c-72c32a3fd14b est l'UUID de ladite partition et hd0,msdos4 est la partition sur laquelle j'ai Android 5.0.2 (non officiel et très instable ) installé sur et d2edeae9-3dc8-41b1-b775-25d0a8028092 étant l'UUID de cette partition.

Pour moi, hd0,msdos2 est /dev/sdb2 et hd0,msdos4 est /dev/sdb4. Je ne suis pas sûr de ce qui suit, mais je pense que GRUB fait hd0, hd1, hd2, etc. dans un ordre différent de celui de Linux sda/hda, sdb/hdb, sdc/hdc, etc. Encore une fois, pas sûr, mais Je pense que GRUB le fait dans un ordre physique (comme ils seraient identifiés dans votre BIOS) et que Linux le fait de ... euhh ... d'une autre manière, je suppose. Encore une fois, pas sûr à ce sujet.

Mais oui, si vous avez besoin de savoir quelle partition dans GRUB format de partition (hdX,msdosY) votre partition Android est (que je vois être /dev/sda3), redémarrez votre PC et appuyez sur C pour aller à une ligne de commande. Ensuite, tapez (hd et appuyez sur l'onglet (l'onglet termine automatiquement les choses) et il listera tous les lecteurs en tant qu'options de saisie semi-automatique (pas à 100%, mais je suis certain à 70% qu'il n'affiche pas les lecteurs USB à moins que ce soient des lecteurs SATA connectés avec un Adaptateur USB vers SATA). Ensuite, tapez (hd0 et appuyez sur Tabulation. Toutes les partitions de hd0 seront répertoriées comme des options de saisie semi-automatique. Si vous avez plusieurs lecteurs, déterminer lequel /dev/sda3 est juste une question d’essai et d’erreur avec l’utilisation de la saisie semi-automatique sur (hd. Je ne suis pas sûr exactement à quoi ressemblent les résultats, mais je sais pertinemment que les résultats de (hd0 afficheront (évidemment) les identificateurs de partition de style GRUB pour toutes les partitions de hd0 (pour vous). , il s'agira de msdos1 à msdos7; dans GRUB, hd commence à 0 mais msdos commence à 1), les libellés de toutes les partitions de hd0 et le système de fichiers (habituellement, vous lancez Android x86 sur ext2 mais puisque vous l'avez sur NTFS, le système de fichiers est affiché sous la forme NTFS; pour la plupart des gens, il affiche ext2, ce qui explique comment je le connais car mes partitions Android sont les seules partitions ext2 que j'ai. ).

Hmm ... Au départ, j'avais l'intention de ne corriger que l'erreur de la deuxième ligne de la réponse la plus populaire et je me suis retrouvé avec un tutoriel presque complet sur la façon d'ajouter Android x86 à GRUB ...

0
Andrew Endominium

Tout cela était très utile, mais à la fin, il me manquait un petit morceau 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

D'après 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 que je suis trop nouveau pour l'avoir, mais une fois que j'ai tout compris, tout 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
0
Karen Schmidt
  • Ouvrez 40_custom:

    Sudo -H gedit /etc/burg.d/40_custom
    
  • Ajouter Android entrée de menu x 86:

    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
    

    (définissez path et * comme à vous)

  • Mettre à jour la nourriture:

    Sudo update-grub
    
0
kevy

Aucune autre réponse ne fonctionnant 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 Android-x86.

Dans Android-x86 LiveCD1/efi/boot/Android.cfg j'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 les valeurs de $kdir et $Android. Après avoir monté la partition sur laquelle j'ai installé le système (sda2), j'ai trouvé le nom du répertoire - cm-x86-14.1-r2.

$@ sont des paramètres supplémentaires (quiet dans ma solution) et $src peuvent être ignorés. Enfin, j'ai fait l'entrée 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.

0
banan3'14