Ce chapitre n'a pas pour but de décrire en détail la technologie des disques durs, mais seulement d'aborder les notions incontournables pour aborder la suite, si vous voulez comprendre la sauvegarde et la restauration des tables de partitions.
Dans un souci d'exhaustivité, (et pour les curieux qui veulent tout savoir ) : ce tutorial aborde des notions plus complexes, pour donner des pistes en cas de problèmes avec votre DD, parce qu'un problème disque ne se résume peut être pas à un problème de partitions. Votre disque semble foutu, ne le formatez pas bêtement si vous tenez vraiment à vos données et si vous n'avez pas de sauvegarde. Achetez en un autre et vous monterez celui là en deuxième disque, pour tenter de récupérer vos données.
Pour plus de clarté et faciliter la lecture ces passages sont mis en italique
Un disque dur est un support magnétique de données binaires (0 ou 1) un fabuleux mélange d'électronique et de micro mécanique de précision ).
Le disque dur (grand public ) aujourd'hui est un empilement de plateaux magnétiques, comme si on empilait plusieurs disquettes les unes au dessus des autres, et que chacune possède sa propre tête de lecture (pour simplifier).
Chaque plateau magnétique est divisé en PISTES concentriques ( numérotée de 0 à X suivant le modèle de votre disque dur ).
Pour lire la piste suivante (ou une autre), il faut déplacer mécaniquement la tête de lecture vers le centre du disque, en fonction de la piste qu'on souhaite lire.
Si vous avez écrit quelque chose sur une piste quelconque de ce disque, il faut demander à la tête, magnétique de se déplacer sur cette piste pour relire ce que vous avez écrit à cet endroit précis, défini GEOMETRIQUEMENT.
Puisqu'un microprocesseur travaille avec des octets, (un grroupe de huit bits ) le disque dur travaille lui aussi en OCTET. D'où sa capacité exprimée en octets mais la tête de lecture lit chaque bit.
Attention pour la suite ! 1K octets , c'est 1024 octets , 1 MO c'est 1024 *1024, et parfois ce n'est qu'un million sur les docs , c'est pour celà que l'on ne retrouve pas exactement ce qui est annoncé dans la capacité des disques ( notion simplificatrice à oublier )
Chaque piste pouvant contenir un grand nombre d'informations, a été divisées en SECTEURS : par exemple sur ce modèle de disque il y a 64 secteurs par pistes, numérotés de 0 à 63. chaque secteur aussi bien ceux situés sur la périphérie du disque que ceux situés près du centre, regroupent une suite 512 octets , avec la technologie actuelle.
Donc sur un disque de 64 secteurs par piste : une piste contient 64 *512octets soit 32 768 octets ( il y a vingt ans on avait pas des mémoires de 32 k )
La notion de secteur évite de lire ou d'écrire une piste entière ( trop d'octets à traiter ! ).
Comment lit-on tel ou tel secteur sur une piste, une fois que la tête à été déplacée sur la bonne piste ?
Le secteur 0 de toutes les pistes est répéré mécaniquement. Le plateau magnétrique défile à vive allure, de manière continue, sous la tête de lectur/écriture., et chaque fois que le repère de la piste 0 est détecté au cours de la rotation, il dit au contröleur de disque. ” tu es sur la secteur 0” ( sous entendu ” c'est le moment de lire le secteur zéro si tu en as besoin.”
Puisque le disque tourne à vitesse constante, on sait qu'au bout de tant de nano secondes on va rencontrer le secteur suivant , et que pour atteindre le 61ème secteur, il faut attendre 61 fois ce temps , pour demander à la tête de lecture de lire “ce qui lui défile sous le nez” … à partir de ce moment. Elle va lire le secteur entier soit 512 octets.
Tout celà est réglé en usine, c'est le FORMATAGE de BAS NIVEAU du DD :
Certains fabricants mettent à la disposition de leurs clients des CDroms ou des fichiers d'utilitaires pour refaire le formatage de bas niveau du DD et retrouver leurs données en cas de problème sur le DD lui même, mais il est absolument déconseillé de faire ça au pif avant d'avoir épuisé toutes les autres solutions.
Notion de cylindres ( tubes concentriques serait plus juste ).
Afin d'augmenter la capacité des disques durs on a mis plusieurs plateaux superposés. ( vu les limites mécaniques d'un seul plateau magnétique,, l'encombrement, le temps de réponse et bien d'autres notions comme celle de ne pas refaire tout le PC et de garder la compatibilité avec les versions précédentes , les anciennes technologies de disques ) un disque dur est aujourd'hui composé de plusieurs plateaux, eux même divisé en pistes et en secteurs. .
On est passés de la 2D à la 3D et on ne parle plus de pistes , mais de CYLINDRES.
Ainsi , dans l'ESPACE géométrique 3D du disque , n'importe quel secteur est repéré par :
C'est le mode d'adressage CHS ( cylinder, head, sector )
Mécaniquement et géométriquement c'est incontournable pour atteindre un secteur précis !. mais c'est ce que vous retrouverez dans les tables des partitions
Aujourd'hui on adresse plus les disques de cette façon, on les adresse en numéro de secteur absolu ou relatif et c'est le contrôleur de disque qui se charge de faire la conversion.. (avant c'était du hard pur et dur, donc plus limité , aujourd'hui c'est un microprocesseur )
Cependant le BIOS a besoin des adresses CHS.
Les deux modes d'adresse seront détaillés dans le prochain chapitre ( préparez vos calculettes). .
Explication de cette complexité :
Avec un DD des années 80, composé d'un seul plateau , même si le Bios de ma CM a changé a changé , toutes ses partitions seraient sur le seul et unique plateau et donc avec le même numéro de tête pour le nouveau BIOS ( le contrôleur de ce disque ne gérerait pas plusieurs têtes. )
Si j'ai du expliquer tout celà, c'est parce parce que la TABLE des PARTITIONS lue par le BIOS est un standard et qu'elle contient les adresses de début et de fin des partitions enregistrées dans sous le format CHS.
On paye ça en complexité, aujourd'hui ( et celà explique certaines incompatibilités ) , mais l'évolution technologique et informatique allaient très vite et personne ne pouvait anticiper un tel essor de l'informatique personnelle ( sauf Linux ) .
Autre remarque technologique : A cause de ces limites, la notion physique de têtes , (qui correspondrait physiquement au nombre de plateaux est devenue théorique pour que tout rentre …
Mon disque aurait 256 têtes … lol ! il ferait au moins 15 cm d'épaisseur avec 256 plateaux physiques, empilés les uns sur les autres, et il coûterait une fortune. Je n'y comprenais plus rien !
Le grand disque ( ses fabricants ) s'est donc adapté : avec huit plateaux on en fait informatiquement 256, pour rentrer dans les octets disponibles de l'adressage CHS du BIOS, sans en empilier 256 plateaux l'un au dessus de l'autre. Ouf pour nous c'est transparent ! C'est le contrôleur de disque qui se débrouille avec ça , on va rester en 3D, on ne va pas paser en 4D : on gardera donc à l'esprit l'architecture 3D d'un disque dur.
C'est par des astuces ( dans les contrôleurs de disque et avec des cavaliers sur la carte du disque ) qu'on passe d'un disque physique de 16 têtes et x cylindres ( limites de fabrication ) à un dique de 256 têtes et moins de cylindres , pour s'adapter aux limitations du BIOS les limitations imposées par le BIOS.
Ne vous étonnez donc pas si vous trouvez plus de têtes que votre disque en a en réalité.
Nota : si le disque était défectueux : une tête HS par exemple et qu'on veuille récupérer le maximum de ses données . Dans ce cas de figure plusieurs têtes seraient concernées, puisque avec cette astuce elles correspondent à une seule et même tête physique.
exemple :
64 Secteurs par piste = 64 x 512 = 32 768 octets par piste 79 456 cylindres ( réels ) : 79 456 x 32 768 = 2 603 614 208 octets par plateau ( bon allez 2,6 Go par plateau ) 16 têtes : 16 x 2,6 Go = 41,6 Go soit un disque physique de 40 Go
Exemple d'un disque réel : Résultat obtenu avec la cde fdisk !
fdisk -l /dev/hda Disk /dev/hda: 40.0 GB, 16 heads, 63 sectors/track, 77545 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 77545 39082648+ 83 Linux
Un disque de 63 secteurs de 512 Ooctets par cylindre ( ou PISTE : track en anglais ) contient ; 64*512 : soit : 32 768 octets par par cylindre.
Il comporte 77 545 CYLINDRES il contient donc :
Il a 16 TETES donc au total il comporte :
DONC UN DISQUE de 40 Go
La commande Fdisk nous donne : 40 020 664 320 bytes ( octets )
Cette différence minime par rapport au calcul effectué, peut être due au nombre de secteurs de données par rapport au nombre de secteurs totaux, mais ça correspond ! et ça reste dans la logique.
Voilà comment on CALCULE et VERIFIE la CAPACITE d'un DD c'est la BASE pour aller plus loin !
Je cherche encore ! ( nécessaire à cause de la conversion conversion de 16 têtes à 256 têtes.
On revient donc à la STRUCTURE PHYSIQUE du DD :
et VERIFIEZ : qu'il ait bien 512 octets par secteur. ( c'est du hard ! )
Avez vous les données constructeur de votre DD quelque part ?
Avez vous la Doc de votre DD ?
( dans cet exemple la seule cde Fdisk est dans les choux ! à cause de cette erreur de formatage. et c'est logique ! on reverra ça dans le paragraphe “clusters”)
Avant d'aller plus loin amusez - vous à vérifier la capacité de votre DD avec les données constructeur.
C'est pas quand on est dans la mouise , et complètement stressé par un crash qu'il faut y penser !
Trouver les carcatétristiques de son DD sur le net :
Exemple Maxtor
Partitionner un disque, c'est créer artificiellement PLUSIEURS DISQUES indépendants sur un même disque physique.
Ceci permet de faire tourner plusieurs systèmes, de sauvegarder des données. de classer des données ( gros sytèmes, car cette notion date de bien avant le PC )
Une partition , c'est donc l'équivalent d'un disque : une suite continue des secteurs .
Celà a été prévu dans le PC, avec des limites physiques ( ON NE PEUT CREER que QUATRES PARTITIONS PRIMAIRES sur un DD, le BIOS ne sait pas en gérer davantage ) et des évolutions du BIOS (partition étendue ). Cette STRUCTURE est INCONTOURNABLE, à cause de la carte mère, du Bios, du processus de boot( toujours évolution et compatibilité ) .
Linux s'en affranchit, mais parfois ce n'est pas sans problèmes.
La PARTITION est donc une SUITE d'OCTETS CONTIGUS.
Pour l'instant, cette notion est suffisante pour comprendre car ce n'est pas toujours la réalité sur les DD, des exceptions :
Oublions cet apparté pour la suite….
Contrairement aux autres notions de secteurs, pistes, cylinbdres ,e t têtesz, le CLUSTER est une notion informatique qui concerne les sytèmes de fichiers employés sur ou telle ou telle partition
Un CLUSTER est un nombre de SECTEURS CONTIGUS , pour stocker des fichiers et gérer au mieux la place qu'ils occupent sur un disque, plusdexcatement une PARTITION. Il est fixé au FORMATGE.
Si on a des petits fichiers inférieurs à 512 k : un secteur par fichier est suffisant, mais si on a de grands fichiers, ils occupent plusieurs secteurs.
Notion de fragmentation des fichiers :
Vous détruisez un fichier de moins de 612 ko , le secteur qu'il occupair devient libre et sans la fragmenbtation dez fichiers , vous ne sauriez pas où loger un gros fichier, et la paloce libérée serait perdue. , à moins d'utiliser la fragmrentation. le fichier est éclaté en sur différents sceteurs..
Pour éviter de morceler les fichiers en petits bouts, les “softeux ” ont inventé le CLUSTER, selon la taille des fichiers qu'on traite, pour éviter de trop les morceler et gangener du temps.
On stocke les fichiers dans des clusters ( un nombre de secteurs contigus défini au formatage.
Le nombre de secteurs par CLUSTER est défini dans un octet précis de la TABLE de PARTITION.
Si accidentellement vous ( ou un virus ou un programme ) changez ce nombre de secteurs par cluster, le système de fichier se perd complètement et vous ne retrouvez plus vos données.
Les systèmes de fichiers ont évoulé à leur rythme. Eux ne s'occupent pas de secteurs , mais de CLUSTERS.
Ainsi on localise un fichier dans une partition avec le numéro de cluster où il commence dans la partition
Un certain nombre d'octets sont résrevés dans la table des fichiers pour adresser les clusters.
Ce nombre d'octets dépend du sytème de fichiers ( peu d'octets dans la FAT 16, beaucoup plus dans la FAT 32 , etc…).
Le nombre de secteurs par cluster est défini au formatage : vous pouvez choisir entre une valeur maxi ( imposée par le système de fichier et une valeur mini imposée par le nombre maxi de clusters adressables dans ce sytème de fichier. Vous choisissez dans cette plage selon que vous avez des petits ou des grands fichiers à gérer.
Si vous faites ça à la main selon l'OS que vous utilisez vous pouvez faire n'importe quoi ! Il faut donc toujours se référer aux limites du sytème de fichiers ( voir la doc ) avant de faire ça à la main.
Le problème est que les disques ont évolué en capacité plus vite que les systèmes de fichiers.
Avec l'arrivée des grands disques, le cluster n'est plus qu'une notion SOFT de gestion de fichiers, mais de limite “HARD” de TAILLE de partition.
Aussi malgré que la notion de cluster soit une notion soft, puisque ce tutorial a pour objectif de de tout savoir sur les tables de partitions, il fallait en parler après cette introduction un peu longue , mais nécessaire sur les clusters, surtout si vous voulez analyser les problèmes de vos partitions et ne rien faire au hasard pour ne pas perdre vos données.
Il est donc vivement conseillé avant de formater un disque de vérifier le nombre de secteurs minimum à mettre pour cette partition , en fonction de la taille de la partition.
Voici un exemple pour une FAT32 : taille clusters FAT32 Dans la TABLE des FICHIERS (située en début de chaque partition ) , selon le SYSTEME de FICHIERS défini au FORMATAGE , un nombre d'octets est réservé pour chacun des fichiers dans cette table pour chacun des fichiers pour répérer son début avec le NUMERO de CLUSTER,
Exemple de problème : Si à la conception informatique d'un sytème de fichiers on a réservé seulement deux octets ( 16 bits ) dans la table des fichiers pour adresser un cluster, dans les années 80, celà limite le nombre de clusters adressable à 32 K clusters. Si au formatage on a choisi des clusters de 8 secteurs, soit 8 fois 512 octets = 4 096 octets multiplié par le nombre max de clusters gérés par ce système de fichier, cela fait une capacité de 134 217 728 octets gérables : au delà on déborde dans l'adressage des clusters. dans la place qui leur est réservée, même si la partition a le double de capacité.
Dans cet exemple la taille maxi utile de la partition est de 134 Mo
Avec des clusters de 64 secteurs au lieu de 8 secteurs on aurait pu lire une partition de :
64 ( secteurs :cluster ) * 512. ( octets / secteur ) * 32 768 = 1 073 741 824 ( maxi adressable en cluster dans un système de fichier “exemple ” où on a seulement réservé deux octets pour l'adresse en cluster ) .On sait donc lire avec cet exemple des fichiers dans une partition de 1Go
Le CLUSTER est une notion purement INFORMATIQUE , mais il a des CONSEQUENCES sur l'adressage maxi d'une PARTITION.
Ce n'est pas parce qu'on a une partition de 100 Go octet qu'on va avoir 100 Go disponibles : ça dépend de la taille des clusters et du nombre maxi de clusters qu'on peut adresser dans ce système de fichiers.
Un bon assistant de partitionnement doit délimiter la TAILLE mini et maxi du CLUSTER, en fonction de la taille de votre Dd et du sytème de fichier employé, mais à la main on peut faire n'importe quoi : idem avec un mauvais assistant, ou un assistant inadapté ( problèmes DOS/Linux/Windows ) .
Exemple d'une erreur de formatage d'un disque de 160 Go, avec 8 clusters par secteur au lieu de 32 : voilà ce que donne la cde fdisk /dev/hdd
The number of cylinders for this disk is set to 19929. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/hdd: 163.9 GB, 163928604672 bytes 255 heads, 63 sectors/track, 19929 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdd1 * 1 19929 160079661 c W95 FAT32 (LBA)
Ce ne serait pas grave, mais ce disque venu d'ailleurs est impossible à monter ! On ne peut pas récupére ses données en le montant en partition..
La cde mount sort une erreur, à cause de l'incohérence entre la partition effective et la partion réelle qui correspond bien à 160 Go que la taille de la partition elle correspond bien à 160 Go. on ne peut pas changer la taille des clusters , sionon on perd les données. mais il faut changer manuellement l'adresse de fin de la partiton et sa taille en secteurs dans la table de cette pertition , pour que le disque devienne montable
Allez y faire un tour ( peut être comme moi , vous ne trouverez pas excatement le modèle précis de votre DD, ( ou d'un vieux DD que vous récupérez) , mais vous pouvez y trouver:
mais aussi :
Conseil : N 'attendez pas que votre DD soit en panne pour aller chercher cette doc et les outils. mettez ça sur un Cd rom ! ce n'est pas le prix du DD , mais la valeur des données qu'il contient ! Et on apprend plein de choses ! (j'ai fait la même chose pour la carte mère et son BIOS).
DMA , c'est : Direct Memory Access (accès direct à la mémoire)
Si c'est votre OS et le processeur qui donne les ordres de lecture à votre disque, les données ne transitent pas par le processeur pour être stockées en mémoire , celà occuperait trop le processeur. Le disque a un accès direct à la mémoire (via la Carte mère et son BIOS bien sur). Le gestionnaire de fichiers les récupère cette place réservée de la mémoire
Pour nous, c'est transparent, mais il peut être utile de le savoir. .
BILAN de ce PREMIER CHAPITRE :
Vous savez en gros comment, c'est foutu un disque dur ?
Vous connaissez les notions d'octets, de secteurs de pistes, de cylindres, de têtes, ,
Vous connaissez l'adressage hard du disque en CHS, vous avez pigé à quoi ça sert et où ça se passe. …
Vous savez calculer la taille de votre DD
Vous savez ce qu'est un cluster ( à force de dire que c'est une notion seulement info, on découvre qu'il a une sacrée influence sur le hard au niveau de la taille des partitions.
— Texte écrit par jacqueline au Samedi 02 Octobre 2004 À 22:20