Protéger et sauvegarder le secteur MBR sous Linux

I. Présentation

Durant le processus de démarrage d’un système GNU/Linux, une des étapes essentielles consiste à repérer le premier secteur adressable d’un disque dur (c’est-à-dire le cylindre 0, tête 0 et secteur 1) que l’on appelle MBR (Master Boot Record ou zone amorce). Sa taille est de 512 octets.

Le MBR contient, entre autre chose, la table des partitions. Selon le principe standard, il s’agit des quatre partitions primaires du disque dur. Ce secteur contient également la routine d’amorçage dont l’objectif est de charger le système d’exploitation via le chargeur d’amorçage (aussi appelé bootloader), lorsqu’il existe sur la partition active.

REMARQUE: lorsque l’on recherche ce secteur sur une partition et non plus sur un disque dur, on parle alors de secteur PBR (Partition Boot Record) et non plus de MBR.

II. Structure du MBR

A l’emplacement de l’octet 510 du MBR, le mot 0xAA55, également appelé nombre magique, doit impérativement être présent pour que le BIOS puisse charger et exécuter la routine de démarrage présent dans le MBR. Après la phase de test du BIOS (nommée POST), c’est le BIOS qui est chargé de lire le premier secteur des périphériques amorçables, définis par l’utilisateur.

Lorsque le BIOS trouve un périphérique contenant le nombre magique, il charge alors le code d’amorçage à une adresse particulière afin de l’exécuter (l’adresse en question est 0x7C00). C’est à ce stade que le chargeur d’amorçage, appelé boot strap loader, prend la main grâce à ce bout de code précédemment chargé.

ATTENTION: en cas de système d’exploitation basé sur UEFI et non sur le BIOS, le mécanisme est légèrement différent. Il faut notamment transformer le disque du format MBR au format GPT/UEFI et l’adressage est également différent.

III. Sauvegarde et restauration du MBR

Sous GNU/Linux, la commande dd permet de copier n’importe quelle portion d’un fichier du système d’exploitation. On peut donc l’utiliser pour sauvegarder le MBR d’un disque ou pour le restaurer en respectant la taille fixe des 512 premiers octets du disque.

ATTENTION: cette opération comporte un risque, car si l’utilisateur se trompe de disque à copier ou de taille, la restauration du MBR sur un autre disque remplacera la table de partitions de ce dernier par celle du premier. Ainsi, le périphérique cible sera illisible. Il est donc essentiel d’effectuer une restauration sur un disque identique à celui d’origine avec le même type de partitionnement.

Ainsi, pour sauvegarder le premier secteur d’un disque, il suffit d’exécuter la commande suivante :

# dd if=/dev/sda of=/mnt/backup/mbr-sda.img bs=512 count=1

La restauration du secteur MBR s’effectue en exécutant la commande inverse :

# dd if=/mnt/backup/mbr-sda.img of=/dev/sda bs=512 count=1

En général, l’installation d’un système GNU/Linux modifie le MBR initial afin qu’il pointe sur le chargeur d’amorçage de Linux (qu’il s’agisse de GRUB, LILO ou autre).

IV. Clonage de disque

En se basant sur ce même principe que la sauvegarde du secteur MBR, on peut également cloner un disque complet. En effet, puisque la commande dd permet de copier tout ou partie d’un fichier, pourquoi ne pas appliquer cela au disque complet. Imaginons disposer de deux disques /dev/sdb de 5Gio et d’un disque /dev/sdc (également de 5Gio). On peut alors dupliquer les données s’y trouvant :

# dd if=/dev/sdb of=/dev/sdc

Bien évidemment cela peut aussi être appliqué à une partition en travaillant directement à ce niveau au lieu de mentionner le nom des périphériques:

# dd if=/dev/sdb1 of=/dev/sdc1
ATTENTION: il est primordial que la taille du périphérique (ou de la partition) d’origine soit strictement la même que celle du périphérique (ou de la partition) cible.

V. Conclusion

Cette technique une fois automatisée par une tâche planifiée, permet de sauvegarder le secteur MBR et la table des partitions d’un disque adossé au BIOS. Il existe aussi d’autres techniques plus orientées sur l’utilisation de logiciel tel que boot-repair permettant de restaurer un MBR. Quoi qu’il en soit, il faut évidemment effectuer cette sauvegarde sur une machine distante ou un périphérique autre que celui d’origine afin de toujours pouvoir restaurer ce secteur en cas de problème.

De plus, on peut également dupliquer ou cloner l’intégralité d’un disque ou d’une partition grâce à cette commande basique qu’est dd. Aussi, il ne faut jamais négliger la puissance de telle ou telle commande, car on peut découvrir des possibilités insoupçonnées.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Philippe PIERRE

A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.

    philippe-pierre has 45 posts and counting.See all posts by philippe-pierre

    2 pensées sur “Protéger et sauvegarder le secteur MBR sous Linux

    • Il y a un souci avec les commandes de sauvegardes/resto mbr: sauvegarde du mbr de sdb, resto sur sda.

      Répondre
    • Bonsoir.
      Effectivement, en relisant il y a une erreur. On sauvegarde le MBR sur /dev/sda et on restaure sur un disque identique. Je corrige dès à présent. Merci d’avoir relever la coquille.

      Répondre

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

     

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.