GNU/Linux >> Tutoriels Linux >  >> Linux

Déplacez votre Linux du BIOS hérité vers l'UEFI en place avec un temps d'arrêt minimal

Je ne sais pas pour vous, mais je n'aime pas réinstaller mon système d'exploitation. Je trouve que c'est une perte totale de mon temps pour quelque chose qui devrait juste mettre à jour en place. Certaines personnes, utilisant souvent d'autres plates-formes, préfèrent un bon nettoyage et une réinstallation une fois par an pour retrouver la vitesse d'origine de leurs systèmes. Je ne souscris tout simplement pas à ce point de vue. Il existe de nombreuses façons de maintenir un système et je préfère généralement un débogage d'investigation plutôt que d'effacer et d'espérer le meilleur.

Pour cette raison, des systèmes comme mon ordinateur portable de travail ont peut-être commencé leur vie il y a longtemps (Fedora 22 sur un ordinateur portable de 4e génération basé sur i7) et ont déjà vu trois actualisations matérielles, plusieurs mises à niveau de disques SSD et de nombreux Mises à jour de Fedora (j'utilise actuellement Fedora 32).

Lorsque je change de système, j'aime emporter mon système d'exploitation avec moi et m'attendre à ce qu'il démarre sur la nouvelle machine. Mais il s'avère que c'est un désastre imminent en raison des différences matérielles entre les nouveaux et les anciens systèmes. Le problème est que ce n'est pas aussi simple que de retirer votre disque dur d'un ancien système et de l'insérer dans un nouveau et de s'attendre à ce que tout fonctionne comme vous le souhaitez. Cet article décrit comment déplacer une installation Linux d'un élément matériel, dans ce cas, un ancien ordinateur portable, vers un plus récent.

La grande mise en garde ou les dix ans d'avertissement avancé que l'UEFI nous a donné

Lorsque l'interface UEFI (Unified Extensible Firmware Interface) a été introduite au début des années 2000, elle a été conçue pour remplacer le BIOS du PC (Basic Input/Output System) et fournir aux utilisateurs x86 quelque chose de plus technologiquement avancé. Les personnes possédant des systèmes SPARC ou PowerPC Mac avec OpenBoot PROM (OBP)/OpenFirmware avaient déjà expérimenté l'avenir de nombreuses années auparavant. UEFI voulait évincer le BIOS pour que ses prédécesseurs ne fassent plus honte au PC.

Pour que la technologie UEFI soit largement adoptée, les fabricants ont choisi de la rendre facultative/sélectionnable depuis le firmware de la machine :Voulez-vous démarrer en mode Legacy BIOS ou UEFI ? Au cours des dix années suivantes, UEFI a lentement supprimé le Legacy BIOS et est devenu le mode par défaut pour les machines livrées par les fabricants.

Pour être juste, UEFI offre de multiples avantages, notamment :

  • Cela rend le démarrage multiple plus fiable et flexible.
  • Cela nous donne (utilisateurs Linux) la possibilité d'exécuter fwupdmgr pour flasher le firmware de nos machines depuis Linux. Cela inclut presque tous les micrologiciels, même les cartes d'extension.

Sur mes systèmes personnels, j'ai simplement ignoré le problème UEFI et j'ai continué à activer Legacy BIOS sur toute nouvelle machine que j'obtenais afin de pouvoir démarrer mon système d'exploitation Linux sans y réfléchir à deux fois.

Puis, 2020 est arrivé et un tout nouvel ordinateur portable est apparu avec UEFI uniquement. Aucun démarrage hérité d'aucune sorte (sauf sur les clés USB externes). Des mois plus tard, une nouvelle station de travail portable basée sur Xeon a fait son entrée dans notre maison, et encore une fois, cette bête ne faisait que UEFI.

J'étais coincé avec un disque SSD (BIOS hérité) au format d'enregistrement de démarrage principal (MBR) et une machine qui ne démarrait qu'en mode UEFI. En tant que bricoleur et utilisateur de Linux, j'ai entrepris de rechercher le problème, et la solution s'est avérée pas trop difficile et ne nécessiterait qu'environ cinq minutes une fois que vous avez déterminé quoi faire.

Un mot d'avertissement et quelques mises en garde

En trouvant la "bonne procédure" pour mes systèmes physiques, j'ai corrompu la machine virtuelle de test que j'utilisais à quelques reprises. J'ai également corrompu l'un de mes systèmes d'ordinateur portable une fois, mais j'avais une image complète de mon SSD grâce à CloneZilla. Voici quelques conseils :

  • Effectuez une sauvegarde complète au niveau de l'image de votre système avant de continuer. Vous toucherez vos disques et les outils utilisés pour faciliter la suppression de quelque chose sans confirmation. Vous pouvez utiliser CloneZilla, AOMEI Partition Assistant, dd , ou même Norton Ghost pour le faire. Il existe des dizaines d'outils qui font très bien le travail.
  • Cette procédure fonctionne même si vous avez une machine à double démarrage. Il fonctionne avec Logical Volume Manager (LVM), les partitions simples, ainsi qu'avec Linux Unified Key Setup (LUKS) ou toute combinaison de ceux-ci. Il vous suffit d'être prudent et d'adapter les instructions à votre configuration.
  • Pour effectuer cette procédure, vous devez installer votre SSD bien-aimé dans une machine capable d'effectuer les deux modes de démarrage :Legacy BIOS et UEFI. Si vous tentez la procédure sur un périphérique BIOS uniquement, vous devrez attendre de déplacer votre disque dur ou SSD sur une machine UEFI pour savoir que cela a fonctionné.
  • Vous n'avez pas besoin de déplacer physiquement votre SSD vers une autre machine. Vous pouvez simplement cloner l'ancien SSD au format MBR sur un nouveau SSD dans une autre machine et travailler à partir de là. Vous allez modifier la structure des partitions sur votre disque. Qu'il s'agisse d'un périphérique temporaire ou d'un nouveau SSD dans un nouvel ordinateur portable, c'est à vous de décider.
  • Dans le cas malheureux où vous ne disposez pas d'espace disque que vous pouvez libérer facilement sur votre SSD, il existe toujours des moyens de fonctionner. Les dernières centaines de Mo de votre LVM PV (Physical Volume) pourraient être supprimés de ses PE et le LVM PV être redimensionné pour faire de la place pour la partition EFI. Je ne décrirai pas cela ici, mais vous trouverez quelques références à la fin de l'article. Une autre option consiste à profiter de l'occasion pour acheter un SSD légèrement plus grand et y restaurer votre système Linux afin d'avoir de l'espace libre.
  • Travaillez lentement et n'hésitez pas à poser des questions en ligne si vous avez besoin d'aide. Il existe des dizaines de groupes d'utilisateurs Linux qui vous aideront si vous êtes bloqué.
  • Cet article a été écrit sur un ordinateur portable fraîchement réinstallé avec Fedora 33, mais s'applique à de nombreuses configurations différentes.
  • N'essayez pas ceci si vous utilisez le système de fichiers B-tree (BTRFS) avec Fedora 33. Je n'ai pas pu le faire fonctionner après avoir converti mon disque en table de partition GUID (GPT) lorsque j'ai utilisé BTRFS.

Est-ce que j'utilise l'ancien BIOS ?

Il existe deux bons indicateurs d'une machine démarrée dans Legacy BIOS.

1) Votre disque de démarrage a un partitionnement DOS/MBR :

[raistlin@localhost ~]$ sudo su -

[root@localhost ~]# df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       119G  7.1G  111G   6% /

[root@localhost ~]# file -s /dev/sda
/dev/sda: DOS/MBR boot sector

2) Votre noyau Linux ne le fait pas ont des variables EFI :

[root@localhost ~]# ls /sys/firmware/efi
ls: cannot access '/sys/firmware/efi': No such file or directory

Sur une machine en mode UEFI, ce qui précède produit une sortie similaire à celle-ci :

[root@localhost ~]# ls /sys/firmware/efi
config_table  efivars  esrt  [...]  runtime  runtime-map  systab  vars

Inspecter le disque de démarrage et décider d'une stratégie

De ce qui précède, j'ai découvert que mon disque de démarrage est /dev/sda . Regardez de plus près avec parted :

[root@localhost ~]# parted /dev/sda
GNU Parted 3.3
Using /dev/sda
Welcome to GNU Parted! Type' help' to view a list of commands.
(parted) p
Model: ATA LITEON L8H-128V2 (scsi)
Disk /dev/sda: 128GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary ext4 boot
2 1075MB 128GB 127GB primary lvm

D'après ce qui précède, vous voyez que seules deux partitions sont présentes. La première partition est une petite partition de 1 Gio, au format ext4 et il contient les noyaux. La deuxième partition est une bête différente et utilise LVM. Même si j'ai été satisfait de LVM sur mes systèmes Linux, je n'y toucherai pas pour le moment.

Par conséquent, j'utiliserai l'espace occupé par la première partition pour faire de la place pour GPT et UEFI.

Veuillez noter que si vous utilisez LUKS ou LVM, la procédure de conversion en UEFI peut également être plus sûre si vous utilisez la partition de démarrage et son espace.

Si vous avez choisi BTRFS (la valeur par défaut dans Fedora 33), cela pourrait ne pas fonctionner pour vous, et ma première tentative n'a pas réussi à démarrer juste après la conversion du disque en GPT.

Si votre partition de démarrage est inférieure à 1 Go et que tout l'espace est occupé par des partitions, il n'est peut-être pas sûr de créer /boot inférieur à 512-600Mib. Vous n'avez peut-être pas assez d'espace pour continuer, et c'est peut-être le bon moment pour vous procurer un SSD légèrement plus grand sur lequel vous pourriez cloner votre système.

Je m'appelle /dev/sda1

La partition de démarrage sur cette machine a une taille de 1 Go et dispose de suffisamment d'espace libre pour que nous puissions continuer :

[root@localhost ~]# df -h /boot
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       976M  238M  672M  21% /boot

Tout d'abord, redimensionnez le système de fichiers à 512 Mo :

[root@localhost ~]# resize2fs /dev/sda1 512M
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/sda1 is mounted on /boot; on-line resizing required resize2fs: On-line shrinking not supported

Umount d'abord (vous pouvez puisque Linux ne monte que /boot par commodité):

[root@localhost ~]# umount /boot

[root@localhost ~]# resize2fs /dev/sda1 512M
resize2fs 1.45.6 (20-Mar-2020)
Please run 'e2fsck -f /dev/sda1' first.

[root@localhost ~]# e2fsck -f /dev/sda1
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda1: 414/65536 files (0.7% non-contiguous), 63590/262144 blocks

[root@localhost ~]# resize2fs /dev/sda1 512M
resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/sda1 to 131072 (4k) blocks.
The filesystem on /dev/sda1 is now 131072 (4k) blocks long.

[root@localhost ~]# mount /boot

[root@localhost ~]# df -h /boot
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       472M  200M  237M  46% /boot

Le ext4 Le système de fichiers a été redimensionné, mais la taille de la partition est toujours de 1 Go. Vous le redimensionnerez ensuite. Vous allez réduire la partition à une taille légèrement plus celle du /boot système de fichiers pour être à l'abri des erreurs d'arrondi. Réduisez-le à 700 Mib, ce qui laissera environ 300 Mib libres. Étant donné que le système de fichiers à l'intérieur de cette partition est maintenant de 512 Mib, il est prudent de réduire la partition de 1 024 Mib à 700 Mib.

[root@localhost ~]# fdisk  -l /dev/sda|grep sda1
/dev/sda1  *       2048   2099199   2097152     1G 83 Linux

[root@localhost ~]# parted /dev/sda
GNU Parted 3.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) resizepart 1 700M
Warning: Shrinking a partition can cause data loss, are you sure you want to continue? Yes/No? yes
(parted) p
Model: ATA LITEON L8H-128V2 (scsi)
Disk /dev/sda: 128GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Disk Flags:
Number  Start   End    Size   Type     File system  Flags
 1      1049kB  700MB  699MB  primary  ext4         boot
 2      1075MB  128GB  127GB  primary  btrfs
(parted) quit
Information: You may need to update /etc/fstab.

[root@localhost ~]#

Ensuite, étendez le système de fichiers à la taille complète de la partition (700 Mib) :

[root@localhost ~]# partprobe

[root@localhost ~]# resize2fs /dev/sda1
resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/sda1 to 170642 (4k) blocks.
The filesystem on /dev/sda1 is now 170642 (4k) blocks long.

L'opération de redimensionnement se termine par la croissance de ext4 système de fichiers de 512 Mib à la taille de la partition sous-jacente, qui est de 700 Mib.

J'aurais également pu utiliser Gparted pour suivre la progression des étapes précédentes. Voici une capture d'écran de la situation initiale :

Dès que vous redimensionnez le système de fichiers, un avertissement s'affiche :

Une fois que la partition de démarrage elle-même est redimensionnée à 700 Mo, un élément non alloué la ligne s'affiche dans Gparted :

Une fois que le système de fichiers est étendu à la taille de la partition, l'avertissement disparaît :

De plus, comme c'est courant sous Linux, j'aurais pu faire toute l'opération en un seul clic sous GParted, mais cela n'aurait pas été aussi amusant :

Convertir le disque en GPT

Avec un peu d'espace libre disponible, vous êtes maintenant libre de convertir le disque en GPT. Tout d'abord, vous devez installer quelques outils :

[root@localhost ~]# yum install gdisk grub2-efi-x64-modules efibootmgr grub2-tools-efi -y Last metadata expiration check: 1:32:33 ago on Wed 27 Jan 2021 05:01:42 PM EST.
Package gdisk-1.0.6-1.fc33.x86_64 is already installed.
Package efibootmgr-16-9.fc33.x86_64 is already installed.
Package grub2-tools-efi-1:2.04-31.fc33.x86_64 is already installed.
Dependencies resolved.[...]

Utiliser gdisk pour convertir la table de partition en GPT et créer la partition de démarrage du BIOS dont GRUB a besoin. Cette partition portera le numéro 3 (la première partition disponible) et être extrait des premiers secteurs du disque (secteurs 34 à 2047).

[root@localhost ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.6
Warning: The partition table header claims that the size of partition table entries is 12255407 bytes, but this program supports only 128-byte entries. Adjusting accordingly, but the partition table may be garbage.
Warning: Partition table header claims that the size of partition table entries is 0 bytes, but this program supports only 128-byte entries.
 
Adjusting accordingly, but the partition table may be garbage.
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
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************
Command (? for help): p
Disk /dev/sda: 250069680 sectors, 119.2 GiB
Model: LITEON L8H-128V2
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 6681F0D6-F645-4F97-93A5-E7E5E3912C62
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 2048-sector boundaries
Total free space is 734681 sectors (358.7 MiB)
Number  Start (sector)
   1            2048
   2         2099200
End (sector)  Size       Code  Name
   1367187   666.6 MiB   8300  Linux filesystem
 250068991   118.2 GiB   8300  Linux filesystem
Command (? for help): n
Partition number (3-128, default 3): 3
First sector (34-250069646, default = 1368064) or {+-}size{KMGTP}: 34
Last sector (34-2047, default = 2047) or {+-}size{KMGTP}: [Press Enter to accept 2047] Current type is 8300 (Linux filesystem)
Hex code or GUID (L to sho codes, Enter = 8300): ef02
Changed type of partition to 'BIOS boot partition'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
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)
The operation has completed successfully.

Voici à quoi ressemble maintenant le disque :

[root@localhost ~]# partprobe

[root@localhost ~]# fdisk -l /dev/sda|grep sda
Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 250069680 sectors
/dev/sda1     2048   1367187   1365140 666.6M Linux filesystem
/dev/sda2  2099200 250068991 247969792 118.2G Linux filesystem
/dev/sda3       34      2047      2014  1007K BIOS boot

Ensuite, réinstallez le chargeur de démarrage GRUB. Si vous utilisez une version plus récente de grub, au lieu d'utiliser grub2-install.... veuillez utiliser dnf reinstall shim-* grub2-efi-* à la place :

[root@localhost ~]# grub2-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

[root@localhost ~]#

Si vous vouliez seulement convertir votre disque de MBR en GPT, cette partie est maintenant terminée. À ce stade, je vous recommande de redémarrer votre système pour vérifier que votre machine basée sur le BIOS peut démarrer le disque GPT fraîchement converti.

Voici à quoi ressemble maintenant le disque :

Cela peut également être vu depuis le shell :

[root@localhost ~]# fdisk  -l /dev/sda
Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 250069680 sectors
Disk model: LITEON L8H-128V2
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 6681F0D6-F645-4F97-93A5-E7E5E3912C62
Device       Start       End   Sectors   Size Type
/dev/sda1     2048   1367187   1365140 666.6M Linux filesystem
/dev/sda2  2099200 250068991 247969792 118.2G Linux LVM
/dev/sda3       34      2047      2014  1007K BIOS boot
Partition table entries are not in disk order.

Ajout de la partition système EFI

Ensuite, utilisez l'espace libéré précédemment pour créer une quatrième partition :la partition système EFI.

[root@localhost ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.6
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk /dev/sda: 250069680 sectors, 119.2 GiB
Model: LITEON L8H-128V2
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 6681F0D6-F645-4F97-93A5-E7E5E3912C62
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 2-sector boundaries
Total free space is 732667 sectors (357.7 MiB)
Number  Start (sector)
End (sector)  Size       Code  Name
   1367187   666.6 MiB   8300  Linux filesystem
 250068991   118.2 GiB   8E00  Linux LVM
      2047   1007.0 KiB  EF02  BIOS boot partition
1 2 3
   2048
2099200
     34
Command (? for help): n
Partition number (4-128, default 4): [Press Enter to accept 4]
First sector (1367188-250069646, default = 1367188) or {+-}size{KMGTP}: [Press Enter to accept 1367188]
Last sector (1367188-2099199, default = 2099199) or {+-}size{KMGTP}: [Press Enter to accept 2099199]
Current type is 8300 (Linux filesystem)

Hex code or GUID (L to show codes, Enter = 8300): ef00
Changed type of partition to 'EFI system partition'
Command (? for help): p
Disk /dev/sda: 250069680 sectors, 119.2 GiB
Model: LITEON L8H-128V2
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 6681F0D6-F645-4F97-93A5-E7E5E3912C62
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 2-sector boundaries
Total free space is 655 sectors (327.5 KiB)
Number  Start (sector)
End (sector)  Size
   1367187   666.6 MiB
 250068991   118.2 GiB
Code  Name
8300  Linux filesystem
8E00  Linux LVM
1 2 3 4
   2048
2099200
     34
1367188
2047 1007.0 KiB EF02 BIOS boot partition 2099199 357.4 MiB EF00 EFI system partition

Ensuite, ajoutez une étiquette à la partition EFI pour la référencer plus tard plus facilement. Ceci est également fait dans gdisk :

Command (? for help): c
Partition number (1-4): 4
Enter name: EFI-system
Command (? for help): p
Disk /dev/sda: 250069680 sectors, 119.2 GiB
Model: LITEON L8H-128V2
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 6681F0D6-F645-4F97-93A5-E7E5E3912C62
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 2-sector boundaries
Total free space is 655 sectors (327.5 KiB)
Number  Start (sector)
End (sector)  Size
   1367187   666.6 MiB
 250068991   118.2 GiB
Code  Name
8300  Linux filesystem
8E00  Linux LVM
1 2 3 4
   2048
2099200
     34
1367188
   2047   1007.0 KiB  EF02  BIOS boot partition
2099199   357.4 MiB   EF00  EFI-system
 Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
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)
The operation has completed successfully.

Vous devriez maintenant voir la partition apparaître sous /dev/disk/by-partlabel :

[root@localhost ~]# partprobe

[root@localhost ~]# ls -l /dev/disk/by-partlabel/
total 0
lrwxrwxrwx. 1 root root 10 Jan 27 21:57 'BIOS\x20boot\x20partition' -> ../../sda3 lrwxrwxrwx. 1 root root 10 Jan 27 21:57 EFI-system -> ../../sda4
lrwxrwxrwx. 1 root root 10 Jan 27 21:57 'Linux\x20filesystem' -> ../../sda1 lrwxrwxrwx. 1 root root 10 Jan 27 21:57 'Linux\x20LVM' -> ../../sda2

La partition de démarrage EFI doit être formatée en vfat :

[root@localhost ~]# mkfs -t vfat -v /dev/disk/by-partlabel/EFI-system
mkfs.fat 4.1 (2017-01-24)
/dev/disk/by-partlabel/EFI-system has 255 heads and 63 sectors per track,
hidden sectors 0x14dc94;
logical sector size is 512,
using 0xf8 media descriptor, with 732012 sectors;
drive number 0x80;
filesystem has 2 16-bit FATs and 16 sectors per cluster.
FAT size is 192 sectors, and provides 45723 clusters.
There are 16 reserved sectors.
Root directory contains 512 slots and uses 32 sectors.
Volume ID is 855d115e, no volume label.

Il est maintenant temps pour nous de monter cette partition et de déplacer les données du sous-répertoire efi anciennement situé sous /boot mais vérifiez d'abord si les fichiers appropriés ont été installés (les noms varient en fonction de votre distribution Linux). Voici ce que j'ai sur mon système Fedora 33 :

[root@localhost ~]# du /boot/efi
8       /boot/efi/System/Library/CoreServices
12      /boot/efi/System/Library
16      /boot/efi/System
2508    /boot/efi/EFI/fedora/fonts
17988   /boot/efi/EFI/fedora
2748    /boot/efi/EFI/BOOT
20740   /boot/efi/EFI
20764   /boot/efi
[root@localhost ~]# df -h /boot/efi
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       623M  237M  340M  42% /boot

[root@localhost ~]# find /boot/efi -name shim\*
/boot/efi/EFI/fedora/shimx64.efi
 
/boot/efi/EFI/fedora/shim.efi
/boot/efi/EFI/fedora/shimia32.efi
/boot/efi/EFI/fedora/shimx64-fedora.efi
/boot/efi/EFI/fedora/shimia32-fedora.efi

[root@localhost ~]# mount -t vfat /dev/disk/by-partlabel/EFI-system /mnt

[root@localhost ~]# mv  /boot/efi/* /mnt

[root@localhost ~]# umount /mnt

[root@localhost ~]# du /boot/efi
4 /boot/efi

Il est maintenant temps d'ajouter cette partition à /etc/fstab et mount il :

[root@localhost ~]# echo ‘/dev/disk/by-partlabel/EFI-system /boot/efi vfat defaults 0 2’ >> /etc/fstab

[root@localhost ~]# mount /boot/efi

[root@localhost ~]#

Une vérification s'impose à ce stade. La partition EFI doit être montée et contenir les données que vous avez copiées précédemment :

root@localhost ~]# df /boot/efi
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/sda4         365784 20832    344952   6% /boot/efi

[root@localhost ~]# du /boot/efi
2760    /boot/efi/EFI/BOOT
2512    /boot/efi/EFI/fedora/fonts
18024   /boot/efi/EFI/fedora
20792   /boot/efi/EFI
16      /boot/efi/System/Library/CoreServices
24      /boot/efi/System/Library
32      /boot/efi/System
20848   /boot/efi

Il est maintenant temps de réinstaller le chargeur de démarrage GRUB et d'appliquer le démarrage UEFI. Comme ci-dessus, si vous êtes une version plus récente de grub, au lieu d'utiliser grub2-install.... utilisez dnf reinstall shim-* grub2-efi-* à la place :

[root@localhost ~]# grub2-install --target=x86_64-efi /dev/sda
Installing for x86_64-efi platform.
EFI variables are not supported on this system.
EFI variables are not supported on this system.
grub2-install: error: efibootmgr failed to register the boot entry: No such file or directory.

[root@localhost ~]#

Les trois messages d'erreur affichés ci-dessus sont normaux et liés à l'absence de variables du firmware EFI. Cela se produit actuellement, car vous avez démarré le PC pour la dernière fois en mode BIOS hérité. Une fois que vous êtes en mode UEFI complet, ces erreurs disparaissent. Respirez profondément, redémarrez votre PC et préparez-vous à entrer son firmware pour changer son mode de démarrage.

[ Vous pourriez également aimer : Comment configurer le démarrage PXE pour le matériel UEFI ]

Arrêter et basculer le micrologiciel de Legacy BIOS vers UEFI.

Les captures suivantes sont spécifiques au système sur lequel j'ai effectué la procédure. Vous devriez consulter les instructions du manuel de votre système pour savoir comment passer du BIOS à l'UEFI. Voici un exemple sur mon ordinateur portable :

Enregistrez les paramètres et quittez le firmware. Votre PC se réinitialisera et tentera de démarrer à partir de votre disque en mode UEFI. Vous devrez peut-être sélectionner votre disque manuellement la première fois que vous démarrerez en mode UEFI.

Démarrage réussi

Juste après le démarrage, connectez-vous et commencez à profiter de votre Linux rajeuni par UEFI. Oui, tous vos fichiers, comptes et programmes seront toujours là.

[root@localhost ~]# efibootmgr
BootCurrent: 0014
Timeout: 0 seconds
BootOrder: 0014,0013,0009,000D,0007,000A,000B,000C,0008,0012
Boot0000  Setup
Boot0001  Boot Menu
Boot0002  Diagnostic Splash Screen
Boot0003  Lenovo Diagnostics
Boot0004  Startup Interrupt Menu
Boot0005  Rescue and Recovery
Boot0006  MEBx Hot Key
Boot0007* USB CD
Boot0008* USB FDD
Boot0009* ATA HDD0
Boot000A* ATA HDD1
Boot000B* ATA HDD2
Boot000C* USB HDD

Boot000D* PCI LAN
Boot000E* IDER BOOT CDROM
Boot000F* IDER BOOT Floppy
Boot0010* ATA HDD
Boot0011* ATAPI CD
Boot0012* PCI LAN
Boot0013* Windows Boot Manager
Boot0014* Fedora
[root@localhost ~]# fwupdmgr get-devices|grep -i lenovo
 │ Vendor: │ Vendor: Vendor:
LENOVO (DMI:LENOVO)
DMI:LENOVO
DMI:LENOVO

Gparted affiche l'état final du disque :

[ Aide-mémoire gratuit :obtenez une liste d'utilitaires et de commandes Linux pour gérer les serveurs et les réseaux. ] 

Récapitulez

Que vous aimiez réinstaller ou mettre à jour votre environnement d'exploitation en place, il existe de nombreuses façons d'y parvenir avec succès. Je sais où se situent mes propres préférences et cet article de blog tente de partager certains des conseils que j'ai récemment appris. Fais attention. Vérifiez la sortie de vos commandes. Demandez de l'aide si vous en avez besoin. En outre, il existe des outils dans d'autres systèmes d'exploitation pour faciliter la conversion si vous le souhaitez, par exemple l'assistant de partition AOMEI gratuit pour les plates-formes Windows.

Curieusement, même si cet ordinateur portable exécutant Fedora 33 est passé avec succès du BIOS à l'UEFI avec GPT, aucune mise à jour du micrologiciel n'était disponible via LVFS car le système était trop ancien.


Linux
  1. Surveillez votre système Linux dans votre terminal avec procps-ng

  2. Analysez votre sécurité Linux avec Lynis

  3. Une clé USB Linux hybride pour UEFI et BIOS hérité est-elle possible ?

  4. Comment créer un linux amorçable minimal (uniquement avec un terminal) à partir du code source du noyau ?

  5. Comment convertir mon disque Linux de MBR en GPT avec UEFI ?

Épicez votre bureau Linux avec Cinnamon

Modernisez votre bureau Linux avec Enlightenment

Comment vérifier si votre ordinateur utilise UEFI ou BIOS [sous Linux et Windows]

Travailler avec Microsoft Exchange à partir de votre bureau Linux

Utilisez votre Chromecast depuis Linux et MacOS avec mkchromecast

Gérez vos serveurs avec Cockpit Linux