BIOS/MBR vs UEFI/GPT

Dans cet article nous allons voir quelles sont les différences entre MBR et GPT et pourquoi il est nécessaire de connaître les connaître pour installer un OS linux. MBR comme GPT sont tous les deux des systèmes de partitionnement. MBR (Master Boot Record) est le système de partition utilisé sous BIOS tandis que GPT (GUID Partition Table) est utilisé par BIOS. Il est très important de faire la distinction entre ces deux système et surtout de savoir si notre ordinateur fonctionne sous BIOS ou sous UEFI. En effet suivant le système de partitionnement utilisé l'installation d'un OS est un peu différente.

  • Qu'est ce que BIOS:

BIOS, pour Basic Input Output System, est le système élémentaire historique d'entrées-sorties de votre ordinateur. C'est un logiciel qui va être utilisé afin vérifier le bon fonctionnement de tous les composants de votre ordinateur (on parle de l'étape de Power-On Self Test). Une fois cette vérification faite, et si tout fonctionne correctement, le BIOS va faire appel à la MBR afin de charger le système d'exploitation.

Cette MBR est en fait le premier secteur adressable d'un disque dur dont la taille est fixé à 512 octets.  Sur cette MBR sont stockés la table des partitions (contenant des informations relatives à nos partitions telles que leurs tailles), une routine d'amorçage dont le but est de charger le système d'exploitation ainsi que quelques autres informations dont on ne discutera pas au cours de cet article.

Voici schématiquement à quoi ressemble une MBR:

Au tout début de la MBR se trouve la routine de 440 octets. Cette routine c'est le micro programme en charge de lancer notre système d'exploitation. C'est ce qu'on appelle plus communément un bootloader. Ensuite nous avons la table des partitions primaires. Cette table peut contenir au maximum 4 entrées qui disposeront chacun de 16 octets leurs permettant de stocker des métadonnées (taille de la partition, adresse mémoire du début de la partition, indicateur de boot...). Enfin nous aurons une signature obligatoire située à l'octet 510 et 511 et dont la valeur doit toujours être "0x55AA".

Lorsque vous allumez votre ordinateur et une fois le Power-On Self Test terminé, le BIOS va parcourir la table des partitions primaires et rechercher la partition ayant le flag "active". Ce flag est en fait le premier octet de chacune des entrées de la table des partitions:

Si votre ordinateur a correctement été installé alors cette partition devrait être la partition /boot dans lequel se trouve le kernel Linux, potentiellement le répertoire contenant grub ainsi que d'autres binaires.

Seulement voilà, sous MBR une partition ne peut pas stocker plus de 2,2 To de données or aujourd'hui il n'est pas rare de voir des serveurs ayant besoin de plusieurs dizaines de To de stockage. MBR n'est donc pas adapté à ces besoin. Pour remédier à ce problème un nouveau système de partitionnement est née: GPT et avec lui est apparu UEFI.

  • Qu'est ce que UEFI:

UEFI (Unified Extensible Firmware Interface) est donc le remplaçant de BIOS et ce depuis 2012. UEFI introduit un nouveau système de partitionnement GPT (GUID Parition Table). La structure de la GPT est fondamentalement différente de celle d'une MBR classique:

Premièrement nous pouvons voir que la GPT n'est pas composée que d'un seul secteur mais de deux. Le premier, dit primaire, est situé au début du disque tandis que le second, dit secondaire, est situé à la fin du disque. En fait GPT impose la création d'une GPT secondaire qui n'est en fait rien d'autre qu'une backup de la GPT primaire.

En plus de cette double structure GPT on peut aussi voir qu'il n'existe plus d'espace disque alloué à une potentielle routine. Et oui, sous UEFI le bootloading est opéré par le bootloader généralement stocké sur le disque et plus précisément sur la partition GPT /boot/efi/.

L'avantage de GPT c'est qu'il est dorénavant possible de créer jusqu'à 128 partitions par disque ayant chacune une taille maximale de 256To. C'est pourquoi UEFI est aujourd'hui le micro-programme exploité par défaut par les constructeurs de cartes mères.

Alors c'est super tout ça mais comment je sais si mon ordinateur fonctionne sous BIOS ou UEFI ? C'est assez simple à déterminer en fait, soit vous vous rendez dans les paramètres de votre carte mère en tapotant F11, F12 ou tout autres touches à l'allumage de votre ordinateur. Soit vous pouvez effectuer cette vérification directement depuis votre système d'exploitation actuel.

  • Sous Linux:

Si le répertoire /sys/fimrware/efi est présent alors votre ordinateur tourne sous UEFI

  • Sous Windows:

Vous pourrez accéder aux paramètres système de votre ordinateur et vérifier le contenu de la variable BIOS Mode:

Si vous voyez "Legacy" c'est que votre ordinateur tourne sous BIOS autrement ça sera de l'UEFI.