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