Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
mbr [Le 30/08/2016, 14:34] Nasman [La table des partitions primaires] |
mbr [Le 06/01/2023, 14:09] (Version actuelle) 176.142.4.73 [Qu'est ce que le mbr et comment y accéder] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
====== Qu'est ce que le mbr ? ====== | ====== Qu'est ce que le mbr ? ====== | ||
- | Ce tutoriel explique ce qu'est le mbr d'un disque ou d'un média amovible, son organisation et à quoi il sert | + | Ce tutoriel explique ce qu'est le [[wpfr>Master_boot_record|MBR]] d'un disque ou d'un média amovible, son organisation et à quoi il sert.\\ |
+ | <note tip>**Voir [[GPT]] pour les HDD > 2To**</note> | ||
===== Pré-requis ===== | ===== Pré-requis ===== | ||
Ligne 21: | Ligne 22: | ||
- | Compte tenu du risque encouru, son accès ne peut s'effectuer qu'en mode superutilisateur (sudo). \\ | + | Compte tenu du risque encouru, son accès ne peut s'effectuer qu'en mode superutilisateur (sudo). |
\\ | \\ | ||
Pour y accéder nous aurons besoin de la fonction [[:dd|dd]]. Cette fonction permet d'accéder directement à un contenu présent sur le disque en s'affranchissant de tout système de fichiers. | Pour y accéder nous aurons besoin de la fonction [[:dd|dd]]. Cette fonction permet d'accéder directement à un contenu présent sur le disque en s'affranchissant de tout système de fichiers. | ||
- | Le disque est considéré comme un espace linéaire constitué de blocs de données, appelés secteurs, de 512 octets chacun, et dont la position est repérée par la LBA (Logical block addressing). | + | Le disque est considéré comme un espace linéaire constitué de blocs de données successifs, appelés secteurs, de 512 octets chacun, et dont la position est repérée son rang dans cet espace, à partir de 0 (adresse du MBR). Cette méthode d'adressage est nommée LBA (Logical block addressing). |
- | La première adresse commence en zéro (mbr) et la dernière (pas forcément utilisable) peut être calculée en divisant la taille du disque en octets par 512 et en retirant 1. | + | La dernière adresse, qui n'est pas forcément utilisable, peut être calculée en divisant la taille du disque en octets par 512 et en retirant 1. |
\\ | \\ | ||
Ligne 90: | Ligne 91: | ||
\\ | \\ | ||
- | Au milieu de tout ce charabia :-( on distingue quelques messages - en fait des messages d'erreurs - qui pourraient être affichés en cas de détection de problèmes. | + | Au milieu de tout ce charabia :-( on distingue quelques messages - en fait des messages d'erreurs - qui pourraient être affichés en cas de détection de problèmes. |
\\ | \\ | ||
<note tip>On remarque que nous sommes dans la situation où l'amorceur Grub est dans le mbr (chaine faisant référence à grub)</note> | <note tip>On remarque que nous sommes dans la situation où l'amorceur Grub est dans le mbr (chaine faisant référence à grub)</note> | ||
Ligne 102: | Ligne 103: | ||
La première partie, adresses comprises entre **000 et 1b7**, correspond à la partie exécutable du mbr. Elle est chargée en mémoire vive (ainsi que le reste du mbr) lorsque le PC démarre ("boote") sur ce disque. Elle a pour fonction de vérifier la validité de la table des partitions et de rechercher une partition amorçable du disque. | La première partie, adresses comprises entre **000 et 1b7**, correspond à la partie exécutable du mbr. Elle est chargée en mémoire vive (ainsi que le reste du mbr) lorsque le PC démarre ("boote") sur ce disque. Elle a pour fonction de vérifier la validité de la table des partitions et de rechercher une partition amorçable du disque. | ||
- | <note>Détailler cette partie</note> | + | <note>Voir par ici une analyse détaillée de [[:la_partie_executable_du_mbr|la partie executable du mbr]]</note> |
\\ | \\ | ||
Ligne 110: | Ligne 111: | ||
Entre **1b8 et 1bb** se trouve l'identifiant du disque, soit les octets **5d 52 5d 52**, que l'on peut avoir par exemple en faisant un<code>sudo fdisk -lu</code> | Entre **1b8 et 1bb** se trouve l'identifiant du disque, soit les octets **5d 52 5d 52**, que l'on peut avoir par exemple en faisant un<code>sudo fdisk -lu</code> | ||
\\ | \\ | ||
- | <code>Identifiant de disque : 0x525d525d</code><note tip>L'ordre des octets est inversé du fait du codage [[http://fr.wikipedia.org/wiki/Endianness|little endian]] (on commence par mettre les octets de "poids faible" avant les octets de "poids fort"). | + | <code>Identifiant de disque : 0x525d525d</code><note tip>L'ordre des octets est inversé du fait du codage [[wpfr>Endianness|little endian]] (on commence par mettre les octets de "poids faible" avant les octets de "poids fort"). |
</note> | </note> | ||
Ligne 122: | Ligne 123: | ||
<note important>Cette table commençant à l'adresse **1be** (446) et se terminant en **1fd** (509) contient 64 octets qui correspondent aux quatre entrées de 16 octets des 4 partitions principales - c'est d'ailleurs pour cela que les partitions principales sont limitées à 4 dans les tables de type msdos.</note> | <note important>Cette table commençant à l'adresse **1be** (446) et se terminant en **1fd** (509) contient 64 octets qui correspondent aux quatre entrées de 16 octets des 4 partitions principales - c'est d'ailleurs pour cela que les partitions principales sont limitées à 4 dans les tables de type msdos.</note> | ||
+ | <note tip>Dans le cas d'un partitionnement de type GPT, le mbr est un mbr protector qui ne contient qu'une unique partition de type ee commençant à la LBA 1.\\ | ||
+ | Le code présent dans le mbr n'est pas utilisé en cas de boot en mode UEFI | ||
+ | </note> | ||
\\ | \\ | ||
Cette table des partitions est donc ici (en affichant à partir de l'adresse 1be pour avoir une ligne par partition puis en séparant par groupes d'octets) | Cette table des partitions est donc ici (en affichant à partir de l'adresse 1be pour avoir une ligne par partition puis en séparant par groupes d'octets) | ||
Ligne 150: | Ligne 153: | ||
\\ | \\ | ||
\\ | \\ | ||
- | L'octet suivant code le [[http://fr.wikipedia.org/wiki/Partition_de_disque_dur|système de fichier de la partition]], ici le **07** signifie ntfs (j'ai un dual boot avec Windows :-?), les autres valeurs couramment rencontrées sont :\\ | + | L'octet suivant code le [[wpfr>Partition_de_disque_dur|système de fichier de la partition]], ici le **07** signifie ntfs (j'ai un dual boot avec Windows :-?), les autres valeurs couramment rencontrées sont :\\ |
**05, 0f** : étendue\\ | **05, 0f** : étendue\\ | ||
**0b** : fat32\\ | **0b** : fat32\\ | ||
Ligne 165: | Ligne 168: | ||
Nous arrivons au plus intéressant car c'est ici que sont codés le début et la taille des partitions dans le système LBA (Logical block addressing). | Nous arrivons au plus intéressant car c'est ici que sont codés le début et la taille des partitions dans le système LBA (Logical block addressing). | ||
- | Le premier groupe de 4 octets correspond à l'emplacement du début de la partition (en hexadécimal et en [[http://fr.wikipedia.org/wiki/Endianness|little endian]]) et la taille (même format). | + | Le premier groupe de 4 octets correspond à l'emplacement du début de la partition (en hexadécimal et en [[wpfr>Endianness|little endian]]) et la taille (même format). |
\\ | \\ | ||
Ligne 238: | Ligne 241: | ||
\\ | \\ | ||
- | * **(fr)** [[http://fr.wikipedia.org/wiki/Master_boot_record]] | + | * **(fr)** [[wpfr>Master_boot_record|Master boot record sur Wikipédia]] |
- | * **(fr)**[[http://fr.wikipedia.org/wiki/Partition_de_disque_dur]] | + | * **(fr)**[[wpfr>Partition_de_disque_dur|Les partition de disque dur sur Wikipédia]] |
- | * [[http://forum.ubuntu-fr.org/viewtopic.php?id=390336]] sur le forum ubuntu-fr | + | * [[https://forum.ubuntu-fr.org/viewtopic.php?id=390336|Forum ubuntu-fr]] |
- | * **(fr)**[[http://fr.wikipedia.org/wiki/Logical_block_addressing]] | + | * **(fr)**[[wpfr>Logical_block_addressing|Adressage logique sur Wikipédia]] |