|
Structure d'un disque et de ses partitions
Description des structures de partition
Les chemins ARC
Les commutateurs du boot.ini
Structure
d'un disque et de ses partitions
Un disque dur peut être partagé en plusieurs
"morceaux", appelés "partitions",
pour différentes raisons, par exemple:
- Coexistence
de différents systèmes d'exploitation (DOS, Windows NT,
LINUX, OS/2,...)
- Taille
physique d'un disque trop grande par rapport à ce que
peut gérer le système d'exploitation utilisé (p.ex. les
premiers DOS ne pouvaient pas "adresser" des
partitions de plus de 32 Mo, les suivants plus de 2
Go,...)
- Séparation
physique, pour des questions de sécurité, du système,
des applications, des données,...
Un disque (physique) est donc ainsi structuré (exemple)
:
|
Secteur de partition principal
(MBR = Master Boot Record) |
Partition
1 (FAT)
(Primaire) |
Partition
2(FAT)
(Primaire) |
Partition
3
(Etendue) |
Partition
4 (NTFS)
(Primaire) |
| Secteur
de boot |
FAT |
Root |
Files |
Secteur
de boot |
FAT |
Root |
Files |
Secteur de
partition secondaire |
Partition
logique 3.1 (xxxx) |
Partition
logique 3.2 (xxxx) |
Secteur
de boot |
MFT |
System Files |
Files |
| Secteur de
boot |
|
|
|
Secteur de
boot |
|
|
|
FAT
: File Allocation Table, a donné son nom au type de
partition du même nom, utilisé par DOS, Windows 95/98,
Windows NT la FAT est une table de chaînage de clusters (agrégats
de secteurs) permettant l'adressage et la reconstitution des
fichiers
NTFS : NT File Sytem, utilisé par
Windows NT
MFT : Master File Table, un
composant de NTFS
Description des structure de partition
1. Structure du secteur de partition principal
|
Adresse
(hexa)
|
Contenu
|
Type
|
|
000
|
Programme de partition
|
Code (446 octets au maximum)
|
|
1BE
|
1ère entrée
dans la table de partition
|
16 octets
|
|
1CE
|
2ème entrée
dans la table de partition
|
16 octets
|
|
1DE
|
3ème entrée
dans la table de partition
|
16 octets
|
|
1EE
|
4ème entrée
dans la table de partition
|
16 octets
|
|
1FE
|
AA55
(code d'identification)
|
2 octets
|
On constate qu'il ne peut pas y avoir plus
de 4 partitions dites primaires
(cette limite peut être contournée à l'aide des
partitions étendues)
2. Structure d'une entrée dans la table de
partition
|
Adresse
(hexa)
|
Contenu
|
Type
|
|
00
|
Etat de la partition :
- -
00 : partition non active
- -
80 : partition active
|
1 octet
|
|
01
|
Tête où
commence la partition
|
1 octet
|
|
02
|
Secteur et cylindre
où commence la partition
|
2 octets
|
|
04
|
Type de partition
:
- 00
: non utilisée
- 01
: FAT12 (< 10 M)
- 02
: XENIX root
- 03
: XENIX usr
- 04
: FAT16 (< 32 M)
- 05
: FAT, HPS, NTFS étendue
- 06
: FAT16 (> 32 M et <2 G)
- 07
: HPFS/NTFS
- 08
: AIX
- 09
: AIX boot
- 0A
: OS/2 boot
- 0B
: FAT32 (>2 G et <2047 G)
- 0C
: FAT32X (idem 0B + LBA)
- 0E
: FAT16X (idem 06 + LBA)
- 0F
: étendue X (idem 05 + LBA)
- 40
: VENIX
- 51
: Novell
- 52
: Microport
- 63
: GNU HURD
- 64
: Novell
- 65
: Novell
- 75
: PC/IX
- 80
: MINIX (old)
- 81
: MINIX
- 82
: LINUX (swap)
- 83
: LINUX (native)
- EB:
BeOS
- ....
LBA
= Large
Block Addressing, dispositif du BIOS permettant l'accès à des disques de plus de 1024
cylindres
NB: Si le bit 4
du numéro de la partition est à 1, cela permet de cacher la
partition (xxx1xxxx)
Ex.:
- 83 = Linux native
-
93 = Linux native cachée
|
1 octet
|
|
05
|
Tête où finit
la partition
|
1 octet
|
|
06
|
Secteur et cylindre
où finit la partition
|
2 octets
|
|
08
|
Distance en
secteurs entre secteur de partition et secteur de boot de la partition
|
4 octets
|
|
0C
|
Nombre de
secteurs de la partition
|
4 octets
|
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.
3. Structures
de boot
Secteur
de boot de partition FAT12 ou FAT16 (DOS,
Windows 3.x, Windows 9x, Windows NT)
|
Adresse
(hexa)
|
Contenu
|
Taille
(octets)
|
|
000
|
Instruction
de saut à la routine
de boot
|
3
|
|
003
|
Nom
du fabricant et n° version(p.ex.MSWIN4.0)
|
8
|
|
00B
|
Octets
par secteur (0x200 = 512)
|
2
|
|
00D
|
Secteurs
par cluster (variable)
|
1
|
|
00E
|
Nbre
secteurs réservés (1)
|
2
|
|
010
|
Nbre
de FAT (2)
|
1
|
|
011
|
Nbre
d'entrées répertoire racine (0x200 = 512)
|
2
|
|
013
|
Nbre
de secteurs dans le volume (variable) ou 0 si la partition est trop grande
|
2
|
|
015
|
Descripteur
de support (0xF8 pour un disque dur)
|
1
|
|
016
|
Nbre
de secteurs par FAT
|
2
|
|
018
|
Nbre
de secteurs par piste (variable)
|
2
|
|
01A
|
Nbre
de têtes (variable)
|
2
|
|
01C
|
Distance
entre 1er secteur du volume et 1er secteur du support
|
4
|
|
020
|
Nbre
de secteurs dans le volume (variable) si la valeur contenue à l'offset
013 est nulle
|
4
|
|
024
|
N°
BIOS du disque physique (commence à 0x00 pour
les disquettes, et 0x80 pour les disques durs)
|
1
|
|
025
|
A
l'origine, n° de tête du secteur de boot. Inutilisé
sauf par Windows NT
|
1
|
|
026
|
Signature.
Inutilisé sauf par Windows NT
|
1
|
|
027
|
N°
de série du disque (créé au formatage à partir de
la date)
|
4
|
|
02B
|
Nom
de volume (identique à celui figurant dans le répertoire
racine)
|
11
|
|
036
|
Chaîne
décrivant l e système de fichiers
("FAT12", "FAT16")
|
8
|
|
03E
à 1FD
|
Routine
de boot
|
448
|
|
1FE
|
AA55
(code
d'identification, id.secteur de partition)
|
2
|
Structure
d'un secteur de boot de partition FAT32 (Windows
9x, Windows 2000)
|
Adresse
(hexa)
|
Contenu
|
Taille
(octets)
|
|
000
|
Instruction
de saut à la routine
de boot
|
3
|
|
003
|
Nom
du fabricant et n° version(p.ex.MSWIN4.0)
|
8
|
|
00B
|
Octets
par secteur (0x200 = 512)
|
2
|
|
00D
|
Secteurs
par cluster (variable)
|
1
|
|
00E
|
Nbre
secteurs réservés (1)
|
2
|
|
010
|
Nbre
de FAT (2)
|
1
|
|
011
|
Nbre
d'entrées répertoire racine : inutilisé
|
2
|
|
013
|
Nbre
de secteurs dans le volume (variable) ou 0 si la partition est trop grande
|
2
|
|
015
|
Descripteur
de support (0xF8 pour un disque dur)
|
1
|
|
016
|
Nbre
de secteurs par FAT. Toujours à 0x0000 en FAT32 (cf
offset 024)
|
2
|
|
018
|
Nbre
de secteurs par piste (variable)
|
2
|
|
01A
|
Nbre
de têtes (variable)
|
2
|
|
01C
|
Distance
entre 1er secteur du volume et 1er secteur du support
|
4
|
|
020
|
Nbre
de secteurs dans le volume (variable) si la valeur contenue à l'offset
013 est nulle
|
4
|
|
024
|
Nbre
de secteurs par FAT32 (remplace l'information à
l'offset 016)
|
4
|
|
028
|
Indicateurs
servant au "mirroring" de la FAT.
|
2
|
|
02A
|
N°
de version du système de fichiers
|
2
|
|
02C
|
N°
du 1er cluster du répertoire racine
|
4
|
|
030
|
N°
du secteur du fichier d'information système (0xFFFF
s'il n'existe pas)
|
2
|
|
032
|
N°
du secteur de sauvegarde de boot (0xFFFF s'il
n'existe pas)
|
2
|
|
034
|
réservés
|
12
|
|
040
à 1FD
|
Routine
de boot
|
446
|
|
1FE
|
AA55
(code
d'identification, id.secteur de partition)
|
2
|
Structure
d'un secteur de boot de partition NTFS (Windows
NT)
|
Adresse
(hexa)
|
Contenu
|
Taille
(octets)
|
|
000
|
Instruction
de saut à la routine
de boot
|
3
|
|
003
|
Nom
du fabricant et n° version(p.ex.NTFS)
|
8
|
|
00B
|
Octets
par secteur (0x200 = 512)
|
2
|
|
00D
|
Secteurs
par cluster (variable)
|
1
|
|
00E
|
Nbre
secteurs réservés (0x00)
|
2
|
|
010
|
inutilisé
(0x00)
|
1
|
|
011
|
inutilisé
(0x0000)
|
2
|
|
013
|
inutilisé
(0x0000)
|
2
|
|
015
|
Descripteur
de support (0xF8 pour un disque dur)
|
1
|
|
016
|
inutilisé
(0x0000)
|
2
|
|
018
|
Nbre
de secteurs par piste (variable)
|
| |