Depuis la version 20.10, on peut constater qu’il est de plus en plus difficile d’installer une distribution Ubuntu en mode Legacy. La question a déjà été traitée dans ce sujet par malbo pour cette version 20.10. Il a constaté l’évolution de l’installation de grub : ce qui est vrai pour Ubuntu le sera probablement pour ses dérivées. La version 21.04 suit malheureusement le même chemin.
Je fais rarement des tests sur les distributions non officielles, mais cette fois, je vais faire une exception : tester l’installation d’une Ubuntu 21.04 en mode Legacy, sur un disque mbr (dos).
1. Installation automatique d’Ubuntu 21.04
Je ne détaille pas cette possibilité qui est bien expliquée par malbo sur la version 20.10. L’installateur Ubiquity ne laisse guère le choix. Soit « effacer le disque intégralement », ce qui convertit le disque au format gpt, et donc conduit à une installation UEFI ; soit passer par « autre chose », et accepter la création d’une partition efi, ce qui conduit au même résultat. On a un exemple de ce résultat dans le rapport boot-info de ce sujet .
On constate que le PC fonctionne en uefi :
BIOS is EFI-compatible, and is setup in EFI-mode for this installed-session.
Le disque est pourtant au format dos :
fdisk -l (filtered): ___________________________________________________________
Disk sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Disk identifier: 0x5de0dddf
Type d'étiquette de disque : dos
Boot Start End Sectors Size Id Type
sda1 2048 48828219 48826172 23.3G 83 Linux
sda2 48830462 1953523711 1904693250 908.2G 5 Extended
sda5 48830464 52733951 3903488 1.9G 82 Linux swap / Solaris
sda6 52736000 1947267249 1894531250 903.4G 83 Linux
sda7 * 1947269120 1953523711 6254592 3G ef EFI (FAT-12/16/32)
Enfin, la partition EFI est activée par un drapeau boot, et pourtant elle est incluse dans une partition étendue. Tout ceci est assez surprenant. Et pourtant, c’est fonctionnel. Mais Windows, en dual-boot, doit peu aimer cette situation.
2. Tests manuels d’installation
2.1. Forçage de l’installation en mode Legacy sans partition efi
Le Bios réglé en mode Legacy, avec un disque dos. Je force la création d’une petite partition NTFS pour simuler l’idée que le disque n’est pas vierge, et je crée avec Gparted une partition ext4 que j’associe à / pour mon installation d’Ubuntu. Je passe outre un message d’avertissement me signalant l’absence de partition EFI, ce qui me conduit à une erreur GRUB en fin d’installation. Je teste néanmoins un redémarrage, et là, surprise, Ubuntu 21.04 démarre. Le retour de quelques commandes propose ceci (car boot-repair est inopérant) :
test@test-virtual-machine:~$ sudo od -tx1z -Ax -N 512 /dev/sda |grep -i rub
000180 7d e8 2e 00 cd 18 eb fe 47 52 55 42 20 00 47 65 >}.......GRUB .Ge<
test@test-virtualmmachine:~$ cat /etc/issue
Ubuntu Hirsute Hippo (development branch) \n \l
test@test-virtual-machine:~$ [ -d /sys/firmware/efi ] && echo "Session EFI" || echo "Session non-EFI"
Session non-EFI
test@test-virtual-machine:~$ sudo fdisk -l
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sda1 * 2048 4028415 4026368 1,9G 7 HPFS/NTFS/exFAT
/dev/sda2 4028416 62914559 58886144 28,1G 83 Linux
test@test-virtual-machine:~$ dpkg --get-selections | grep grub
grub-common install
grub-efi-amd64-bin install
grub-efi-amd64-signed install
grub-gfxpayload-lists install
grub-pc install
grub-pc-bin install
grub2-common install
Un grub a bien été installé dans le mbr, malgré le message d'erreur. Les versions Legacy et UEFI de Grub sont installées, et l'installation fonctionne sans partition efi. Mais elle n'est pas allée à son terme. On peut prévoir des soucis à venir.
2.2. Acceptation de la partition efi, avec création manuelle en partition primaire
Toujours en mode Legacy, sur disque ms-dos, avec une partition NTFS présente, je crée cette fois la partition efi souhaitée (et je force son installation en primaire via « autre chose« , contrairement à ce qui est proposé par défaut pour être sûr de booter également en UEFI). L’installation se fait sans heurt.
Quelques commandes en Legacy :
Test@test-virtual-machine:~$ sudo od -tx1z -Ax -N 512 /dev/sda |grep -i rub
000180 7d e8 2e 00 cd 18 eb fe 47 52 55 42 20 00 47 65 >}.......GRUB .Ge<
test@test-virtual-machine:~$ [ -d /sys/firmware/efi ] && echo "Session EFI" || echo "Session non-EFI"
Session non-EFI
test@test-virtual-machine:~$ sudo parted -l
Table de partitions : msdos
Drapeaux de disque :
Numéro Début Fin Taille Type Système de fichiers Fanions
1 1049kB 2063MB 2062MB primary ntfs
2 2064MB 32,1GB 30,0GB extended
5 2064MB 32,1GB 30,0GB logical ext4
3 32,1GB 32,2GB 149MB primary fat32 démarrage, esp
test@test-virtual-machine:~$ dpkg --get-selections | grep grub
grub-efi-amd64-signed install
grub-pc install
On constate que les deux versions de Grub sont installées, et qu'un Grub est toujours présent dans le mbr. Donc, Ubuntu peut fonctionner en mode Legacy.
Quelques commandes en UEFI:
test@test-virtual-machine:~$ [ -d /sys/firmware/efi ] && echo "Session EFI" || echo "Session non-EFI"
Session EFI
test@test-virtual-machine:~$ sudo efibootmgr -v
BootCurrent: 0000
BootOrder: 0004,0000,0001,0002,0003
Boot0000* EFI VMware Virtual SCSI Hard Drive (0.0) PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)/SCSI(0,0)
Boot0001* EFI VMware Virtual SATA CDROM Drive (1.0) PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x4,0x0)/Sata(1,0,0)
Boot0004* ubuntu HD(3,MBR,0x72e662bb,0x3bb8800,0x47000)/File(\EFI\ubuntu\shimx64.efi)
La même installation fonctionne également dans le mode UEFI. Une entrée « Boot4 Ubuntu » s’est créée spontanément au premier démarrage en UEFI. L’installation est donc opérationnelle sur un PC hybride. Mais la partition efi reste montée dans fstab, ce qui signifie qu’on ne peut supprimer la partition efi dans opérer une modification.
2.3. Acceptation de la partition efi, avec création automatique en partition logique
L’installation par défaut proposant la création d’une partition EFI logique, au sein d’une partition étendue. Il n’est pas nécessaire de tester une nouvelle fois en Legacy, car l’installation est identique dans ce mode. La question est : cela bootera-t-il en UEFI ?
Test@test-virtual-machine:~$ sudo efibootmgr -v
BootCurrent: 0000
BootOrder: 0005,0004,0000,0001,0002,0003
Boot0000* EFI VMware Virtual SCSI Hard Drive (0.0) PciRoot(0x0)/Pci(0x15,0x0)/Pci(0x0,0x0)/SCSI(0,0)
Boot0001* EFI VMware Virtual SATA CDROM Drive (1.0) PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x4,0x0)/Sata(1,0,0)
Boot0004* ubuntu HD(3,MBR,0x72e662bb,0x3bb8800,0x47000)/File(\EFI\ubuntu\shimx64.efi)
Boot0005* ubuntu HD(2,MBR,0x72e662bb,0x3d7ffe,0x37e0802)/HD(2,MBR,0x0,0x3b2a000,0x8e800)/File(\EFI\ubuntu\shimx64.efi)
test@test-virtual-machine:~$ sudo ls /boot/efi/EFI/Boot
BOOTX64.EFI fbx64.efi mmx64.efi
test@test-virtual-machine:~$ sudo fdisk -l
Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sda1 2048 4028415 4026368 1,9G 7 HPFS/NTFS/exFAT
/dev/sda2 4030462 62621695 58591234 27,9G 5 Étendue
/dev/sda5 4030464 62035967 58005504 27,7G 83 Linux
/dev/sda6 * 62038016 62621695 583680 285M ef EFI (FAT-12/16/32)
Sur la machine virtuelle, tout s’est très bien passé, même avec une partition efi logique. L’entrée « Boot5 Ubuntu » s’est créée. Mais c’est sur Vmware, dont c’est très « théorique ». Avec les dual-boot Windows et les Nvram plombées, ça promet de nombreux plantages. En voici un premier exemple : https://bugs.launchpad.net/ubuntu/+source/usb-creator/+bug/1912044
3. Une installation complète réussie en Legacy traditionnel
L’idée est d’aboutir au résultat du point 2.1, mais en finalisant l’installation. Première opération, lancer le live-usb d’Ubuntu en mode Legacy-bios, et choisir « essayer Ubuntu« . On commence par préparer son disque pour une installation traditionnelle :
3.1. Création d’une partition unique en ext4, sur disque ms-dos
L’opération assez classique est faite depuis Gparted, intégré au live Ubuntu :
3.2. Installation d’Ubuntu sans Grub
Au lieu de cliquer sur l’icone d’installation, je choisis de passer par un Terminal, et de taper :
ubiquity -b
Cette commande indique à Ubiquity qu’on ne veut pas installer Grub tout de suite. On suit les indications habituelles, jusqu’à la proposition « Autre chose« , qu’on sélectionne. Là, on indique à Ubiquity qu’on veut que la partition racine soit liée à la partition ext4 qu’on a préalablement créée :
Il suffit de presser « continuer » pour aboutir à cet avertissement : on l’ignore tout simplement en continuant malgré tout.
Et on a eu bien raison, car l’installation va cette fois à son terme, sans encombre.
Le souci, c’est qu’on n’a aucun grub pour démarrer, même si les fichiers nécessaires sont visiblement bien présents pour l’installation.
Il nous faut donc finit d’installer grub. Je choisis de le faire par le biais d’un chroot en « continuant à tester » avec le live d’Ubuntu.
3.3. Mise en place de Grub Legacy dans le mbr
Le principe est de monter les outils pour installer grub, et on peut le faire de deux manières. En redémarrant sur Super Grub 2 disk qui saura lancer notre installation sans grub, ou en chrootant depuis le live USB qu’on n’a pas quitté. Je choisis la seconde option en m’appuyant sur ceci. La procédure est fiable, et fonctionne plutôt sans surprise.
La première étape conduit à ceci :
Il ne reste plus qu’à installer créer le fichier grub.cfg et à installer grub dans le mbr ; deux commandes suffisent :
La troisième commande vérifie que grub a bien été ajouté dans le mbr. Et au redémarrage, nous obtenons une Ubuntu 21.04 toute propre et installée en mode Legacy.
Bilan : pas de partition fat32 active parasite, pas de fichier fstab à modifier, et pas d’entrées « uefi » dans le menu grub. On est dans du classique.