Passer Debian en UEFI sans réinstallation

Bonjour à tous.
Dans un premier temps je veux remercier tous les contributeurs de ce forum qui font un boulot fantastique tant sur le forum que sur le wiki qui m’a bien aidé.

Je souhaite simplement partager mon retour d’expérience après la migration de ma debian en UEFI.

Cas de départ :

Un SSD de 120Go avec 2 partitions :
swap : 4Go
/ : le reste
La table de partition en MBR.

Passage en UEFI :
J’ai essentiellement suivi la doc du wiki : isalo.org/wiki.debian-fr/Debian_%26_UEFI
Je vous conseille de la lire, et mon expérience qui suit pourra peut-être vous rassurer.

1- La partition de boot
Pour booter, il vous faut une petite partition de boot en FAT. J’ai utilisé le liveCD de Gparted pour réduire mon SWAP de quelques Mo (c’est moins risqué que de réduire une partition contenant des données).
Ensuite, j’ai placé un flag “boot” sur cette nouvelle partition et je l’ai formatée en FAT16.

2- MBR vers GPT
Comme dit dans le wiki, il vous faut une table de partition GPT. Soit vous réinstallez tout votre système, soit comme moi, vous tentez de le convertir (en sauvegardant vos données avant bien entendu!). Pour cela j’ai lancé (toujours depuis le livecd de Gparted) gdisk (fdisk pour GPT). Au lancement de gdisk, il vous affiche le message suivant :

[code]root@debian-raven:/home/raven# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.5

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


Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing ‘q’ if
you don’t want to convert your MBR partitions to GPT format!
***************************************************************[/code]
Comme je ne voulais pas modifier mes partitions (je les avais déjà modifié avec Gparted), j’ai juste entré la commande “w” dans gdisk. Après confirmation (Y), mon disque est bien passé en GPT (et je n’ai perdu aucune données).

[code]root@debian-raven:/home/raven# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.5

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

Found valid GPT with protective MBR; using GPT.
[/code]

3- Modifier la fstab
Toujours depuis le liveCD Gparted, j’ai monté ma partition contenant le système pour pouvoir
[ul]*Créer le répertoire /boot/efi
*Modifier ma fstab en conséquence.[/ul]
Attention, le tutoriel du wiki est faux sur la ligne de la fstab, c’est defaults et non dafauts
Je récupère l’UUID de ma partition FAT avec la commande “blkid” puis j’ajoute la ligne suivante à ma fstab :


4- Installation du grub

Pour cette étape j’ai booté sur systemrescueCD, option “boot an existing linux installed on the disk”.
Mais vous pouvez le faire depuis le live CD de Gparted avec un chroot.

J’ai installé grub-efi avec la commande :

Comme indiqué dans le wiki, j’ai désinstallé manuellement le paquet grub-pc-bin.

J’ai ensuite fait un update-grub
Puis un grub-install /dev/sdb

La commande ls /sys/firmware |grep efi me répond “efi”.

Je reboot le système et tout fonctionne en UEFI :slightly_smiling:

1 J'aime

merci pour ce retour bien rassurant :023

Merci.

bonjour.

excellent tuto concernant EFI et sur le wiki,rubrique EFI,il serait bienvenu de faire pointer un lien vers cette page.

Quelques remarques pour faire mon intéressant.

Son nom officiel est “partition système EFI”. La qualifier de “partition de boot” est source de confusion car traditionnellement sous GNU/Linux, on désigne comme partition de boot soit la partition montée sur /boot, soit la partition amorçable par le MBR. Certes, le choix de parted de réutiliser le flag “boot” pour désigner ce type de partition dans une table au format GPT était de nature à entretenir cette confusion.

C’est faux, normalement. Il est possible d’amorcer en UEFI avec un disque au format de partition MS-DOS, sauf paraît-il avec certains firmwares UEFI non conformes. J’ai testé.

[quote=“ben_raven”]Pour cette étape j’ai booté sur systemrescueCD, option “boot an existing linux installed on the disk”.
Mais vous pouvez le faire depuis le live CD de Gparted avec un chroot.[/quote]
Quelle que soit la méthode choisie, l’important est d’amorcer en UEFI. Sinon l’étape finale de l’installation du chargeur (l’enregistrement de l’entrée d’amorçage) échouera, les fonctions du firmware UEFI n’étant pas disponibles.
Cependant on peut normalement contourner en copiant le chargeur /boot/efi/EFI/debian/grubx64.efi en tant que chargeur par défaut /boot/efi/EFI/boot/bootx64.efi. J’ai aussi testé.

A noter que le périphérique spécifié est ignoré et peut être omis. Le chargeur GRUB EFI est systématiquement installé dans la partition système EFI montée sur /boot/efi. J’ai encore testé.

J’apprécie toujours tes remarques Pascal. Ton avis est toujours pertinent et tes réponses sont toujours précises et construites.
[size=50]Ça c’était pour les chevilles :smiley: [/size]

En effet, je vois la nuance. Après, pour moi c’est une partition qui sert à démarrer, amorcer le système. D’où l’acronyme anglais “partition de boot”. Pour être plus précis, devrais-je mettre : Partition système EFI pour le boot ?

Vrai aussi, en revanche je n’ai pas réussi à trouver sur le net les avantages par rapport à l’un ou à l’autre (???) (J’édite en conséquence). Autant il est possible de convertir la table de partition MBR vers GPT comme je l’ai indiqué, autant je suis incertains que ce soit possible vers MS-DOS sans perdre les données.

Je n’ai pas compris ce commentaire. Tu veux dire qu’il est inutile de préciser le périphérique ?

Avantages de GPT : supporte un grand nombre de partitions (généralement jusqu’à 128) sans distinction primaire/logique ; supporte les disques et partitions de plus de 2Tio ; permet de nommer une partition indépendamment de son contenu.
Inconvénients de GPT : non supporté par les (vieux) systèmes d’exploitation et outils de gestion de disque non compatibles ; plus compliqué à transférer sur un disque de taille différente.

[mono]gdisk[/mono] permet de le faire mais ce n’est pas toujours possible s’il y a plus de 4 partitions, car au delà la création des partition étendues et logiques imbriquées n’est possible que si on a laissé un peu d’espace libre entre les partitions.

Exactement, puisque grub ne s’installe pas sur un périphérique brut mais en tant que simple fichier dans la partition système EFI montée sur /boot/efi. Tu vois que tu as parfaitement compris.