Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/01/2018, à 18:13

Arbiel

grub2 installé avec un système 64 bits compatible avec machine 32 ?

Bonjour

J'installe sur un disque amovible des distributions 32 et 64 bits. Comme chaque installation enregistre grub dans le MBR du disque, je me retrouve systématiquement avec le grub de la dernière installation, éventuellement une 64 bits. J'ai bien noté l'existence du paramètre "--target=TARGET" de "grub-install" dont la valeur par défaut est "i386-pc", mais cela ne me permet pas de conclure que la valeur utilisée par Ubiquity ne soit pas fonction de l'architecture cible.

Mon disque reste-t-il alors utilisable sur un ordinateur 32 bits ? Ou dois-je, après installation d'une 64 bits, systématiquement réinstaller grub, bien évidemment avec --target=i386-pc" ?

Arbiel

Dernière modification par Arbiel (Le 16/01/2018, à 18:14)


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#2 Le 16/01/2018, à 18:48

Babdu89

Re : grub2 installé avec un système 64 bits compatible avec machine 32 ?

Bonjour.

Je teste quelque chose et te réponds...

État des lieux.
Deux machines;
Une machine Bios 32 bits uniquement.
Le Bios ne démarre uniquement sur l'USB qu'avec Plop-Boot-Manager.
Une machine UEFI Bios_Legacy
Un hdd usb2 (/dev/sdb)  avec
Un Os en 32 bits (14.04.5)
Trois Os en 64 bits. (un 17.10 et deux 18.04)
L'Os en 32 bits est l'Os qui démarre par défaut sur le hdd usb.
Sur la machine 32 bits uniquement, c'est le seul Os qui démarre.

Depuis la machine UEFI/Bios_Legacy, en Bios_Legacy,  je démarre le hdd usb  sur un 18.04, et je réinstalle Grub dans cet Os.

bernard@bernard-Latitude-E4310:~$ sudo os-prober
[sudo] Mot de passe de bernard : 
/dev/sda1:Windows 7:Windows:chain
/dev/sda2:Ubuntu 14.04.5 LTS (14.04):Ubuntu:linux
/dev/sdb1:Ubuntu 14.04.5 LTS (14.04):Ubuntu1:linux
/dev/sdb6:Windows 7:Windows1:chain
/dev/sdb7:Ubuntu 17.10 (17.10):Ubuntu2:linux
/dev/sdb8:Ubuntu Bionic Beaver (development branch) (18.04):Ubuntu3:linux
bernard@bernard-Latitude-E4310:~$ 
bernard@bernard-Latitude-E4310:~$ sudo update-grub
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-4.13.0-17-generic
Image mémoire initiale trouvée : /boot/initrd.img-4.13.0-17-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Windows 7 trouvé sur /dev/sda1
Ubuntu 14.04.5 LTS (14.04) trouvé sur /dev/sda2
Ubuntu 14.04.5 LTS (14.04) trouvé sur /dev/sdb1
Windows 7 trouvé sur /dev/sdb6
Ubuntu 17.10 (17.10) trouvé sur /dev/sdb7
Ubuntu Bionic Beaver (development branch) (18.04) trouvé sur /dev/sdb8
fait
bernard@bernard-Latitude-E4310:~$ sudo grub-install /dev/sdb
Installation pour la plate-forme i386-pc.
Installation terminée, sans erreur.
bernard@bernard-Latitude-E4310:~$ 

Redémarrage du hdd usb sur la machine 32 bits uniquement avec Plop-Boot-Manager.
Affichage du menu Grub de l'Os 18.04 en 64 bits.
Seul l'Os 14.04 en 32 bits démarre.

@+.   Babdu89  .

Dernière modification par Babdu89 (Le 16/01/2018, à 19:53)


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#3 Le 16/01/2018, à 20:22

lucmars

Re : grub2 installé avec un système 64 bits compatible avec machine 32 ?

Ma foi, un OS 64bit sur un pc 32bit ça ne le fait pas.

Par contre on peut faire le contraire.


Gaulois Matter !

Hors ligne

#4 Le 16/01/2018, à 21:53

Babdu89

Re : grub2 installé avec un système 64 bits compatible avec machine 32 ?

Bonsoir.

lucmars a écrit :

Ma foi, un OS 64bit sur un pc 32bit ça ne le fait pas.

Par contre on peut faire le contraire.

Et bien oui, affichage de Grub de l'Os en 32 bits sur une machine 64 bits, tous les Os démarrent et fonctionnent sur cette machine.

@+.   Babdu89   .


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#5 Le 17/01/2018, à 00:50

Arbiel

Re : grub2 installé avec un système 64 bits compatible avec machine 32 ?

Bonsoir

@Babdu89

Tout d'abord, je te remercie pour le test que tu as fait.

Si je comprends bien, sur ton disque amovible, tu as réinstallé grub à partir d'un OS 64 bits, et la machine 32 bits peut toujours démarrer à partir du disque amovible "équipé" de ce nouveau grub.

Quand tu écris

Babdu89 a écrit :

je réinstalle Grub dans cet Os

je comprends que cela signifie que ton /boot/grub est dans la partition système du système 64 kbits, et que c'est là que core.img va chercher grub.cfg.

Cependant, je ne suis pas certain que cela réponde exactement à ma question.

1) Peux-tu me confirmer que Plop-Boot-Manager passe la main au grub du disque amovible pour lancer la machine, ce qui permettra d'affirmer que ce nouveau grub est compatible 32 bits ?
2) Comment as-tu réinstallé grub, par la commande grup-install ou par une nouvelle installation de ton OS 64 bits ? Ma question concernait l'installation par Ubiquity car grub-install installe par défaut un grub compatible 32 bits.

Merci encore pour ce test.

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#6 Le 17/01/2018, à 09:07

Nasman

Re : grub2 installé avec un système 64 bits compatible avec machine 32 ?

Il me semble que le démarrage jusqu'au menu de grub (en mode bios) s'effectue en 16/32 bits (des portions de code sont en 16 bits, d'autres en 32 bits).


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#7 Le 17/01/2018, à 10:36

Babdu89

Re : grub2 installé avec un système 64 bits compatible avec machine 32 ?

Bonjour.

Arbiel a écrit;
Si je comprends bien, sur ton disque amovible, tu as réinstallé grub à partir d'un OS 64 bits, et la machine 32 bits peut toujours démarrer à partir du disque amovible "équipé" de ce nouveau grub.

Oui; c'est exactement çà.

Arbiel a écrit;
Babdu89 a écrit :

   

je réinstalle Grub dans cet Os

je comprends que cela signifie que ton /boot/grub est dans la partition système du système 64 kbits, et que c'est là que core.img va chercher grub.cfg.

Oui, je pense çà aussi.

Arbiel a écrit;
Cependant, je ne suis pas certain que cela réponde exactement à ma question.

1) Peux-tu me confirmer que Plop-Boot-Manager passe la main au grub du disque amovible pour lancer la machine, ce qui permettra d'affirmer que ce nouveau grub est compatible 32 bits ?

Oui, Plop passe la main au grub , et c'est bien le Grub réinstallé sur l'Os en 64 bits qui s'affiche.

Arbiel a écrit;
2) Comment as-tu réinstallé grub, par la commande grup-install ou par une nouvelle installation de ton OS 64 bits ? Ma question concernait l'installation par Ubiquity car grub-install installe par défaut un grub compatible 32 bits.

Oui, c'est en commande (voir retour post#2) que j'ai réinstallé Grub dans l'Os en 64 bits depuis la machine UEFI/Bios_Legacy.

De toute manière à partir de la machine 32 bits je ne peux installer, faire démarrer que des systèmes en 32 bits.

@+.   Babdu89   .


J'ai découvert Ubuntu avec la 07.10.... Et alors?!...  Depuis je regarde de temps en temps si Windows marche toujours....

Hors ligne

#8 Le 17/01/2018, à 22:49

Arbiel

Re : grub2 installé avec un système 64 bits compatible avec machine 32 ?

Bonsoir

@Babdu89
Merci pour ce complément d'information.

@Nasman
Ta remarque me laisse perplexe.

En me demandant quel pouvait être l'intérêt de mélanger du code 32 bits et du code 64 bits (réduction du nombre total de composants logiciels, économie de compilation, …), j'en suis arrivé à me demander quel pouvait tout simplement être l'intérêt d'avoir une variante 64 bits. La plus grande rapidité d'exécution ne me semble pas pertinente ; par contre le volume supplémentaire d'une 64 bits me semble un inconvénient significatif, du moins dans le cas des installations sur des disques msdos.

Sauf à considérer que certains processeurs 64 bits soient incapables d'exécuter du code 32 bits.

Et j'en suis aussi arrivé à me demander quelles sont les bases sur lesquelles un processeur 64 bits capable d'exécuter du code 32 bits passe d'un fonctionnement à l'autre. As-tu des informations sur ce sujet ?

Arbiel

N.B. En continuant mes investigations, je suis allé consulté le manuel Grub dans lequel j'ai lu

Note that grub-install is actually just a shell script and the real task is done by other tools such as grub-mkimage

ce qui m'a conduit à

man grub-mkimage
…
       -O, --format=FORMAT
              generate  an  image  in  FORMAT  available  formats: i386-coreboot, i386-multiboot, i386-pc, i386-pc-pxe, i386-pc-eltorito, i386-efi,
              i386-ieee1275, i386-qemu, x86_64-efi, i386-xen, x86_64-xen, mipsel-yeeloong-flash, mipsel-fuloong2f-flash, mipsel-loongson-elf,  pow‐
              erpc-ieee1275,    sparc64-ieee1275-raw,    sparc64-ieee1275-cdcore,    sparc64-ieee1275-aout,    ia64-efi,    mips-arc,   mipsel-arc,
              mipsel-qemu_mips-elf, mips-qemu_mips-flash, mipsel-qemu_mips-flash, mips-qemu_mips-elf, arm-uboot, arm-efi, arm64-efi

paramètre que je suppose recevoir la valeur non documentée dans grub-install de "--target=TARGET". Dans la liste de ces valeurs possibles, je n'ai rien vu qui puisse correspondre à l'installation d'un grub 64 bits sur un disque msdos.

Il semblerait donc que sur un PC dont le disque est msdos, il n'est pas possible d'installer un grub 64 bits (forte contrainte d'encombrement qui disparaîtrait en UEFI ?)

Dernière modification par Arbiel (Le 17/01/2018, à 23:37)


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#9 Le 18/01/2018, à 13:19

Nasman

Re : grub2 installé avec un système 64 bits compatible avec machine 32 ?

Arbiel a écrit :

Et j'en suis aussi arrivé à me demander quelles sont les bases sur lesquelles un processeur 64 bits capable d'exécuter du code 32 bits passe d'un fonctionnement à l'autre. As-tu des informations sur ce sujet ?

Ce sont les instructions assembleur qui permettent de passer d'un mode à l'autre. Pour info la zone exécutable du mbr est codée en 16 bits (puisqu'utilisant les interruptions bios qui fonctionnent en 16 bits en mode réel).
Si le code est considéré en mode 64 bits, un préfix d'instruction permet de considérer l'instruction suivante sur 32 bits au lieu de 64 bits.
Je ne connais pas les "opcodes" par coeur mais dans le principe tu auras par exemple
Code 64 bits
mov rax, 0xaabbccddeeff1122 (codé en b8 22 11 ff ee dd cc bb aa - je ne suis pas sur du code b8 pour l'instruction mov) - charge le registre 64 bits rax avec la valeur 64 bits qui suit
mov eax, 0xaabbccdd (codé en 67 b8 dd cc bb aa) - le prefix 67 permet de préciser que l'instruction qui suit est sur 32 bits - charge le registre 32 bits eax avec 0xaabbccdd

En code 32 bits
mov eax, 0xaabbccdd sera codé en b8 dd cc bb aa
mov rax, 0xaabbccddeeff1122 sera codé en 66 b8 22 11 ff ee dd cc bb aa - le prefix 66 permet d'exécuter l'instruction 64 bits en mode 32 bits (à la condition que le processeur le permette


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#10 Le 20/01/2018, à 12:35

Arbiel

Re : grub2 installé avec un système 64 bits compatible avec machine 32 ?

Bonjour

@Nasman

Je te remercie pour ces informations qui m'amènent à te demander une précision.

Les deux codes 66 et 67 portent-ils sur la seule instruction qui les suit, ou ne sont-ils pas plutôt des instructions de changement d'état du processeur ?

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne