L’installateur de la version 19.04 est source de nombreux problèmes lors de la création de dual-boot, si on ne prête pas attention aux choix que l’on fait. En effet, si on possède un Windows installé en mode Legacy et qu’on démarre sans le vouloir son liveUSB en mode UEFI, on risque fort de se retrouver dans une situation très problématique.
On voit ceci dans de nombreux sujets, à l’image de celui-ci : https://forum.ubuntu-fr.org/viewtopic.php?id=2040793
Le détail de l’erreur commise par l’installateur est essentiellement visible dans les lignes suivantes du rapport boot-info :
Disk /dev/sda: 223.6 GiB, 240057409536 bytes, 468862128 sectors
Disklabel type: dos
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 206847 204800 100M 7 HPFS/NTFS/exFAT
/dev/sda2 206848 293165441 292958594 139.7G 7 HPFS/NTFS/exFAT
/dev/sda3 * 293167104 294215679 1048576 512M ef EFI (FAT-12/16/32)
/dev/sda4 294217726 468860927 174643202 83.3G 5 Extended
/dev/sda5 294217728 468860927 174643200 83.3G 83 Linux
sda3: __________________________________________________________________________
File system: vfat
Boot sector type: FAT32
Boot files: /EFI/ubuntu/grub.cfg /EFI/BOOT/fbx64.efi
/EFI/BOOT/mmx64.efi /EFI/ubuntu/grubx64.efi
/EFI/ubuntu/mmx64.efi /EFI/ubuntu/shimx64.efi
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
=================== PARTITIONS & DISKS:
sda5 : sda, not-sepboot, grubenv-ok grub2, signed grub-pc grub-efi , update-grub, 64, with-boot, is-os, not--efi--part, fstab-without-boot, fstab-has-goodEFI, no-nt, no-winload, no-recov-nor-hid, no-bmgr, notwinboot, apt-get, grub-install, with--usr, fstab-without-usr, not-sep-usr, standard, farbios, notbiosboot, .
On voit qu’une partition efi a été créée malgré le format « dos » de ce disque, qu’elle ne contient que des fichiers de démarrage pour Ubuntu, et que la version installée utilise un grub efi signé… Windows n’est pas détecté et ne boote plus, ce qui est démontré par os-prober. Bref, c’est une situation délicate à résoudre, si on veut faire les choses proprement.
I. Exemple d’installation ratée
On va partir d’un W8 installé en mode Legacy, et dans lequel on a tout préparé pour faire une installation « sans problème » :
On voit dans la capture d’écran que le disque est bien au mode ms-dos, et qu’on a libéré un espace suffisant pour l’installation d’Ubuntu. On va volontairement faire une erreur pour l’installation et démarrer sur le live-cd en mode Uefi et non Legacy.
Les commandes suivantes montrent bien que notre démarrage de Xubuntu se fait en mode non-UEFI (donc Legacy), et l’installation « à-côté de Windows » va pouvoir se faire.
L’installation se fait de manière tout à fait banale.
Plusieurs modifications ont été faites lors de l’installation (outre les réparations de boot-repair) :
1. La partition de démarrage de Windows n’est plus bootable
/dev/sda2 616,448 1,081,343 464,896 7 NTFS / exFAT / HPFS
2. C’est bien un Grub efi qui est utilisé
sda6 : sda, not-sepboot, grubenv-ok grub2, signed grub-pc grub-efi , update-grub, 64, with-boot, is-os, not--efi--part, fstab-without-boot,
3. Rien n’a été écrit dans le mbr
=> Windows 7/8/2012 is installed in the MBR of /dev/sda.
4. Le PC boote bel et bien en UEFI malgré un disque ms-dos
=================== UEFI/Legacy mode: BIOS is EFI-compatible, and is setup in EFI-mode for this installed-session.
5. Et Windows n’est pas détecté
### BEGIN /etc/grub.d/30_os-prober ### ### END /etc/grub.d/30_os-prober ###
Une tentative de réparation de grub en l’état est même inopérante, puisqu’il propose de réinstaller un grub-efi, croyant que l’installation doit fonctionner en mode EFI :
Mais le plus grave, c’est que même si je supprime mon Linux tel qu’il est installé, mon Windows ne bootera pas (ce qui est logique puisque la partition de démarrage qui était active ne l’est plus). Il n’en est plus capable sans passer par des réparations. On confirme en forçant le redémarrage en mode Legacy :
Sur un vrai PC, on aurait probablement un message signalant l’absence de système d’exploitation, voire une redirection vers le bios. Il est donc nécessaire de réparer tout cela. Et la première chose à faire, c’est de réparer Windows.
II. Réparation de Windows
Pour réparer Windows, on va démarrer à nouveau sur le liveUSB, en mode Legacy (de préférence) ou en mode Uefi. C’est finalement sans grande importance. Le rapport boot-info nous a montré ceci :
sda2: __________________________________________________________________________
File system: ntfs
Boot sector type: Windows 8/2012: NTFS
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files: /bootmgr /Boot/BCD
sda5: __________________________________________________________________________
File system: vfat
Boot sector type: FAT32
Boot sector info: No errors found in the Boot Parameter Block.
Operating System:
Boot files: /EFI/ubuntu/grub.cfg /EFI/BOOT/bkpbootx64.efi
/EFI/BOOT/bootx64.efi /EFI/BOOT/fbx64.efi
/EFI/BOOT/mmx64.efi /EFI/ubuntu/grubx64.efi
/EFI/ubuntu/mmx64.efi /EFI/ubuntu/shimx64.efi
C’est donc la partition sda2 qui contient les fichiers de démarrage de Windows, et sda5 qui est la partition efi. On va commencer par supprimer cette partition efi sda5 et remettre le drapeau boot sur la partition sda2. Le plus simple est d’utiliser gparted pour cela :
La partition Windows, bien qu’indiquée en état d’erreur par gparted, ne pose pas de problème, et le redémarrage suivant (en mode Legacy, puisqu’on n’a pas touché au bios) permet à nouveau de retrouver son Windows comme au départ :
Le principal est fait. Windows refonctionne normalement.
III. La réparation peut maintenant prendre quatre directions si on veut un dual-boot :
1. Réparer Grub avec boot-repair depuis le Live-CD :
On préférera la méthode dite avancée, pour être sûr de ce qu’on fait :

On demande à boot-repair de purger toutes les traces de grub.

Et on fait remettre le nouveau grub sur sda :
La réparation faite, il suffira de redémarrer pour obtenir un grub correct proposant une entrée fonctionnelle pour chaque OS.
2. Réparer Grub depuis le Live-CD via un chroot.
Il faudra en premier lieu supprimer les paquets efi précédemment installés, et réinstaller grub-PC à la place. Je ferai une démo à l’occasion.
3. Faire la même manipulation depuis un démarrage avec SuperGrub2disk.
Ca évite de chrooter. C’est en gros la technique que j’ai utilisée ici, à partir de « On réinstalle grub » :
https://forum.ubuntu-fr.org/viewtopic.php?pid=18967821#p18967821
4. Réinstaller Ubuntu dans le bon mode.
C’est le choix que j’ai fait ici, par commodité. Je pars du principe que le problème apparaissant après une installation ratée, on n’a pas grand chose à perdre à passer par une réinstallation. .







