Recupération de partitions I : Quelques définitions et structures
Dans les articles qui suivent, nous évoquerons ces termes à maintes reprises. Autant se familiariser tout de suite avec ces termes :
- LBA = Logical Block Address : Le numéro du secteur. En général, un secteur fait 512 bytes ou 4 KBytes
- LDM = Logical Disk Manager
- MFT = Master File Table. La database du système de fichiers NTFS.
- MBR = Master Boot Recor
- Le secteur le plus important du disque : Le secteur (LBA) 0
- https://technet.microsoft.com/en-us/library/cc976786.aspx
- PBS = Partition Boot Sector : Le premier secteur d'une partition.
- BPB : BIOS Parameter Block : Une partie du PBS
- GPT = GUID Partition Table.
L'objectif de ces articles est de parcourir les secteurs importants des disques pour comprendre où pourrait se placer une corruption et de la réparer (quand c'est possible) juste en écrivant la bonne information au bon endroit. Toutes les structures que nous allons parcourir sont déjà décrites dans MSDN.
Aussi, si vous souhaitez avoir plutôt une approche développeur, un bon point de départ serait d'invoquer un DeviceIoControl en utilisant le control code IOCTL_DISK_GET_DRIVE_LAYOUT_EX (cf. https://msdn.microsoft.com/fr-fr/library/windows/desktop/aa365174(v=vs.85).aspxpour plus de détails)
Ce contrôle vous fournira une structure de type DRIVE_LAYOUT_INFORMATION_EX
typedef struct _DRIVE_LAYOUT_INFORMATION_EX {
DWORD PartitionStyle;
DWORD PartitionCount;
union {
DRIVE_LAYOUT_INFORMATION_MBR Mbr;
DRIVE_LAYOUT_INFORMATION_GPT Gpt;
};
PARTITION_INFORMATION_EX PartitionEntry[1];
} DRIVE_LAYOUT_INFORMATION_EX, *PDRIVE_LAYOUT_INFORMATION_EX;
Nous n'évoquerons pas d'avantage cette approche dans cette série, mais cela pourrait faire le sujet d'une autre série si la demande est forte.
Comme expliqué, la MSDn regorge de schémas explicatifs mais essayons de les présenter différemment afin d'afficher plutôt une comparaison de ces structures, si cela peut aider.
Comparaison MBR et GPT
Différences principales (liste non exhaustive) dans les fonctionnalités:
MBR |
GPT |
|
Nombre de partitions primaires |
4 |
128 |
Taille de disque maximale |
2 TB |
2^64 LBA = 8*2^30 TB |
Protection de la table de partition |
NON |
OUI |
Quelques références:
- FAQ sur les GPT : https://msdn.microsoft.com/en-us/windows/hardware/gg463525
- Pour le fun et pour les amateurs des grandes tailles: Kilo, Mega, Giga, Téra, Péta, Exa, Zetta et Yotta : https://fr.wikipedia.org/wiki/Octet
Comparaisons des structures identifiables, écrites à plat sur les disques basiques
Pour avoir une vision complète des disques basiques, aller sur https://technet.microsoft.com/en-us/library/cc739412(v=ws.10).aspx
Comparaisons des structures identifiables, écrites à plat sur les disques dynamiques
Pour avoir une vision complète des disques dynamiques, aller sur https://technet.microsoft.com/fr-fr/library/cc758035(v=WS.10).aspx
Comparaisons des disques basique et dynamiques
Différences principales (liste non exhaustive) en terme de fonctionnalités
Basiques |
Dynamiques |
|
Nombre maximal de volumes |
4 |
> 4 * |
RAID Logiciel |
NON |
OUI |
Protection des volumes |
NON |
OUI |
Extension de volumes |
OUI ** |
OUI |
* Le nombre de volumes que peut supporter un disque dynamique n'est pas illimité car la database est limitée à 1 MB. Sachant que chaque disque dynamique attaché à un système contient la descroption de tous les volumes de ce système, rajouter des disques n'augmentera pas cette limite. Au contraire, il faudra rajouter des enregistrement pour en plus pour décrire le nouveau disque.
** Il est possible d'étendre un volume sur plusieurs disques dynamique, mais sur des disques basiques, on ne peut rester que sur le même disque.
Les différents types de volumes sont décrit sur : https://technet.microsoft.com/fr-fr/library/cc737048(v=WS.10).aspx
Dans le post suivant, nous allons tenter de voir concrètement comment cela se traduit en donnée brute écrite sur les disques.
Serge Gourraud
55 AA
Comments
- Anonymous
January 06, 2015
Il arrive que les structures qui décrivent les partitions sur les disques soient perdues ou corrompues