Les catégories de partition ("primaire", "étendue", "logique") sont des notions INDÉPENDANTES de tout système d'exploitation. C'est lié UNIQUEMENT à la plate-forme matérielle, à savoir INTEL (et compatibles)
Le partitionnement permet de découper un disque PHYSIQUE en plusieurs "morceaux" (partitions), cela étant d'ailleurs totalement indépendant des systèmes d'exploitation que l'on va y mettre (DOS, Win98, WinNT, W2k, Linux, Novell, Solaris, ...). Les raisons qui motivent ce partage sont multiples :
On peut comparer un disque (physique) à une armoire, dans laquelle on va mettre des rayonnages (= les partitions), qui vont servir à accueillir aussi bien de la vaisselle, du linge, des bouteilles,...et permettre ainsi de faire un peu d'ordre dans tout ce bazar hétéroclite!
Le problème (historique) est qu'au départ (et il est quasi impossible de revenir dessus, pour des questions de compatibilité avec l'existant) seulement 4 "rayonnages" au maximum ont été prévus. (De plus, DOS et Windows 95/98 ne permettent pas de créer plus d'une partition primaire - je me suis toujours demandé pourquoi! - mais ils acceptent des disques ayant plus d'une partition primaire, les partitions primaires supplémentaires ayant été créées en utilisant p.ex. "Partition Magic", "FDISK" de LINUX ou "WINDISK" de WinNT).
Un tel rayonnage constitue une partition "PRIMAIRE" (ou "PRINCIPALE", les deux appellations sont équivalentes) Comme on peut être amené à avoir plus de 4 rangements différents, et bien l'un de ces rayonnages va contenir un "gros" tiroir compartimenté. Ce tiroir s'appelle partition "ÉTENDUE", et chaque compartiment du tiroir sera une partition "LOGIQUE".
Toujours pour des questions historiques (au départ, les disques étaient tout petits, comparés à ceux de maintenant), on ne peut créer que un ou deux compartiments, le 2ème étant alors un nouveau tiroir, "emboîté" dans un compartiment. Et ce "petit" tiroir peut à nouveau contenir 2 compartiments, un pour du rangement (=partition LOGIQUE), et un autre pour un nouveau tiroir, et ainsi de suite, à l'infini (jusqu'à ce qu'il n'y ait plus de place du tout)
L'opération de "partage", ou partitionnement, est effectuée par :
Le partitionnement n'existe QUE POUR LES DISQUES DURS (et non pour les disquettes)
Ensuite, la "préparation" des zones de rangements (=des cloisons dans les compartiments créés) est effectuée par l'outil Format (sous DOS/Windows).
Donc un disque pourra avoir la structure suivante :
DISQUE PHYSIQUE | |||
Partition primaire | Partition étendue | ||
Partition logique | Partition étendue | ||
Partition logique | Partition étendue | ||
Partition logique |
Ce disque possède 1 partition PRIMAIRE (celle où on va stocker le système d'exploitation généralement), et 3 partitions LOGIQUES (ce sont les seules qui nous intéressent : les "contenus", les partitions ÉTENDUES n'étant que des "contenants")
Voici un autre exemple, plus détaillé :
MBR |
Partition 1 |
Partition 2 |
Partition 3 |
Partition 4 |
||||||||||||||||||||||||||
BS | FAT | Root | Files | BS | FAT | Root | Files | EBR |
Partition |
Partition |
BS | MFT |
Files |
MFT bis | Files | BS bis | ||||||||||||||
BS | EBR | Partition logique 3.2.1 | Partition étendue 3.2.2 |
|||||||||||||||||||||||||||
BS | EBR | Partition logique 3.2.2.1 | ... | |||||||||||||||||||||||||||
BS |
Abréviation Signification Commentaire MBR Master Boot Record secteur de partition principal EBR Extended Boot Record secteur de partition secondaire : contient la table des partitions d'une partition étendue BS Boot Sector secteur de boot Root répertoire racine Limité en taille sous FAT12 ou FAT16 FAT File Allocation Table table de chaînage de clusters (agrégats de secteurs) permettant l'adressage et la reconstitution des fichiers
a donné son nom au type de partition du même nom, utilisé par DOS, Windows 95/98, Windows NTNTFS NT File Sytem système de fichiers utilisé par Windows NT/W2K/XP MFT Master File Table composant important d'une partition NTFS. Contient la table des fichiers, index, droits,...
Ce disque (physique) est composé de :
On pourra attribuer p.ex. :
Tout dépend de "l'humeur" de l'utilisateur (en ce qui me concerne, j'ai une partition "outils de développement", une "gravure de CD", une "outils de dessin", une "utilitaires", une "backup vitaux", une pour la mémoire virtuelle...)
Le secteur de partition principal (MBR) est situé au début du disque (tête
0, cylindre 0, secteur 1),
comme tout secteur il a une taille de 512 octets.
Il est chargé par le BIOS à l'adresse mémoire 0000:7C00
(si une disquette n'a pas "pris la main").
Ensuite, le BIOS teste si le dernier mot (de 16 bits) de ce secteur est
égal à 0xAA55, qui indique que le disque a bien été partitionné
(sinon, un message d'erreur est affiché par le BIOS). Si c'est effectivement le cas, le programme de partition qui réside au début de ce secteur est
lancé.
Adresse (hexa) |
Contenu |
Taille |
000 | Programme de partition | 442 |
1BA | Signature (sous Windows NT/2000/XP/2003) | 4 |
1BE | 1ère entrée dans la table de partition | 16 |
1CE | 2ème entrée dans la table de partition | 16 |
1DE | 3ème entrée dans la table de partition | 16 |
1EE | 4ème entrée dans la table de partition | 16 |
1FE | AA55 (code d'identification) | 2 |
Remarques :
Exemple : A l'aide d'un éditeur disque (DskProbe
ou HexWorkshop) on voit que le MBR du 2ème disque d'un PC
contient, à l'offset 0x1BA les valeurs suivantes :
|
Les valeurs contenues dans la BDR et dans le MBR doivent être
égales.
Cela permet à Windows :
Un disque doit être signé pour qu'il puisse être géré par Windisk ou DiskMgmt.
Adresse (hexa) |
Offset dans le |
Contenu |
Taille |
|||
1 | 2 | 3 | 4 | |||
00 | 1BE | 1CE | 1DE | 1EE | Etat de la partition : - 00 : partition non active - 80 : partition active |
1 |
01 | 1BF | 1CF | 1DF | 1EF | N° de tête où commence la partition | 1 |
02 | 1C0 | 1D0 | 1E0 | 1F0 | N° de secteur et cylindre où commence la partition | 2 |
04 | 1C2 | 1D2 | 1E2 | 1F2 | Type de partition | 1 |
05 | 1C3 | 1D3 | 1E3 | 1F3 | N° de tête où finit la partition | 1 |
06 | 1C4 | 1D4 | 1E4 | 1F4 | N° de secteur et cylindre où finit la partition | 2 |
08 | 1C6 | 1D6 | 1E6 | 1F6 | Distance en secteurs entre secteur de partition et secteur de boot de la partition |
4 |
0C | 1CA | 1DA | 1EA | 1FA | Taille de la partition en nombre de secteurs de 512 octets | 4 |
Une partition étendue se compose d'une nouvelle table de partition, de structure identique à celle de la table principale, permettant ainsi un chaînage vers des partitions supplémentaires "encapsulées" à la suite.
Les partitions peuvent être de différents types (méthode de
"rangement"). Chaque type définit ce qu'on appelle un "système
de fichiers" ("FS" ou FileSystem en
anglais), lequel est, la plupart du temps, fonction du système
d'exploitation ("OS" ou OperatingSystem en
anglais), mais la correspondance n'est pas forcément biunivoque.
Certains systèmes d'exploitation sont très "fermés",
n'acceptant qu'un seul système de fichiers (DOS p.ex.), d'autres au contraire
sont très "ouverts", acceptant à la fois leur propre système
de fichiers et celui d'autres systèmes d'exploitation (Linux et BeOS p.ex.).
Cette ouverture peut toutefois se limiter à des accès en lecture seule.
Il est néanmoins possible d'accéder - dans certains cas - à un type de FS non reconnu par un OS à l'aide de produits spécifiques, (commerciaux ou freewares). Par exemple le logiciel Explore2Fs est un freeware qui permet la lecture (et même l'écriture) de partitions EXT2 (Linux) sous Windows.
Le nom des FS est généralement un acronyme ("FAT" = File
Allocation Table, "NTFS" = New Technology File System,
...)
Voici un tableau succinct donnant les correspondances entre OS et
FS :
OS / FS | ISO9660 | FAT12 | FAT16 | FAT32 | NTFS | EXT2 | BeFS |
DOS 6.x | |||||||
Windows 95 <OSR2 | |||||||
Windows 95 OSR2 et > | |||||||
Windows NTx | |||||||
Windows 2000 et > | |||||||
Linux | R | ||||||
Be OS | R | R |
= supporté | |
= non supporté | |
= supporté mais à l'aide de produit tiers (driver, logiciel, ..)
|
|
R | = ReadOnly (Lecture seule) |
ISO9660 | = format standard des CDROM |
Le type d'une partition étant défini par un octet, il existe
théoriquement 255 systèmes de fichiers possibles.
Dans le tableau ci-dessous, les codes des partitions sont en
hexadécimal.
Plusieurs types de partition peuvent être désignés par le même code (p.ex.
HPFS d'OS/2 et NTFS de NT).
code | type | code | type | code | type | code | type |
00 |
partition non définie |
40 | VENIX | 80 | MINIX (-> 1.4a) | C0 | CTOS REAL/32 secure NTFT |
01 | FAT12 (< 10 M) | 41 | MINIX + DRDOS Personal RISC Boot Power PC Reference Platform |
81 | MINIX (1.4b
->) Mitac Disk Manager |
C1 | FAT-12 DRDOS |
02 | XENIX root | 42 | Linux swap +
DRDOS SFS Windows 2000 |
82 | Solaris X86 LINUX swap Prime |
C2 | Linux swap cachée |
03 | XENIX /usr | 43 | Linux native + DRDOS | 83 | LINUX native (ext2fs) | C3 | Linux cachée |
04 | FAT16 (< 32 M) | 44 |
non attribué |
84 | OS/2 cachée Hibernation |
C4 | FAT16 < 32M DRDOS |
05 | étendue | 45 | Boot-US
boot manager EUMEL/Elan |
85 | Linux étendue | C5 |
non attribué |
06 | FAT16 (> 32 M et <2 G) | 46 | EUMEL/Elan | 86 | agrégat FAT (NT) | C6 | FAT16 >=
32M DRDOS FAT16 corrompue (NT) |
07 | OS/2 HPFS NT NTFS Advanced UNIX QNX2.x |
47 | EUMEL/Elan | 87 | agrégat NTFS (NT) | C7 |
NTFS corrompue (NT) |
08 | AIX boot SplitDrive Commodore DOS DELL spanning QNX 1.x et 2.x |
48 | EUMEL/Elan | 88 |
non attribué |
C8 |
non attribué |
09 | AIX data Coherent FileSystem |
49 | non attribué | 89 |
non attribué |
C9 | non attribué |
0A | OS/2
boot manager Coherent swap OPUS |
4A | non attribué | 8A | Linux Kernel | CA | non attribué |
0B | FAT32 (>2 G et <2047 G) | 4B | non attribué | 8B | FAT32 miroir | CB | FAT32 DRDOS |
0C | FAT32x = idem 0B + LBA | 4C | non attribué | 8C | FAT32x miroir | CC | FAT32x DRDOS |
0D |
non attribué |
4D | QNX4.x | 8D | FAT12 cachée (FreeFDISK) | CD | CTOS |
0E | FAT16x = idem 06 + LBA | 4E | QNX4.x 2ème part. | 8E | Linux Logical Volume Manager | CE | FAT16x DRDOS |
0F | étendue"x" = idem 05 + LBA | 4F | QNX4.x 3ème part. Oberon |
8F |
non attribué |
CF |
non attribué |
10 | OPUS | 50 | OnTrack
Disk Manager Lynx RTOS Oberon native |
90 | FAT16 cachée (FreeFDISK) | D0 | REAL32 |
11 | FAT12 cachée | 51 | OnTrack Disk Manager RW Novell |
91 | étendue
cachée (FreeFDISK) |
D1 | Multiuser DOS secured FAT12 |
12 | Diagnostics COMPAQ | 52 | Microport CP/M |
92 | FAT16 large cachée (FreeFDISK) | D2 | non attribué |
13 |
non attribué |
53 | Disk Manager 6.0 Aux3 | 93 | Amoeba Linux native cachée |
D3 | non attribué |
14 | FAT16 (< 32 M) cachée | 54 | Disk Manager 6.0 Dynamic Drive Overlay | 94 | Amoeba bad block table | D4 | Multiuser DOS secured FAT16 <32M |
15 |
non attribué |
55 | EZ-Drive | 95 | MIT EXOPC native | D5 | Multiuser DOS secured étendue |
16 | FAT16 (> 32 M) cachée | 56 | Golden Bow EZ-BIOS |
96 |
non attribué |
D6 | Multiuser DOS secured FAT16 >=32M |
17 | HPFS - NTFS cachée | 57 | DrivePro VNDI |
97 | FAT32 cachée (FreeFDISK) | D7 |
non attribué |
18 | AST Windows swapfile | 58 | non attribué | 98 | FAT32x cachée (FreeFDISK) | D8 | CP/M-86 |
19 | Willowtech Photon coS | 59 | non attribué | 99 | DCE376 logical drive | D9 |
non attribué |
1A |
non attribué |
5A | non attribué | 9A | FAT16x cachée (FreeFDISK) | DA | Non-FS Data |
1B | FAT32 cachée | 5B | non attribué | 9B | étendue X cachée (FreeFDISK) | DB | Digital
Research CP/M Concurrent CP/M Concurrent DOS CTOS KDG Telemetry SCPU boot |
1C | FAT32x cachée | 5C | Priam EDisk | 9C | non attribué | DC | CTOS |
1D |
non attribué |
5D | non attribué | 9D | non attribué | DD | CTOS cachée |
1E | FAT16x cachée | 5E | non attribué | 9E | non attribué | DE |
non attribué |
1F |
non attribué |
5F | non attribué | 9F | BSD/OS | DF | DG/UX virtual disk manager |
20 | Willowsoft OFS1 | 60 | non attribué | A0 | hibernation | E0 | ST AVFS |
21 | Oxygen File System | 61 | SpeedStor | A1 |
réservé |
E1 | SpeedStor FAT12 |
22 | Oxygen Extended | 62 |
non attribué |
A2 |
non attribué |
E2 |
non attribué |
23 |
réservé |
63 | Unix
System V GNU HURD |
A3 |
réservé |
E3 | SpeedStor |
24 | NEC DOS 3.x | 64 | Novell 286 PC-ARMOUR |
A4 |
réservé |
E4 | SpeedStor étendue |
25 |
non attribué |
65 | Novell 386 | A5 | BSD | E5 |
réservé |
26 |
réservé |
66 | Novell Netware SMS | A6 | OpenBSD | E6 |
réservé |
27 | non attribué | 67 | Novell | A7 | NEXTSTEP | E7 | non attribué |
28 | non attribué | 68 | Novell | A8 |
non attribué |
E8 | non attribué |
29 | non attribué | 69 | Novell Netware NSS | A9 | NetBSD | E9 | non attribué |
2A | non attribué | 6A | non attribué | AA | Fat 12 1.44Mb Olivetti | EA | non attribué |
2B | non attribué | 6B | non attribué | AB | non attribué | EB | Be FS |
2C | non attribué | 6C | non attribué | AC | non attribué | EC | non attribué |
2D | non attribué | 6D | non attribué | AD | non attribué | ED | non attribué |
2E | non attribué | 6E | non attribué | AE | ShagOS filesystem | EE | EFI MBR |
2F | non attribué | 6F | non attribué | AF | ShagOS swap partition | EF | EFI |
30 | non attribué | 70 | DiskSecure Multi-Boot | B0 |
non attribué |
F0 | Linux/PA-RISC boot loader |
31 | réservé | 71 | réservé | B1 | réservé | F1 | SpeedStor |
32 | non attribué | 72 | réservé | B2 | non attribué | F2 | DOS 3.3+ secondary partition |
33 | réservé | 73 | réservé | B3 | réservé | F3 |
réservé |
34 |
réservé |
74 | Scramdisk | B4 | réservé | F4 | SpeedStor
large Prologue single-volume |
35 | Journaling FS OS/2 ou eCS | 75 | IBM PC/IX | B5 | non attribué | F5 | Prologue multi-volume |
36 |
réservé |
76 |
réservé |
B6 | réservé | F6 |
réservé |
37 |
non attribué |
77 | VNDI | B7 | BSDI BSD/386 | F7 | non attribué |
38 | THEOS ver 3.2 2 Go | 78 | XOSL Bootloader | B8 | BSDI BSD/386 swap | F8 | non attribué |
39 | Plan
9 THEOS ver 4 spanned |
79 |
non attribué |
B9 | non attribué | F9 | non attribué |
3A | THEOS ver 4 4Go | 7A |
non attribué |
BA | non attribué | FA | non attribué |
3B | THEOS ver 4 étendue | 7B |
non attribué |
BB | non attribué | FB | VMware File System |
3C | PartitionMagic recovery | 7C | non attribué | BC | non attribué | FC | VMware Swap |
3D |
non attribué |
7D | non attribué | BD | non attribué | FD | Linux raid |
3E |
non attribué |
7E | non attribué | BE | Solaris 8 boot | FE | SpeedStor
> 1024 cyl IBM PS/2 IML Windows NT Disk Administrator Linux Logical Volume Manager |
3F |
non attribué |
7F | non attribué | BF |
non attribué |
FF | Xenix Bad Block Table |
15 14 13 12 11 10 09 08 07
06 <-------- Cylindre ---------> |
05 04 03 02 01 00 <--- Secteur ---> |
Attention : les bits 6 et 7 représentent les bits de poids fort du
cylindre (donc à faire passer a gauche du bit 15)
Par exemple, si en 1D0 on trouve 4106, cela signifie (notation
"little endian", donc 06 est l'octet de poids fort)
octets | 07
06 05 04 03 02 01 00 0 0 0 0 0 1 1 0 <---------06----------> |
07
06 05 04 03 02 01 00 0 1 0 0 0 0 0 1 <-------- 41 ---------> |
C/S bruts |
15 14 13 12 11 10 09 08 07
06 <-------- Cylindre ---------> 0 0 0 0 0 1 1 0 0 1 |
05 04 03 02 01 00 <--- Secteur ---> 0 0 0 0 0 1 |
|__| /---<------------<-----/ |--| |
||
C/S réels |
0 1
0 0 0 0 0 1
1 0 = cylindre 0x106 (262) |
0
0 0 0 0 1 = secteur 0x1 |
Quand on examine un disque avec un outil de partitionnement (tel que
Partition Magic ®) , on constate parfois la présence d'une zone vide, non
formatée, de 7.8 Mo en début de disque.
Cette
zone est inaccessible (on ne peut pas la supprimer).
(capture d'écran réalisée avec Server Magic ®)
Cela provient des règles et mécanismes mêmes de
partitionnement d'un
disque, évoqués précédemment.
On rappelle que dans un disque PHYSIQUE :
On a donc le schéma suivant d'un disque, organisé en "c" cylindres de "p" pistes par cylindre et de "s" secteurs par piste :
Disque de c cylindres
pistes / cylindres C0 C1 ... Ci ... Cc-1 p pistes
par
cylindrep0 S1/S2/.../Ss S1/S2/.../Ss ... S1/S2/.../Ss ... S1/S2/.../Ss p1 S1/S2/.../Ss S1/S2/.../Ss ... S1/S2/.../Ss ... S1/S2/.../Ss p2 S1/S2/.../Ss S1/S2/.../Ss ... S1/S2/.../Ss ... S1/S2/.../Ss ... ...
...
... ...
... ...
pp-1 S1/S2/.../Ss S1/S2/.../Ss ... S1/S2/.../Ss ... S1/S2/.../Ss
Le plus souvent :
nombre de cylindres du disque : c= variable (p.ex.553 pour 4.3 Go) nombre de secteurs par piste : s= 63 nombre de pistes par cylindre : p= 255
on aura les attributions de secteurs suivantes :
Disque de c cylindres
pistes / cylindres C0 C1 ... Ci ... Cc-1 p pistes
par
cylindrep0 MBR-------
PPPPPPPP ... XXXXXXXX ... S1/S2/.../Ss p1 PPPPPPPP PPPPPPPP ... XXXXXXXX ... S1/S2/.../Ss p2 PPPPPPPP PPPPPPPP ... XXXXXXXX ... S1/S2/.../Ss ... ...
...
... ...
... ...
pp-1 PPPPPPPP PPPPPPPP ... XXXXXXXX ... S1/S2/.../Ss MBR + partition P
partition X
Commentaires :
on aura les attributions de secteurs suivantes :
Disque de c cylindres
pistes / cylindres C0 C1 ... Ci ... Cc-1 p pistes
par
cylindrep0 MBR-------
EBR------- ... LLLLLLLLL ... S1/S2/.../Ss p1 ----------- LLLLLLLLL ... LLLLLLLLL ... S1/S2/.../Ss p2 ----------- LLLLLLLLL ... LLLLLLLLL ... S1/S2/.../Ss ... ...
...
... ...
... ...
pp-1 ----------- LLLLLLLLL ... LLLLLLLLL ... S1/S2/.../Ss MBR
EBR +
partition Lpartition L
Commentaires :
Dans le cas de la plupart des disques, qui ont 63 secteurs par piste, 255 pistes par cylindre, cela donne :
cylindre 0 complet : 255 x 512 x 63 = 8225280 octets piste 0 du cylindre 1 : 512 x 63 = 32256 octets TOTAL :
= 8257536 octets soit 7,8 Mo