fdisk mbr winxp

Transcription

fdisk mbr winxp
Structure
Un disque dur est constitué non pas d'un seul disque, mais de plusieurs disques rigides (en
anglais hard disk signifie disque dur) en métal, en verre ou en céramique, empilés à une très
faible distance les uns des autres et appelés
plateaux (en anglais platters).
Les disques tournent très rapidement autour d'un axe (à plusieurs milliers de tours par minute
actuellement) dans le sens inverse des aiguilles d'une montre. Un ordinateur fonctionne de
manière binaire, c'est-à-dire que les données sont stockées sous forme de 0 et de 1 (appelés
bits). Il existe sur les disques durs des millions de ces bits, stockés très proches les uns des
autres sur une fine couche magnétique de quelques microns d'épaisseur, elle-même recouverte
d'un film protecteur.
La lecture et l'écriture se fait grâce à des têtes de lecture (en anglais heads) situées de part et
d'autre de chacun des plateaux. Ces têtes sont des électro-aimants qui se baissent et se
soulèvent pour pouvoir lire l'information ou l'écrire. Les têtes ne sont qu'à quelques microns
de la surface, séparées par une couche d'air provoquée par la rotation des disques qui crée un
vent d'environ 250km/h ! De plus ces têtes sont mobiles latéralement afin de pouvoir balayer
l'ensemble de la surface du disque.
Cependant, les têtes sont liées entre elles et une tête seulement peut lire ou écrire à un moment
donné. On parle donc de cylindre pour désigner l'ensemble des données stockées
verticalement sur la totalité des disques.
L'ensemble de cette mécanique de précision est contenu dans un boîtier totalement
hermétique, car la moindre particule peut détériorer la surface du disque. Vous pouvez donc
voir sur un disque des opercules permettant l'étanchéité, et la mention "Warranty void if
removed" qui signifie littéralement "la garantie expire si retiré" car seuls les constructeurs de
disques durs peuvent les ouvrir (dans des salles blanches, exemptes de particules).
Fonctionnement
Les têtes de lecture/écriture sont dites « inductives », c'est-à-dire qu'elles sont capables de
générer un champ magnétique. C'est notamment le cas lors de l'écriture : les têtes, en créant
des champs positifs ou négatifs, viennent polariser la surface du disque en une très petite
zone, ce qui se traduira lors du passage en lecture par des changements de polarité induisant
1
un courant dans la tête de lecture, qui sera ensuite transformé par un convertisseur analogique
numérique (CAN) en 0 et en 1 compréhensibles par l'ordinateur.
Les têtes commencent à inscrire des données à la périphérie du disque (piste 0), puis avancent
vers le centre. Les données sont organisées en cercles concentriques appelés « pistes », créées
par le formatage de bas niveau.
Les pistes sont séparées en quartiers (entre deux rayons) que l'on appelle secteurs, contenant
les données (au minimum 512 octets par secteur en général).
On appelle cylindre l'ensemble des données situées sur une même piste sur des plateaux
différents (c'est-à-dire placé verticalement les unes aux dessus des autres) car cela forme un
"cylindre" de données dans l'espace.
2
On appelle enfin cluster (ou en français unité d'allocation) la zone minimale que peut
occuper un fichier sur le disque. En effet le système d'exploitation exploite des blocs qui sont
en fait plusieurs secteurs (entre 1 et 16 secteurs). Un fichier minuscule devra donc occuper
plusieurs secteurs (un cluster).
Sur les anciens disques durs, l'adressage se faisait ainsi de manière physique en définissant la
position de la donnée par les coordonnées cylindre / tête / secteur (en anglais CHS pour
Cylinder / Head / Sector).
3
4
La table de partitionnement
Une table de partitionnement est stockée sur un disque dur et contient les informations
nécessaires pour diviser un disque dur en partitions. Il existe plusieurs modèles de table de
partitionnement comme celle contenue dans le MBR (Master Boot Record) ou le GPT (GUID
Partition Table).
Le MBR (Master Boot Record)
Le MBR (Master Boot Record) est le premier secteur d’un disque dur.
Si la liste de démarrage de votre PC commence par un disque dur, le BIOS va donc exécuter le
MBR (Master Boot Record) de ce disque dur. Le MBR contient la table de partitions et une
routine d’amorçage permettant de charger le système d’exploitation ou le chargeur d’amorçage
(bootloader).
Le MBR est compatible avec tous les systèmes d’exploitation 32bits et 64 bits. Le MBR possède
néanmoins des limitations, devenues de sérieux inconvénients à l’heure d’aujourd’hui :



4 partitions maximum
Taille d’une partition limitée à 2,2 To (2 200Go)
Impossible de démarrer un disque dur MBR avec un système UEFI
Les limitations actuelles du MBR ont poussé les fabricants à se tourner vers une nouvelle table
de partitionnement plus performante, introduite par Intel : le GPT. Le GPT est d’ailleurs le
standard de l’UEFI, le remplaçant du BIOS.
Pour répondre aux questions les plus courantes, je vous propose encore une petite FAQ.
Quelles versions de Windows peuvent lire, écrire et booter sur un disque dur MBR ?
Toutes les versions de Windows !
Peut-on démarrer sur un disque dur MBR avec un système UEFI ?
Non, un système UEFI ne peut démarrer que sur un disque dur utilisant la table de partitions
GPT.
Un système d’exploitation UEFI peut-il lire et écrire sur un disque dur MBR ?
Oui, une version UEFI de Windows reconnait parfaitement un disque dur MBR, vous pouvez
modifier ou supprimer vos fichiers comme d’habitude.
Le GPT (GUID Partition Table)
Le GPT (GUID Partition Table) est un nouveau standard pour décrire la table de
partitionnement d’un disque dur, il est amené à remplacer le MBR à cause des limitations de
ce dernier qui limite la taille d’une partition à 2,2 To.
Le GPT fait parti du standard UEFI, c’est-à-dire qu’un système d’exploitation UEFI ne peut
démarrer que sur un disque dur utilisant une table de partitions GPT. De manière globale, un
5
BIOS traditionnel ne peut démarrer sur un disque dur GPT. Mais le GPT est aussi utilisé par
certains BIOS à cause des limitations de la table de partitions MBR.
Pour répondre aux questions les plus fréquentes, je vous propose encore une petite FAQ ;)
Quelle est le nombre limite de partitions sur un disque dur GPT ?
128 partitions maximum sur Windows.
Quelle est la taille limite d’une partition sur un disque dur GPT ?
256 To par partition sur Windows.
Quelles versions de Windows peuvent lire le contenu d’un disque dur GPT ?
Toutes les versions 32 bits et 64 bits de Windows Vista, Windows 7, Windows 8 et la version 64
bits de Windows XP.
Quelles sont les versions de Windows qui peuvent démarrer sur un disque dur GPT ?
Pour booter sur un disque dur GPT, vous devez activer l’UEFI dans les paramètres de votre carte
mère et avoir une version 64 bits de Windows Vista SP1, Windows 7 ou Windows 8. Aucune
version 32 bits de Windows ne peut démarrer sur un disque dur GPT. Windows XP 64 bits ne
peut pas non plus booter sur un disque dur GPT.
Que voit une version de Windows qui ne supporte pas les disques durs GPT ?
Un Windows ne supportant pas le GPT comme Windows XP 32 bits verra une unique partition
Protective MBR. Cette partition ne sera pas montée par Windows et vous ne pourrez pas accéder
à son contenu.
Peut-on avoir à la fois un disque dur MBR et GPT sur un même système ?
Oui, vous devez pour cela posséder un Windows supportant le format GPT et démarrez votre
ordinateur sur un disque dur GPT.
Peut-on convertir un disque dur MBR en GPT et inversement ?
Oui, mais il faut que votre disque dur soit vide : il faut supprimer toutes les données et toutes les
partitions de votre disque dur. Seulement à partir de là, vous pourrez convertir votre disque dur
GPT en MBR et inversement. Ces tutoriels vous seront sûrement utiles : convertir un disque dur
GPT en MBR et convertir un disque dur MBR en GPT.
J’espère que ce guide vous aura été utile pour bien comprendre la différence entre les tables de
partitions MBR et GPT. Je suis ne pas entrer dans les détails techniques, préférant centrer ce
guide autour d’une série de questions-réponses. Cela vous permettra à mon sens de mieux
comprendre les points essentiels comme la compatibilité entre le MBR, le GPT, l’UEFI et
Windows
6
Le main boot record (MBR) est le premier secteur physique de tout disque. Il contient dans ses 512
octets des informations capitales sur la structure du support et la moindre altération de son
contenu rend généralement le disque illisible.
Au démarrage d'un ordinateur, lorsque le BIOS a fini sa séquence d'initialisation (POST = Power-On
Self Test) la dernière instruction qu'il exécute envoie la tête de lecture lire le contenu de ce secteur
sur le disque que le BIOS a enregistré comme disque de démarrage. La suite du comportement de
l'ordinateur est dictée par les informations contenues dans le MBR. Le contenu sera détaillé à partir
le la fin du secteur parce que, paradoxalement c'est plus logique sur le plan fonctionnel.





Tout d'abord l'ordinateur repère la présence sur les deux derniers octets du nombre 55AA
(en hexadécimal) appelé aussi "marque de secteur exécutable". En l'absence de ce
marqueur les opérations ne pourraient se poursuivre.
Ensuite viennent 64 octets constituant la table des partitions, c'est-à-dire indiquant le
nombre de partitions présentes sur le disque et leur emplacement.
4 octets contiennent la signature numérique du disque qui est affectée au moment du
formatage et qui est reprise dans de nombreuses clés de la base de registre.
Une centaine d'octets (variable selon la langue) sont affectés au texte des messages
d'erreur au démarrage (table de partition non valide, Système d'exploitation absent...).
Enfin les 300 premiers octets du secteur contiennent un code exécutable dont l'importance
est capitale.
En effet, après avoir constaté la présence du marqueur 55AA l'ordinateur exécute ce code. Dans
une première étape le code charge en mémoire la table des partitions, repère en la lisant quelle est
la partition active (celle qui contient le système d'exploitation) et envoie l'ordinateur lire le secteur
de boot (= de démarrage, à ne pas confondre avec le MBR) de cette partition.
Secteur de boot d'une partition
Il faut savoir en effet que chaque partition NTFS contient 16 secteurs réservés (les 9 derniers
n'étant pas utilisés). Le premier est le secteur de boot proprement dit. Comme le MBR il contient le
marqueur 55AA, un code exécutable, des informations sur la structure de cette partition et des
messages d'erreur (dont le trop fameux "NTLDR manquant").
Le code exécutable charge en mémoire les informations sur la partition et va lire la suite du code
exécutable qui se trouve dans les 6 secteurs suivants. Ce dernier code est la bootstrap qui va à son
tour lancer l'exécution du fichier NTLDR (NT loader : le "chargeur" de Windows). Celui-ci charge
NTDETECT.COM puis tous les fichiers de Windows
Toute altération du secteur de boot d'une partition va conduire à un échec. Selon la nature de
l'altération le message d'erreur sera différent. En particulier le message NTLDR manquant ne
signifie généralement pas que le fichier NTLDR est absent, mais qu'il n'a pas été trouvé à la suite
d'une modification du secteur de boot. Bien entendu le bootstrap ne sert que pour la partition
système.
La structure est un peu différente pour une partition de format FAT, mais les principes généraux
sont les mêmes. Enfin il existe une copie de sauvegarde du secteur de boot dans chaque partition.
Quelques remarques
Les altérations du MBR peuvent être réparées par l'instruction FIXMBR exécutée à partir de la
console de récupération du CD de Windows. Cette instruction récrit le code exécutable et le
marqueur 55AA. Elle ne modifie pas la table des partitions que contient ce secteur.
Il y a un certain nombre d'années divers virus ont tiré parti de la présence de code exécutable dans
le MBR pour s'y installer à sa place et se lancer ainsi avant le système d'exploitation. Lors de
l'infection le virus plaçait une copie du MBR sur un secteur arbitraire du disque. Après s'être
exécuté le virus allait lire cette copie qui, à son tour lançait le système d'exploitation de telle sorte
que tout semblait se dérouler normalement. La recette classique qui était alors donnée (pour le
7
DOS et les versions Windows 95,98 et Millenium) consistait à exécuter la commande FDISK /MBR
(ou FIXMBR pour versions suivantes de Windows) pour restaurer le MBR. Cette solution ne marche
que si le code du virus ne s'étend pas sur l'espace contenant les informations sur les partitions. Si
l'espace réservé à ces informations est modifié, le MBR restauré ne va pas aller chercher la copie
du secteur d'origine faite par le virus car lui seul sait où elle a été placée. En conséquence le disque
dur n'est plus accessible. La seule solution de réparation pour un antivirus était d'aller chercher la
copie du secteur (avec la table de partition intacte) pour la replacer dans le MBR.
Dernièrement un rootkit utilisant cette vieille technique d'infection du MBR a été observé. Dans son
cas FIXMBR fonctionne correctement car son code n'altère pas la table des partitions. Il n'est pas
évident qu'il en sera de même pour les suivants.
Les altérations du secteur de boot peuvent être réparées par la commande FIXBOOT (première
chose à faire face à une erreur indiquant un problème avec NTLDR).
Enfin l'utilitaire TestDisk est capable de réparer la plupart des échecs dus à une altération du MBR
ou des secteurs de boot, en particulier ceux qui se traduisent par un symptôme angoissant : la
disparition d'une partition ou l'existence d'une partition devenue illisible.
8
MBR et tables des partitions
Le MBR est le premier secteur physique d’un disque dur. Comme tous les
secteurs, le MBR a une taille de 512 octets. La position absolue du MBR
dépend de la méthode d’accès que l’on utilise :


en CHS (Cylindres/Têtes/Secteur, anciens
mode d’accès aux disques durs), le MBR est
le secteur n°1 de la tête n°0 et sur le
cylindre n°0
en LBA (accès linéaire à tous les secteurs
du disque dur, en partant de zéro), le MBR
est le secteur n°0 (premier secteur
physique)
Dans tout ce qui suit, je n’utiliserai que le mode LBA pour accéder et pour
désigner les secteurs du disque dur : je ne parlerai pas de cylindres ni de
têtes (ou de pistes). En LBA, chaque secteur possède un numéro absolu,
le premier secteur du disque (le MBR) étant le secteur numéro zéro. Par
exemple, mon disque dur MAXTOR de 80 Go possède 160 071 660
secteurs : en mode LBA ces secteurs sont numérotés de 0 à 160 071 659.
Le MBR contient principalement 2 éléments, vitaux pour le démarrage du
PC :


le programme de boot que le BIOS lancera
après le test du matériel
la table des partitions principales
Cette table des partitions principales contient 4 descripteurs, décrivant
chacun la position physique d’une partition principale sur le disque dur. La
position physique d’une partition est indiquée (entre autre) dans la table
des partitions principales par :



le numéro absolu du premier secteur de la
partition (en LBA)
le nombre de secteur que contient la
partition à partir de son premier secteur
le type de partition (type de système de
fichiers, la partition est-elle cachée, etc.)
Comme la table des partitions principales (dans le MBR) ne contient que 4
descripteurs, cela explique pourquoi un disque dur ne peut contenir que 4
partitions principales. Si on a besoin de plus de 4 partitions, il faudra alors
créer une partition étendue parmi les 4 partitions principales, en sachant
que :
9



on ne peut créer qu’une seule partition
étendue sur un disque dur
une partition étendue peut être diviser en
autant de partitions logiques que l’on veut
le premier secteur d’une partition étendue
contient la table des partitions logiques. Ce
secteur se trouve en plein milieu du disque
dur
Les deux configurations possibles d’un disque dur utilisant les 4
descripteurs de la table des partitions principales sont donc :


soit 4 partitions principales (et aucune
partition étendue)
soit 3 partitions principales et 1 partition
étendue (elle même divisée en plusieurs
partitions logiques)
Structure du MBR :



au début on retrouve le programme de
BOOT
au milieu on trouve la table des partitions
principales
et à la fin, les deux derniers octets du
secteur, indiquent (ou confirment, plus
exactement) qu’il s’agit d’un secteur BOOT.
Ces deux octets ont pour valeurs
hexadécimales 0x55 et 0xAA.
Taille
Contenu
446 octets
Programme de BOOT
16 octets
Descripteur de la première partition principale
16 octets
Descripteur de la seconde partition principale
16 octets
Descripteur de la troisième partition principale
16 octets
Descripteur de la quatrième partition principale
10
Taille
2 octets
Contenu
Signature indiquant qu’il s’agit d’un secteur BOOT : 0x55
0xAA
Comme le MBR contient la table des partitions principales du disque, il est
forcément différent d’un disque à l’autre (car les partitions n’ont jamais la
même dimention au secteur près). Pour dupliquer le programme de boot
(Grub, par exemple) d’un disque 1 vers un disque 2, on ne peut donc pas
recopier directement le MBR du disque 1 vers le MBR du disque 2 : on
écraserait et on perdrait la table des partitions du disque 2 !
A retenir :




Le MBR contient la table des 4
partitions principales du disque dur
Le MBR ne contient pas la table des
partitions logiques
Parmi les 4 partitions principales, une
seule peut être une partition étendue
(divisée en partitions logiques)
Si une partition étendue est créée sur
le disque dur, la table de ses partitions
logiques est enregistrée dans le
premier secteur de la partition étendue
Pour conclure ce paragraphe :
Il existe 2 tables de partitions sur votre disque dur :


la table des partitions PRINCIPALES
enregistré dans le MBR (premier secteur du
disque)
la table des partitions LOGIQUES
enregistrée dans le premier secteur de la
partition étendue (en plein milieu du
disque)
Cela signifie qu’il suffit de sauvegarder 2 secteurs (soit 1ko seulement)
pour sauvegarder toute le structure de vos partitions, mais cela signifie
surtout qu’il suffit d’écraser seulement 2 secteurs pour détruire
l’intégralité de vos partitions !
Donc à partir de maintenant, si on parle de "table de partition" (c’est quoi
ça ??? ... ) il faudra préciser si on parle de la table des partitions
principales ou de la table des partitions logiques (là je comprends
mieux ! :-)
11