1 votes

Double démarrage d'Android x86 avec LineagOS x86 sur un disque dur externe

J'installe sur le disque dur interne d'un ordinateur portable que j'utilise comme disque externe à partir du port USB.

Le disque est un disque dur de 500 Go, mais il contient des partitions de 50 Go, 50 Go et 50 Go, le reste n'étant pas alloué pour le moment.

J'ai Android x86 ( Android-x86_64-9.0-rc2.iso ) installé sur la première partition (sdb1) et j'ai aussi installé EFI GRUB2 pendant l'installation d'Android

J'ai ensuite installé LineagOS x86 ( cm-x86_64-14.1-r2.iso ) sur la deuxième partition (50 Go) et je lui ai également demandé d'installer EFI GRUB2 pendant l'installation de LineagOS.

Le GRUB de LineageOS semble avoir écrasé le GRUB d'Android-x86 et maintenant je ne peux pas démarrer dans Android-x86 à partir de l'écran de démarrage du BIOS, même si ses fichiers sont tous présents dans la première partition.

Y a-t-il un moyen d'éditer le GRUB pour LineagOS et d'ajouter une entrée pour démarrer Android-x86 depuis la première partition ?

J'ai également un disque dur interne SATA dans l'ordinateur portable avec Windows 10. Je ne veux pas que les installations amorçables sur le disque dur externe affectent cette installation de Windows ou le disque interne de quelque manière que ce soit, mais il semble que l'EFI GRUB2 qui a été installé lors de l'installation d'Android-x86 et LineageOS a été installé sur le disque dur interne. Cela reste acceptable car cela ne semble pas avoir affecté l'installation de Windows ou sa procédure de démarrage de quelque manière que ce soit, mais je n'ai pas d'expérience avec GRUB et quoi que je doive faire, je veux être sûr que cela n'affectera pas l'installation de Windows 10 sur mon disque dur interne.

Pour résumer :

sdb1 : Android-x86 sdb2 : LineageOS, amorçable en utilisant son GRUB (ce menu grub s'affiche lorsque je sélectionne l'entrée correspondante dans le menu d'amorçage du BIOS)

Comment puis-je modifier ce menu GRUB pour qu'il pointe également vers l'installation Android-x86 ? Est-il possible de le faire à partir de Windows ?

1voto

Pour commencer, il serait utile que vous puissiez fournir quelques journaux avec adb. Pour le firmware x86, pour obtenir un dump de ce qui se passe, il suffit de lancer la commande suivante adb logcat à partir d'une invite de commande élevée. Pour le rendre plus simple à lire, bien qu'il doive s'agir d'un vidage et qu'il soit assez simple, vous pouvez essayer d'ajouter le paramètre -v (verbose) : abd logcat -v long

Avec un peu de chance, le démon adbd a démarré car il fait partie de la tâche d'init.

Cependant, s'il ne l'a pas fait et qu'il ne peut pas obtenir un logcat, vous pouvez essayer de sauter une partie du processus de démarrage pour aller plus loin dans le processus de démarrage en arrêtant le zygote par :

De la Site web des développeurs x86 :

Arrêtez zygote pour qu'il s'exécute automatiquement :

Allez dans le fichier vendor/whatever_device_oem/eeepc/init.rc, changez les lignes suivantes :

service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server socket zygote stream 666 onrestart write /sys/android_power/request_state wake onrestart write /sys/power/state on

à :

service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server socket zygote stream 666 onrestart write /sys/android_power/request_state wake onrestart write /sys/power/state on disabled oneshot

A ce stade, il faut espérer que l'arrêt du zygote permettra de faire communiquer les choses une fois que le davlik aura démarré, puisque c'est ce qui fait démarrer les choses dans la machine virtuelle.

Essayez d'extraire les journaux à l'aide de la commande logcat mentionnée ci-dessus.

Lorsque vous voulez démarrer zygote manuellement après avoir obtenu ou si elle échoue alors lancez la commande depuis un shell adb start zygote ou si vous ne pouvez pas obtenir un shell adb, vous pouvez simplement essayer à partir d'un émulateur de terminal start zygote si cela échoue, arrêtez et rétablissez les changements dans le vendor/whatever_device_oem/eeepc/init.rc à partir de l'is booted, ou dans l'iso, ou avant la re-compilation.

J'espère qu'à ce stade, vous pourrez envoyer une sortie de vidage afin que nous puissions déterminer ce qui se passe.

Il semble qu'il s'agisse d'un problème d'ordre de démarrage, du chargeur d'amorçage principal au chargeur d'amorçage secondaire, et ainsi de suite. Cela pourrait également être l'un des autres chemins pertinents nécessaires au démarrage.

Avec cela, après avoir parcouru vos longues étapes détaillées que vous avez essayé pour le débogage. Ce qui m'a conduit à ma longue réponse détaillée pour dire que les journaux sont essentiels au débogage. Du haut de ma tête, je dis qu'il s'agit très probablement d'un problème de chemin qui peut être corrigé en utilisant la fonction set à partir d'un système basé sur linux ou d'une invite de commande ou d'un émulateur de système similaire à linux. (Clé d'ailleurs lors de la sauvegarde d'une brique de grub-recovery).

Lancez le set pour voir ce que le système reconnaît et considère comme la voie à suivre.

Voyez ce qui est affiché et comparé à ce qui est nécessaire tel que set Root, cmdpath, kernel, boot, grub, vmlinux ou aboot, et beaucoup d'autres choses requises pour le démarrage mais pas les mêmes : laissez le dispositif et l'OEM, la version du système d'exploitation ou les variantes.

La syntaxe est la suivante :

set {envvar=value}

Simplifié :

Set option = (Value)/the/chosen/path

Pour supprimer/supprimer une variable d'environnement, il suffit de nous unset au lieu de la commande set.

Le manuel technique de GN'U explique ce qui semble être votre problème :

https://www.gnu.org/software/grub/manual/grub/html_node/set.html#set

La procédure de démarrage normale de GRUB consiste à définir la variable d'environnement 'prefix' sur un à une valeur définie dans l'image de base par grub-install, à faire correspondre la variable 'Root', à charger le module le module 'normal' à partir du préfixe, et l'exécution de la commande 'normal' (voir Section 16.3.51 [normal], page 77). Cette commande est responsable de la lecture du fichier '/boot/grub/grub.cfg ning le menu, et de faire toutes les choses utiles que GRUB est supposé faire.

Commencez vos solutions de débogage avec le set pour mettre en place les variables de démarrage appropriées. Si vous devez supprimer une variable qui a été définie, utilisez la commande unset commandement.

Si ce n'est pas le cas, nous avons besoin de journaux pour découvrir ce qui se passe dans le processus de démarrage.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X