#1 Le 13/12/2011, à 08:19
- malbo
[Résolu] multi-boot sur DD en MSDOS et DD en GPT
Mes essais sont réalisés avec VirtualBox 4.1.6 dans un OS hôte Ubuntu 11.10. Je peux configurer le "Bios" du PC virtuel en mode UEFI en cochant la case "Activer EFI" dans la configuration du système mais dans ce que je decris ci-dessous, j'ai décoché cette case afin d'être en mode BIOS/MBR.
Edit le 18-7-2012 : NON, c'est une connerie ce que j'écris là (voir post #3) >>> Je viens de découvrir que Ubuntu 11.04 installé sur un DD (disque dur) formaté en MSDOS est capable de détecter (et proposer dans son menu Grub) d'autres installations de Ubuntu qui sont sur un DD formaté en GPT et qui ont été installées en mode UEFI. J'ai seulement fait une commande de mise à jour de grub (sudo update-grub) depuis une session de cette Ubuntu 11.04 et toutes les autres installations ont été détectées et ajoutées dans le fichier grub.cfg.
Extrait du fichier grub.cfg de l'installation Ubuntu 11.04 qui se trouve sur le DD MSDOS :
menuentry 'Ubuntu, avec Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos5)'
search --no-floppy --fs-uuid --set=root 1a7f4515-a7c2-43ce-8d92-4bb2b9276770
linux /boot/vmlinuz-2.6.38-8-generic root=UUID=1a7f4515-a7c2-43ce-8d92-4bb2b9276770 ro quiet splash vt.handoff=7
initrd /boot/initrd.img-2.6.38-8-generic
}
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root FE743D36743CF34F
chainloader +1
}
menuentry "Ubuntu, avec Linux 3.0.0-14-generic (on /dev/sdc6)" --class gnu-linux --class gnu --class os {
insmod part_gpt
insmod ext2
set root='(/dev/sdc,gpt6)'
search --no-floppy --fs-uuid --set=root 6dfe68ed-572e-4169-8a79-37b591b42add
linux /boot/vmlinuz-3.0.0-14-generic root=UUID=6dfe68ed-572e-4169-8a79-37b591b42add ro quiet splash vt.handoff=7
initrd /boot/initrd.img-3.0.0-14-generic
}
Pour alléger, je n'ai copié ci-dessus que Ubuntu 11.10 (noyau 3.0.0-14) mais le fichier grub.cfg contient bien toutes les installations de Ubuntu qui sont sur le DD GPT qui est vu comme le disque sdc. Il va sans dire que tout est fonctionnel : si je choisis de démarrer sur "Ubuntu, avec Linux 3.0.0-14-generic (on /dev/sdc6)", je me retrouve dans cette installation qui fonctionne en mode EFI (avec grub-efi) avec la partition EFI montée comme il se doit, exactement comme si j'avais démarré le PC en mode UEFI directement sur cette installation, alors que le PC est en mode BIOS/MBR.
Dernière modification par malbo (Le 18/07/2012, à 13:05)
Hors ligne
#2 Le 13/12/2011, à 09:06
- malbo
Re : [Résolu] multi-boot sur DD en MSDOS et DD en GPT
PROPOSITION INVERSE par rapport au post #1 : démarrer le PC en mode EFI sur l'installation de Ubuntu 11.10 qui se trouve sur le DD GPT et arriver à booter l'installation de Ubuntu 11.04 qui se trouve sur le DD MSDOS. Et bien ça fonctionne aussi.
Voici un extrait du grub.cfg avec seulement les parties intéressantes à mon avis :
menuentry 'Ubuntu, avec Linux 3.0.0-14-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod gzio
insmod part_gpt
insmod ext2
set root='(hd2,gpt6)'
search --no-floppy --fs-uuid --set=root 6dfe68ed-572e-4169-8a79-37b591b42add
linux /boot/vmlinuz-3.0.0-14-generic root=UUID=6dfe68ed-572e-4169-8a79-37b591b42add ro quiet splash vt.handoff=7
initrd /boot/initrd.img-3.0.0-14-generic
}
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root FE743D36743CF34F
chainloader +1
}
menuentry "Ubuntu, avec Linux 2.6.38-8-generic (on /dev/sda5)" --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root 1a7f4515-a7c2-43ce-8d92-4bb2b9276770
linux /boot/vmlinuz-2.6.38-8-generic root=UUID=1a7f4515-a7c2-43ce-8d92-4bb2b9276770 ro quiet splash vt.handoff=7
initrd /boot/initrd.img-2.6.38-8-generic
}
Donc si je choisis "Ubuntu, avec Linux 2.6.38-8-generic (on /dev/sda5)" dans le menu présenté par le grub de Ubuntu 11.10, j'arrive bien à démarrer Ubuntu 11.04 qui se trouve sur le DD MSDOS.
Il est à noter que si je choisis "Windows 7 (loader) (on /dev/sda1)", c'est à dire une installation de Win7 réalisée en mode BIOS/MBR, ça ne fonctionne pas. J'ai le message suivant qui s'affiche :
erreur : invalid EFI file path.
Pressez une touche pour continuer...
En somme Grub fonctionne bien pour Ubuntu mais pour arriver à démarrer sur Windows 7, il est nécessaire de démarrer le PC en mode BIOS/MBR (c'est à dire, comme dans le post #1).
Dernière modification par malbo (Le 13/12/2011, à 09:30)
Hors ligne
#3 Le 18/07/2012, à 13:01
- malbo
Re : [Résolu] multi-boot sur DD en MSDOS et DD en GPT
J'ai dû m'emballer un peu dans la manip du post #1 parce que j'ai fait une manip du même genre aujourd'hui et c'est beaucoup moins le fun.
Oui, en démarrant en mode Bios en utilisant le Grub d'une installation Ubuntu faite en mode Bios (c'est le cas identique au post #1 sauf que mes install actuelles sont des Ubuntu 12.04), j'arrive bien en passant par le menu Grub à sélectionner et à démarrer une autre installation Ubuntu faite en mode EFI mais il y a un gros loup : le Ubuntu est démarré en mode Bios (alors qu'il est vital que cet Ubuntu soit démarré en mode EFI).
Depuis la session de ce Ubuntu, si je passe la commande :
dmesg | grep EFI
je n'obtiens pas le résultat attendu dans ce tuto ( je suis dans le cas n°1 donc je suis en mode Bios)
Et autre indice (c'est nouveau, ça vient de sortir. C'est un complément de la vérif précédente) : si je passe la commande "dir /sys/firmware", j'obtiens le résultat suivant :
dir /sys/firmware
acpi memmap
alors que je devrais voir un dossier "efi" en plus des dossiers acpi et memmap.
Si je démarre comme il se doit - en mode EFI - le même Ubuntu, j'obtiens ceci :
dir /sys/firmware
acpi efi memmap
Là, je vois bien le dossier nommé "efi"
Tout ça pour dire que pour démarrer un Ubuntu installé en EFI, il faut passer par le mode EFI du PC.
Dernière modification par malbo (Le 18/07/2012, à 13:16)
Hors ligne