Archives mensuelles : septembre 2019

Convertir Xubuntu UEFI vers Legacy sans redémarrage

La conversion d’une version installée d’une Xubuntu UEFI sur disque GPT vers une installation Legacy sur disque DOS peut, contre toute attente, être réalisée depuis une version installée sans aucun redémarrage. Tout se fait depuis une série de commandes via un Terminal.

Attention, cette démonstration est réalisée sur un PC virtuel. Les manipulations n’étant pas sans risque, avec un vrai PC, toutes les sauvegardes nécessaires doivent être réalisées au préalable. Et rien ne garantit la réussite du processus.

1. État initial : installation uefi

Un rapport boot-info est le meilleur moyen de voir la situation de départ : rapport boot-info initial.

Le résultat témoigne d’une installation UEFI classique sur un disque au  format GPT (GUID) :

 => No boot loader is installed in the MBR of /dev/sda.

sda1: __________________________________________________________________________

    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/fbx64.efi 
                       /EFI/BOOT/mmx64.efi /EFI/ubuntu/grubx64.efi 
                       /EFI/ubuntu/mmx64.efi /EFI/ubuntu/shimx64.efi

GUID Partition Table detected.

Et le boot en UEFI sur Grub  est bien contrôlé par la NVram :

=================== efibootmgr -v
BootCurrent: 0005
BootOrder: 0005,0001,0002,0004,0000,0003
Boot0000* EFI VMware Virtual SCSI Hard Drive (0.0)	PciRoot(0x0)/Pci(0x10,0x0)/SCSI(0,0)
Boot0001* EFI VMware Virtual SATA CDROM Drive (1.0)	PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x5,0x0)/Sata(1,0,0)
Boot0002* EFI Network	PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x1,0x0)/MAC(000c29852ae6,1)
Boot0003* EFI Internal Shell (Unsupported option)	MemoryMapped(11,0x537cb000,0x53b55fff)/FvFile(c57ad6b7-0515-40a8-9d21-551652854e37)
Boot0004* cd-rom	PciRoot(0x0)/Pci(0x11,0x0)/Pci(0x5,0x0)/Sata(1,0,0)/CDROM(1,0xde8,0x1d40)/File(efibootbootx64.efi)
Boot0005* ubuntu	HD(2,GPT,3e6d692a-8258-4cd4-ad13-16c3a9ec9a1f,0x800,0x7b000)/File(EFIubuntushimx64.efi)

=================== UEFI/Legacy mode:
BIOS is EFI-compatible, and is setup in EFI-mode for this installed-session.
SecureBoot maybe enabled. (maybe sec-boot, Veuillez indiquer ce message à boot.repair@gmail.com)

L’idée est donc de convertir tout cela en installation en Legacy sans redémarrer le PC, et ce pour éviter de passer par un chroot.

2.  Phase de suppression

2.1  Suppression de Grub version EFI

On fait le point sur ce que l’installation en UEFI a installé en matière de fichiers Grub et Shim :

test@test-virtual-machine:~$ dpkg --get-selections | grep grub
grub-common                    install
grub-efi-amd64                    install
grub-efi-amd64-bin                install
grub-efi-amd64-signed                install
grub2-common                    install

test@test-virtual-machine:~$ dpkg --get-selections | grep shim
shim                        install
shim-signed                    install
shimmer-themes                    install
test@test-virtual-machine:~$

L’objectif est de ne conserver que  grub-common et grub2-common :

test@test-virtual-machine:~$ sudo apt purge grub-efi-amd64-signed shim-signed shim
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
  mokutil
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
Les paquets suivants seront ENLEVÉS :
  grub-efi-amd64-signed* shim* shim-signed*
0 mis à jour, 0 nouvellement installés, 3 à enlever et 219 non mis à jour.
Après cette opération, 9 037 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 199189 fichiers et répertoires déjà installés.)
Suppression de shim-signed (1.39+15+1533136590.3beb971-0ubuntu1) ...
Suppression de grub-efi-amd64-signed (1.115+2.02+dfsg1-12ubuntu2) ...
Suppression de shim (15+1533136590.3beb971-0ubuntu1) ...
(Lecture de la base de données... 199161 fichiers et répertoires déjà installés.)
Purge des fichiers de configuration de shim-signed (1.39+15+1533136590.3beb971-0ubuntu1) ...

La commande sudo apt autoremove étant demandée, on s’exécute :

test@test-virtual-machine:~$ sudo apt autoremove
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
  mokutil
0 mis à jour, 0 nouvellement installés, 1 à enlever et 219 non mis à jour.
Après cette opération, 71,7 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 199161 fichiers et répertoires déjà installés.)
Suppression de mokutil (0.3.0+1538710437.fb6250f-0ubuntu2) ...
Traitement des actions différées (« triggers ») pour man-db (2.8.5-2) ...
test@test-virtual-machine:~$

Un bilan de la situation montre qu’il reste encore des choses à supprimer :

test@test-virtual-machine:~$ dpkg --get-selections | grep grub
grub-common                    install
grub-efi-amd64                    install
grub-efi-amd64-bin                install
grub2-common                    install

test@test-virtual-machine:~$ dpkg --get-selections | grep shim
shimmer-themes                    install

On s’exécute à nouveau :

test@test-virtual-machine:~$ sudo apt purge grub-efi-amd64
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  grub-efi-amd64-bin grub2-common
Veuillez utiliser « sudo apt autoremove » pour les supprimer.
Les paquets suivants seront ENLEVÉS :
  grub-efi-amd64*
0 mis à jour, 0 nouvellement installés, 1 à enlever et 219 non mis à jour.
Après cette opération, 187 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 199155 fichiers et répertoires déjà installés.)
Suppression de grub-efi-amd64 (2.02+dfsg1-12ubuntu2) ...
(Lecture de la base de données... 199151 fichiers et répertoires déjà installés.)
Purge des fichiers de configuration de grub-efi-amd64 (2.02+dfsg1-12ubuntu2) ...
test@test-virtual-machine:~$ 

test@test-virtual-machine:~$ sudo apt purge grub-efi-amd64-bin
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Le paquet suivant a été installé automatiquement et n'est plus nécessaire :
  grub2-common
Veuillez utiliser « sudo apt autoremove » pour le supprimer.
Les paquets suivants seront ENLEVÉS :
  grub-efi-amd64-bin*
0 mis à jour, 0 nouvellement installés, 1 à enlever et 219 non mis à jour.
Après cette opération, 6 548 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 199151 fichiers et répertoires déjà installés.)
Suppression de grub-efi-amd64-bin (2.02+dfsg1-12ubuntu2) ...
test@test-virtual-machine:~$

Ce qui conduit au résultat qui nous satisfait enfin :

test@test-virtual-machine:~$ dpkg --get-selections | grep grub
grub-common                    install
grub2-common                   install

2.1. Suppression de la partition efi

Celle-ci n’ayant plus aucune utilité, on peut la supprimer. Fdisk fait parfaitement l’affaire :

test@test-virtual-machine:~$ sudo fdisk /dev/sda

Bienvenue dans fdisk (util-linux 2.33.1).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.

Commande (m pour l'aide) : p
Disque /dev/sda : 20 GiB, 21474836480 octets, 41943040 secteurs
Disk model: VMware Virtual S
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 5265C1C1-D016-45AD-9443-44E588498AA9

Périphérique  Début      Fin Secteurs Taille Type
/dev/sda1      2048   505855   503808   246M Système EFI
/dev/sda2    505856 41881599 41375744  19,7G Système de fichiers Linux

Commande (m pour l'aide) : d
Numéro de partition (1,2, 2 par défaut) : 1

La partition 1 a été supprimée.

Commande (m pour l'aide) : w
La table de partitions a été altérée.
Failed to remove partition 1 from system: Périphérique ou ressource occupé

The kernel still uses the old partitions. The new table will be used at the next reboot. 
Synchronisation des disques.

test@test-virtual-machine:~$

Un message d’erreur signale l’échec de la suppression, qui est pourtant bien réelle. Le résultat d’un sudo fdisk -l confirme que les choses se sont bien passées :

test@test-virtual-machine:~$ sudo fdisk -l
Disque /dev/sda : 20 GiB, 21474836480 octets, 41943040 secteurs
Disk model: VMware Virtual S
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : gpt
Identifiant de disque : 5265C1C1-D016-45AD-9443-44E588498AA9

Périphérique  Début      Fin Secteurs Taille Type
/dev/sda2    505856 41881599 41375744  19,7G Système de fichiers Linux
test@test-virtual-machine:~$

2.3. Suppression du point de montage de la partition efi

La partition efi n’existant plus, il convient de supprimer ce qui pourrait engendrer un erreur. Pour la démonstration, j’utilise l’éditeur nano. On se contente d’ajouter un # devant le point de montage de la partition efi :

test@test-virtual-machine:~$ sudo nano /etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=22e895b7-f8bb-45a0-83c2-51e005a030b0 /               ext4    errors=remoun$
/swapfile                                 none            swap    sw           $
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
# partition efi
#UUID=70C8-C8A7 /boot/efi       vfat    defaults        0       1

A ce stade, on a supprimé tout ce qui est inutile. On peut passer à la conversion du disque :

3. Conversion du disque au format dos (mbr)

L’outil gdisk est idéal pour cette étape. Rappel : les commandes sont simples, mais non sans risque. Des sauvegardes doivent avoir été effectuées au préalable.

test@test-virtual-machine:~$ sudo gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): r

Recovery/transformation command (? for help): g

MBR command (? for help): w

Converted 1 partitions. Finalize and exit? (Y/N): y
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
test@test-virtual-machine:~$

On vérifie le résultat. Le disque est bien repassé au mode dos-mbr :

test@test-virtual-machine:~$ sudo fdisk -l
Disque /dev/sda : 20 GiB, 21474836480 octets, 41943040 secteurs
Disk model: VMware Virtual S
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x00000000

Périphérique Amorçage  Début      Fin Secteurs Taille Id Type
/dev/sda2             505856 41881599 41375744  19,7G 83 Linux
test@test-virtual-machine:~$

Il ne reste plus qu’à réinstaller un grub cohérent pour notre nouvelle configuration.

4. Réinstallation de Grub-pc

4.1. Installation du paquet grub-pc

test@test-virtual-machine:~$ sudo apt install grub-pc
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés : 
  grub-gfxpayload-lists grub-pc-bin
Paquets suggérés :
  desktop-base
Les NOUVEAUX paquets suivants seront installés :
  grub-gfxpayload-lists grub-pc grub-pc-bin
0 mis à jour, 3 nouvellement installés, 0 à enlever et 219 non mis à jour.
Il est nécessaire de prendre 1 044 ko dans les archives.
Après cette opération, 3 617 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] o
Réception de :1 http://fr.archive.ubuntu.com/ubuntu disco/main amd64 grub-pc-bin amd64 2.02+dfsg1-12ubuntu2 [902 kB]
Réception de :2 http://fr.archive.ubuntu.com/ubuntu disco/main amd64 grub-pc amd64 2.02+dfsg1-12ubuntu2 [138 kB]
Réception de :3 http://fr.archive.ubuntu.com/ubuntu disco/main amd64 grub-gfxpayload-lists amd64 0.7 [3 658 B]
1 044 ko réceptionnés en 2s (548 ko/s)        
Préconfiguration des paquets...
Sélection du paquet grub-pc-bin précédemment désélectionné.
(Lecture de la base de données... 198875 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../grub-pc-bin_2.02+dfsg1-12ubuntu2_amd64.deb ...
Dépaquetage de grub-pc-bin (2.02+dfsg1-12ubuntu2) ...
Sélection du paquet grub-pc précédemment désélectionné.
Préparation du dépaquetage de .../grub-pc_2.02+dfsg1-12ubuntu2_amd64.deb ...
Dépaquetage de grub-pc (2.02+dfsg1-12ubuntu2) ...
Sélection du paquet grub-gfxpayload-lists précédemment désélectionné.
Préparation du dépaquetage de .../grub-gfxpayload-lists_0.7_amd64.deb ...
Dépaquetage de grub-gfxpayload-lists (0.7) ...
Paramétrage de grub-pc-bin (2.02+dfsg1-12ubuntu2) ...
Paramétrage de grub-gfxpayload-lists (0.7) ...
Paramétrage de grub-pc (2.02+dfsg1-12ubuntu2) ...

A mi-installation, une fenêtre s’ouvre demandant où placer grub. On choisit /dev/sda :

 ┌───────────────────────┤ Configuration de grub-pc ├────────────────────────┐
 │ Le paquet grub-pc est en cours de mise à jour. Ce menu permet de choisir  │ 
 │ pour quels périphériques vous souhaitez exécuter la commande              │ 
 │ grub-install automatiquement.                                             │ 
 │                                                                           │ 
 │ Il est en général recommandé d'exécuter grub-install automatiquement,     │ 
 │ afin d'éviter la situation où l'image de GRUB est désynchronisée avec     │ 
 │ les modules de GRUB ou le fichier grub.cfg.                               │ 
 │                                                                           │ 
 │ Si vous n'avez pas la certitude du périphérique utilisé comme             │ 
 │ périphérique d'amorçage par le BIOS, il est en général conseillé          │ 
 │ d'installer GRUB sur l'ensemble des périphériques.                        │ 
 │                                                                           │ 
 │ Veuillez noter que GRUB peut également être installé sur les secteurs     │ 
 │ d'amorçage de partitions. Certaines partitions où cela pourrait être      │ 
 │ nécessaire sont indiquées ici. Cependant, cela impose que GRUB utilise    │ 
 │ le mécanisme « blocklist », ce qui le rend moins fiable et n'est donc     │ 
 │ pas recommandé.                                                           │ 
 │                                                                           │ 
 │ Périphériques où installer GRUB :                                         │ 
 │                                                                           │ 
 │    [x] /dev/sda (21474 Mo; VMware_Virtual_S)                              │ 
 │    [ ] /dev/sda2 (21184 Mo; VMware_Virtual_S)                             │ 
 │                                                                           │ 
 │                                                                           │ 
 │                                  <Ok>                                     │ 
 │ __________________________________________________________________________

L’installation se termine ainsi :

Creating config file /etc/default/grub with new version
Installation pour la plate-forme i386-pc.
Installation terminée, sans erreur.
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-5.0.0-27-generic
Image mémoire initiale trouvée : /boot/initrd.img-5.0.0-27-generic
Image Linux trouvée : /boot/vmlinuz-5.0.0-13-generic
Image mémoire initiale trouvée : /boot/initrd.img-5.0.0-13-generic
fait
Traitement des actions différées (« triggers ») pour man-db (2.8.5-2) ...
test@test-virtual-machine:~$

4. 2. Installation de grub et mise à jour

test@test-virtual-machine:~$ sudo grub-install /dev/sda
Installation pour la plate-forme i386-pc.
Installation terminée, sans erreur.

test@test-virtual-machine:~$ sudo update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-5.0.0-27-generic
Image mémoire initiale trouvée : /boot/initrd.img-5.0.0-27-generic
Image Linux trouvée : /boot/vmlinuz-5.0.0-13-generic
Image mémoire initiale trouvée : /boot/initrd.img-5.0.0-13-generic
fait
test@test-virtual-machine:~$

5. Vérifications de l’installation

5.1. Vérifications avant un redémarrage

C’est le moment de faire un nouveau rapport boot-info avant de redémarrer le PC : boot-info avant redémarrage.

On constate que plusieurs choses ont changé :

  • Un grub a bel et bien été ajouté dans le mbr
============================= Boot Info Summary: =============================== 
=> Grub2 (v2.00) is installed in the MBR of /dev/sda and looks at sector 1 of the 
same hard drive for core.img. core.img is at this location and looks for 
(,msdos2)/boot/grub. It also embeds following components:
  • Le disque est bien reconnu comme un disque dos dans grub.cfg
set root='hd0,msdos2'

Mais, on a encore de nombreuses traces de notre démarrage en UEFI, notamment les points de montage et l’enregistrement du démarrage :

================================ Mount points: ================================= 
Device Mount_Point Type Options 
/dev/sda1 /boot/efi vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro) 
/dev/sda2 / ext4 (rw,relatime,errors=remount-ro)

=================== UEFI/Legacy mode: 
BIOS is EFI-compatible, and is setup in EFI-mode for this installed-session.

Mais Grub a compris que notre installation est passée en mode Legacy

=================== Suggested repair 
The default repair of the Boot-Repair utility would reinstall the grub2 of sda2 
into the MBR of sda. 
Grub-efi would not be selected by default because: no-win-efi

Si on souhaitait réparer, ce qui n’est pas nécessaire, la réparation serait satisfaisante. Nous nous contenterons de redémarrer.

5.2. Vérification après redémarrage

Le redémarrage se fait bien sûr en mode Legacy, après modification du bios. Un nouveau rapport boot-info nous dévoile la situation finale : boot-info final.

  •  Xubuntu est bien exécuté en mode Legacy
=================== UEFI/Legacy mode: 
This installed-session is not in EFI-mode. 
SecureBoot disabled

sda	: not-GPT,	BIOSboot-not-needed,	has-no-EFIpart, 	not-usb,	not-mmc, has-os,	2048 sectors * 512 bytes

Les traces de l’installation en uefi ont intégralement disparu.

 

Convertir une Xubuntu 19.04 de mbr à gpt

Si on a un PC récent qui supporte l’UEFI et qu’on a installé son Linux en Legacy, on peut être intéressé par une conversion d’un disque dos (mbr) vers le format gpt, mais on n’a pas forcément envie de réinstaller son OS.

Avec Windows, il existe une commande « clé en main », mais avec Ubuntu, Comment faire ?

1. Situation de départ

On part d’une installation d’Ubuntu 19.04 64 bits faite en Legacy sur un disque au format dos (autrement dit mbr). Je n’ai pas jugé nécessaire de faire un rapport boot-info, et je me suis contenté d’une capture d’écran de ce que gparted présente dans le cas d’une installation simple :

Mon image

On note que l’installation ne comporte qu’une seule partition ext4 (contenant le système et le /home), et que le disque est au format dos (mbr).

2. Les modifications depuis le liveCD

Aucune modification sérieuse n’étant possible depuis une version, installée, on va redémarrer sur le liveCD (en mode Legacy ou UEFI, c’est sans importance pour l’instant) afin de procéder aux principales modifications.

2.1. Conversion du disque au format gpt

Pour cette opération, on va utiliser le partitionneur gdisk. On lui associe le disque concerné, en l’occurrence /dev/sda :

sudo gdisk /dev/sda

Une série d’informations nous signale que nous sommes en présence d’un disque mbr. Une commande est attendue. Un simple « w » confirmé par un « y » va suffire à convertir le disque au format gpt :

Mon image

 

Et c’est tout ! Le disque est instantanément converti au format GPT par gdisk.

2.2. Ajout d’une partition EFI

2.2.1. Rétrécissement de la partition Ubuntu

Il est bien clair que la conversion n’aurait aucun intérêt sans partition EFI. Il va falloir la créer. L’option choisie ici est de la placer en tête de disque. Avec gparted, on va donc rétrécir la partition Ubuntu par la gauche.

Mon image

Les fichiers étant déplacés, l’opération dure un certain temps, comme le montre la seconde capture d’écran :

Mon image

2.2.2. Création d’une partition fat32

Sur l’espace libre du disque qui est bel et bien passé au format gpt, on va choisir de créer une partition  principale formatée en fat32.

Mon image

Elle recevra automatiquement l’identifiant /dev/sda2 de manière assez logique, ce que montre la capture d’écran qui suit.

2.2.3. Attribution du statut efi à la partition fat32

Lorsque c’est fait, on lui attribue par clic droit les drapeaux boot et esp (ils sont conjoints) :

Mon image

Notre disque est prêt sur le plan de sa structure d’ensemble. Mais pour l’instant, notre Ubuntu n’est toujours pas capable de fonctionner en UEFI.

2.3. Ajout de l’UUID de la partition efi dans le fichier fstab

Pour éviter de passer ultérieurement par un montage manuel de la partition efi dans /boot/efi, il sera judicieux de l’automatiser tout de suite. La partition efi créée ayant reçu automatiquement une UUID (une idenfication)  : autant s’en servir. La commande suivante est là pour nous renseigner :

blkid

L’UUID de la partition /dev/sda2 étant 3C87-F1BE (Cf. image suivante), il va falloir copier cette référence, et l’ajouter au fichier /etc/fstab. Pour ce faire, on va créer un nouveau dossier, monter la partition Ubuntu dans ce dossier, et ouvrir le fichier fstab avec l’éditeur de texte de sa distribution (ici, c’est « mousepad« ) en administrateur en saisissant :

sudo mkdir /mnt/sda1
sudo mount /dev/sda1 /mnt/sda1
sudo mousepad /mnt/sda1/etc/fstab

Et dans le fichier texte qui s’est ouvert, on ajoute les deux lignes suivantes :

# partition efi
UUUID=3C87-F1BE      /boot/efi      /vfat     /defaults     0      1

On indique en fait au système qu’il  doit monter automatiquement cette partition dans /boot/efi à chaque démarrage d’Ubuntu. L’ensemble donne ceci :

Mon image

A ce stade, notre disque et notre système sont prêts pour la dernière étape : la modification de grub.

3. Passage de Grub pour Legacy à Grub pour UEFI

3.1. Démarrage du système en UEFI via un outil externe

Maintenant, il faut modifier son bios pour le passer du mode Legacy au mode UEFI (ici, chaque marque étant particulière, il est impossible de donner une explication sinon que ça se joue généralement dans l’onglet « boot »).

Lorsque c’est fait, on doit pouvoir lancer son LiveCD en mode UEFI. Mais ce moyen étant fastidieux (car on devra passer par un chroot pour réécrire grub, ce qui augmentera le nombre de commandes), on peut choisir d’utiliser le CD de « REfind » ou de « SuperGrub2disk » qui sont capables de lancer notre Ubuntu installé directement en UEFI via son noyau. C’est le cas ici avec le CD REfind :

Mon image

Grâce à lui, nous allons travailler directement en UEFI sur la version installée. En choisissant l’option proposée, nous nous retrouvons sur le bureau de notre Ubuntu 19.04 en version installée.

3.2. Suppression des fichiers grub

L’installation d’Ubuntu Legacy ayant inséré des fichiers grub pour ce mode, il convient de les supprimer. La commande est la suivante :

sudo apt purge grub-pc

La commande  nous invitant à ajouter la commande suivante,  nous nous exécutons :

sudo apt autoremove

Le résultat des deux commandes est le suivant :  

Mon image

A cet instant, l’installation ne possède plus aucun Grub installé. On pourrait très bien le remplacer par Elilo, Refind ou autre lanceur capable de fonctionner en UEFI. Restons-en à Grub.

3.3. Installation des fichier efi de Grub

Cette partie est la plus délicate, car de version en version de Grub, on est confronté à des variantes, et pour trouver des informations fiables, ce n’est pas toujours simple. Cette fois, j’ai trouvé les commandes assez rapidement (dans mes propres essais précédents, en fait), pour récupérer les paquets nécessaires :

sudo apt install grub-efi-amd64-signed shim shim-signed

Mon image

Grub et Shim sont nécessaires, notamment si on utilise un PC avec le secure-boot activé. Puis, installation de grub et mise à jour :

sudo grub-install /boot/efi
sudo update-grub

L’installation de tout cela se déroule sans encombre :

Mon image

Notre Ubuntu est prêt à fonctionner. Un redémarrage confirme que tout s’est bien passé. Et de même pour le rapport boot-info récapitulatif.

A noter que l’opération inverse est également faisable, et qu’on peut le faire avec Windows, et même avec un dual-boot.