|
(2055 mots dans ce texte ) -
lu : 982 Fois
 C'est une méthode parmis tant d'autres, je n'ai pas la prétention de dire que c'est la meilleure mais elle fonctionne. Si vous êtes régulièrement amenés à tester les disques durs, vous vous en éloignerez pour acquérir votre propre technique, suivant vos affinités avec les différents programmes.
Vous noterez par exemple que je n'ai pas d'affinités relatives avec les outils en mode graphique. Vous devriez, même si vous désirez utiliser les facilités de ces logiciels, gparted par exemple, apprendre quand même les méthodes terminales parceque sinon, le jours où vous tomberez sur une machine où xorg ne veut plus rien entendre, vous serez bien avancés!
Tout au long de ce document, nous ne nous baserons que sur des relevés éffectués avec des outils de diagnostique fiables. N'utilisez pas le système d'exploitation installé sur le disque dur que vous soupçonnez d'être défaillant! Évitez aussi les liveCD des différentes distributions, pas du tout adaptés.
J'utilise, quant à moi, le SystemRescueCD que j'ai toujours réussi à lancer même sur les vieux coucous récalcitrants. Il inclue tous les outils de diagnostique nécessaire, dont ceux dont je parle ici, testdisk, partimage, etc. Vous ne pourrez pas écouter de musique ni regarder un DVD pendant le dépannage mais il a l'aventage d'être fonctionnel et optimisé pour le dépannage.
Écouter et regarder
D'abord, qu'est-ce qui vous fait dire que le disque dur est en cause? Question bête, certes, mais si vous ne pouvez pas y répondre, c'est assez significatif. Dans ce cas là, on parle de tests de routine pour en mettre plein la vue.
Une petite inspection de la machine vous en dira peut-être plus, la chaleur est-elle bien évacuée autour du/des disque(s) dur(s)? Est-ce que ça sent le chaud dans la machine, voire le caramel (je vous assure que c'est pas forcément normal...)? Les disques font-ils plus de bruit qu'ils ne devraient?
Vérifiez la bonne alimentation des composants, méfiez-vous des alimentation sata, dans le doute, retirez-la pour la remplacer par une fiche classique, qui fonctionne tout aussi bien.
Un petit tour dans le bios pour voire s'il a des choses à vous dire, si les disques durs sont bien détectés, par exemple.
Trouver la géométrie, le partitionnement, etc
Pour trouver la géométrie des disques durs, nous allons nous servir de fdisk. Il y a deux manières de lancer fdisk. Vous pouvez lui donner des argument pour qu'il écrive le résultat de ses calculs en sortie du terminal ou vous pouvez rentrer dans un shell fdisk. Ici, nous allons lui demander de nous écrire l'architecture des disques en sortie, exemple avec deux disque sata strictement identiques, de 200 Gio:
l=liste u=unité:secteur
#/sbin/fdisk -lu
1 Disk /dev/sda: 200.0 GB, 200049647616 bytes
2 255 heads, 63 sectors/track, 24321 cylinders, total 390721968 sectors
3 Units = sectors of 1 * 512 = 512 bytes
4 Disk identifier: 0x0f8000b1
5 Device Boot Start End Blocks Id System
6 /dev/sda1 63 996029 497983+ 82 Linux swap
7 /dev/sda2 996030 127941659 63472815 83 Linux
8 /dev/sda3 * 127941660 254887289 63472815 83 Linux
9 /dev/sda4 254887290 390716864 67914787+ 83 Linux
10 Disk /dev/sdb: 200.0 GB, 200049647616 bytes
11 255 heads, 63 sectors/track, 24321 cylinders, total 390721968 sectors
12 Units = sectors of 1 * 512 = 512 bytes
13 Disk identifier: 0x00000000
14 Device Boot Start End Blocks Id System
15 /dev/sdb1 * 63 390716864 195358401 83 Linux
- Le nom du périphérique bloc qui représente le disque, sa taille en Go (attention, cette taille est donnée à titre indicatif, ce n'est pas la taille réelle en 1024) et la taille en octets
- La géométrie du disque
- La taille des secteurs (block)
- L'id du disque
- Les colonnes : nom du périphérique dans /dev, indicateur de boot (inutile avec linux), le début et la fin sont en secteur (notation LBA), nombre total de blocs, id et type de partition
- sda1
- sda2
- sda3
- sda4
- Second disque dur
- géométrie
- etc
La géométrie des disques durs diffère quelque peu d'un disque à l'autre mais on peut généralment compter sur 63 secteurs par piste et sur des secteurs de 512 octets
Vous noterez qu'on commence avec le secteur 63 et qu'on finit avec le secteur 390716864, ce qui nous laisse 5104 secteurs inutilisés à la fin. Voire la remarque sur les premiers et derniers secteur du disque au chapitre "technologie des disques durs"
D'autres informations peuvent vous être données par smartctl:
smartctl -a /dev/sda
Ceci vous donnera toutes les infos smart présentes sur le disque dur. L'argument -t vous permet de faire des tests sur le disque dur.
smartctl -t long /dev/sda
# smartctl -t long /dev/sda
smartctl version 5.38 [i486-slackware-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 69 minutes for test to complete.
Test will complete after Sun Jun 29 23:00:37 2008
Use smartctl -X to abort test.
Notez qu'il existe plusieurs sort de test, celui donné au-dessus est "long", si vous prennez "short", ce sera plus court.
Pour avoir le resultat du test:
# smartctl --log=selftest /dev/sda
smartctl version 5.38 [i486-slackware-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 19544 -
Récupérer une table des partition perdue
J'utilise pour ce faire testdisk mais cfdisk vous permet de le faire pour peu que vous sachiez à peu près combien mesurent les partitions.
Le check de testdisk est plus long mais plus fiable, il récupère toutes les partition et réecrit la table au besoin.
Vous lancez testdisk dans un terminal. Attention, si vous êtes sous X (heu.. rien à voire avec les petites pilules aux noms marrants, dans ces cas-là, ne lancez tout simplement pas testdisk!), vous aurez peut-être une erreur "please enlarge the terminal", alors agrandissez-le!
Dans le menu qui apparait, choisissez "créer un nouveau logfile" ou "no log", soit pour enregistrer un log ou pour ne pas en enregistrer. Vous aurez alors droit à une petite liste des disques durs, vous pouvez alors selectionner celui qui vous interesse.
Choisissez 'intel partition"
Sélectionnez alors "analyse", le contenu actuel de la table des partitions vous est donné. Selectionner "quick search" pour analyser rapidement le disque à la recherche des partitions perdues.
Choisissez "save" pour sauver la table des partitions.
Sauvegarder les partitions
Tout ce dont vous avez besoin, c'est d'un disque dur d'appoint qui peut contenir la totalité des blocs de la partition, c'est à dire que si la partition fait 200 Gio, mais que seuls 50 Gio sont utilisés, vous aurez tout de même en sortie une image de 200 Gio.
Les outils suivants sont en mode semi-graphique:
partimage
partimage est suffisamment simple d'utilisation. Vous le lancerez en console comme suit:
partimage
Vous le lancerez une fois pour créer l'iso de sauvegarde et ensuite pour la restaurer. vous sélectionnerez dans le menu soit "créer une image", soit "restaurer une image", vous choisissez un répertoire de destination sur le disque de sauvegarde ou l'endroit où retaurer la partition, le tour est joué!
Note: le SystemRescueCD a été créé par un membre de l'équipe du développement de partimage.
testdisk
testdisk est un peu plus compliqué, il comporte plus de menus et permet de faire beaucoup plus que faire des sauvegardes. Voici la méthode:
Attention! Les partitions doivent être démontées et vous devez être root pour pouvoir écrire.
Dans le menu de testdisk, choisisez "avanced" puis "image création"
La méthode suivante est en ligne de commande:
dd
Tester l'intégrité des secteurs avec badblocks
Lancez badblocks avec le nom du périphérique en argument pour checker l'intégralité du disque dur, en lecture seule afin de reperer les badblocks. S'il y en a, il seront affichés en sortie. Cependant, il se peut que des blocs aient été corrompus suite à une erreur de tampon ou une coupure d'alimentation brusque. Bref, si vous découvrez ainsi des blocs corrompus, il vous faudras les tester plus avant pour savoir si ils sont définitivement perdus ou si ils sont récupérables.
options utiles
- -b : indispensable, spécifie la taille des blocs. par défaut 1024.
- -w : lance le test en lecture/écriture. Avec cette option, badblocks ne se contente pas de lire les blocks mais fait des test d'écriture. Le résultat de cette option sera donc la liste des badblock véritablement corrompus et irrécupérables. Attention, ceci éffacera toutes les données, y compris le système de fichier.
- -n : Quasiment le même test que l'option w, sauf que là, le logiciel n'ecrase pas formellement les données inscrites dans les blocs. Il les stoque en mémoire vive, fait son test puis les restitue à leur place d'origine. Ce procesus est évidemment plus long (et je pèse mes mots!).
- -t : Pour donner un nombre arbitraire de patern de test, s'utilise avec l'option -w ou -n
- -p : effectue n-1 passes, jusqu'à ce que plus aucune erreur ne soit rencontrée. Par défaut, c'est zéro donc aucune passe supplémentaire. Il est souvent nécessaire de faire plusieurs passe en écriture pour dépanner complètement un disque dur corrompu.
- -s : voire la progression
- -v : rendre verbeux
Par exemple:
- badblocks -s -b 512 /dev/sda : check en lecture seule sda avec l'affichage du défilement.
- badblocks -sw -b 512 /dev/sdb : check sdb en écriture, toutes les données seront perdues.
- badblocks -sn -b 512 /dev/hdd : check hdd en écriture avec sauvegarde des données, trèèèèès long.
- badblocks -sn -b 512 -p 3 /dev/hdc : check hdc de la même manière mais en effectuant 4 passes.
- badblocks -sn -b 512 -t random /dev/sdc : Spécifie un patern de test aléatoire.
- badblocks -sw -b 512 -t 3 /dev/hda : spécifie explicitement que quatre paterns de test vont être utilisés. Cela dépend du système sur lequel badblock tourne; par défaut, SystemRescueCD utilise une patern aléatoire.
- badblocks -sw -b 512 -t 3 -p 5 /dev/hda : Spécial masochistes, cinq pass de badblocks avec conservation des données.
Tester l'intégrité des systèmes de fichiers
fsck est votre ami! Vous pouvez également le faire avec testdisk ou fdisk.
Scan anti-virus
Il y a bien sûr plusieurs anti-virus qui fonctionnent sur unix, nous nous servirons ici de clamav, qui est inclu dans le SystemRescueCD.
Il faut commencer par mettre à jour les définitions de virus:
freshclam
Puis monter les partitions que vous voulez scanner. Enfin, lancer le scan de clamv:
clamscan -r /point/de/montage/
Le -r pour "recursive" : clam descend dans les sous-répertoires.
Mesures radicales
Formatage d'usine
Vous avez éffectué le test de badblocks et malgré plusieurs passes en écriture, il y a toujours des blocs défectueux. Le disque dur est certainement mort. Mais il vous reste encore un dernier recours, le formatage de bas niveau.
Avant d'adopter cette solution, parlez-en avec le propriétaire du pc, demandez-lui s'il veut courir le risque de voire son système à nouveau planter ou s'il préfère carrément changer le disque dur. Préférez cette dernière solution car dans l'autre cas, vous risquez d'avoir un coup de fil paniqué à chaque fois que windows fait une cabriole, qu'un shareware pompé sur telechargez.com ne veut pas se lancer ou qu'une boite de dialogue inhabituelle s'affiche à l'écran. Et ainsi de perdre un temps certainement précieux.
Les constructeurs de disque dur fournissent généralement sur leurs sites web des outils qui permettent de faire cela, et souvent de faire un diagnostique complet avec les données constructeur. Je ne peux pas décemment détaille ici tous les outils de tous les constructeurs, aussi je vous renvoie vers eux!
Changer le disque dur
En dernier recours, c'est la seule solution!
Retour à la sous-rubrique :
Autres publications de la sous-rubrique :
|