dimanche 7 décembre 2008, par
Le disque dur est un organe essentiel de notre ordinateur, on réalise vraiment son importance que lorsqu’il vient de rendre l’âme. Je ne vais pas faire un article sur les disques durs mais plutôt sur les outils pour les manipuler sous Linux.
Avertissements :
Les outils présentés ici peuvent, si ils sont mal utilisés, détruire vos données! L'association ADELLA ne pourra pas être tenue responsable d'une mauvaise utilisation de ces outils. N'hésitez pas à lire les pages de manuels avant d'utiliser une commande.
Prérequis : Savoir ce qu’est une partition, une table de partitions, une partition primaire et étendue, un inode et un système de fichiers.
On ne partitionne jamais un disque dur sur lequel on est en train de travailler. Par exemple, on peut utiliser un LiveCD tel que Inside Security ou bien Linux CD Rescue.
gparted :
Commençons par un outil graphique tout en un pour partitionner/formater/vérifier/redimensionner. gparted est capable de créer des partitions et de les formater en fat, ntfs, ext2/3, reiserFS, ....

Presque tout ce qu’il est nécessaire de réaliser sur un disque dur peut être fait à l’aide de gparted.
fdisk :
fdisk est un utilitaire de partitionnement en ligne de commande.
fdisk /dev/sdaexécute fdisk pour partitionner le premier disque. Appuyer sur ’m’ puis ’enter’ pour avoir un aperçu de l’aide :
Commande (m pour l'aide): m
Commande action
a bascule le fanion d'amorce
b éditer l'étiquette BSD du disque
c basculer le fanion de compatibilité DOS
d détruire la partition
l lister les types de partitions connues
m afficher ce menu
n ajouter une nouvelle partition
o créer une nouvelle table vide de partitions DOS
p afficher la table de partitions
q quitter sans faire de sauvegarde
s créer une nouvelle étiquette vide pour disque de type Sun
t modifier l'identificateur de la partition système
u modifier l'affichage et la saisie des unités
v vérifier la table de partitions
w écrire la table sur le disque et quitter
x fonctionnalité additionnelle (pour experts seulement)pour afficher les partitions existantes, lettre ’p’ :
Commande (m pour l'aide): p
Disque /dev/sda: 122.9 Go, 122942324736 octets
255 heads, 63 sectors/track, 14946 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Identifiant disque: 0x620eb2cd
Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 * 1 6748 54203278+ 83 Linux
/dev/sda2 8018 14946 55657192+ f W95 Etendu (LBA)
/dev/sda5 8018 9373 10886872+ 83 Linux
/dev/sda6 9373 9515 1139512+ 82 Linux swap / Solarisexemple de création d’une partition primaire :
Commande (m pour l'aide): n
Action de commande
l logique (5 ou plus)
p partition primaire (1-4)
p
Numéro de partition (1-4): 4
Premier cylindre (6749-14946, par défaut 6749):
Utilisation de la valeur par défaut 6749
Dernier cylindre ou +taille or +tailleM ou +tailleK (6749-8017, par défaut 8017) : +5Msoit : ’n’ pour créer une nouvelle partition, ’p’ pour partition primaire, ’4’ sera notre numéro de partition primaire puis on choisi le premier cylindre et la taille de la nouvelle partition (5Mo).
Nous avons créé une ou plusieurs partitions avec fdisk mais ce n’est pas suffisant. Pour pouvoir les utiliser, il faut créer les systèmes de fichiers correspondants.
Liste des commandes mkfs :
mkfs.bfs
mkfs.cramfs
mkfs.ext2
mkfs.ext3
mkfs.minix
mkfs.msdos -> mkdosfs
mkfs.reiserfs
mkfs.vfat -> mkdosfsla création d’un système de fichier est très simple, si ma partition est en ext3, j’utilise mkfs.ext3 et le device de la partition, exemple :
mkfs.ext3 /dev/sda5on peut vérifier l’intégrité de la partition en même temps que le formatage avec l’otion -c :
mkfs.ext3 -c /dev/sda5Pour vérifier l’intégrité d’un système de fichiers, on utilise les commandes fsck :
fsck
fsck.cramfs
fsck.ext2
fsck.ext3
fsck.minix
fsck.msdos -> dosfsck
fsck.nfs
fsck.reiserfs
fsck.vfat -> dosfsckpar exemple, pour vérifier le système de fichiers de type ext3 sur la partition sda5 :
fsck.ext3 /dev/sda5Si fsck vous informe de faire un fsck manuel, exécutez avec l’option -y :
fsck.ext3 -y /dev/sda5Si régulièrement fsck vous informe qu’il y a des erreurs sur votre système de fichiers, c’est qu’il y a peut-être des blocs défectueux.
On peut commencer par vérifier la partition avec la commande badblocks dans un mode non destructif, exemple avec la partition sda5 :
badblocks -n -s -v /dev/sda5
Vérification des blocs défectueux dans un mode non destructif de lecture-écriture
Du bloc 0 au bloc 19535008
Vérification des blocs défectueux (test non destructif de lecture-écriture)
Test en cours avec un motif aléatoire : 1077632/ 19535007 ce test peut être plus ou moins long selon la taille de la partition.
Si des blocs défectueux sont détectés par badblocks, il faut maintenant les marquer comme étant inutilisable, exemple pour un système de fichier de type ext2/ext3 avec la partition sda5 :
e2fsck -c /dev/sda5e2fsck va exécuter badblocks, marquer les blocs défectueux et les ajouter à l’inode des blocs défectueux.
Si vous souhaitez arrêter badblocks ou e2fsck, il faut le faire proprement. il suffit d’envoyer le signal TERM au processus, exemple :
kill -s TERM `pidof badblocks`Pour tester la rapidité de lecture de votre disque dur :
hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 164 MB in 3.03 seconds = 54.15 MB/secPour tester la rapidité de lecture du cache de votre disque dur :
hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 980 MB in 2.00 seconds = 489.46 MB/secConnaitre sa géométrie (nombre de cylindre, secteurs, ...) :
hdparm -g /dev/sdaLes informations sur l’identité du disque dur :
hdparm -i /dev/sdaLa plupart des constructeurs de disques durs intègrent sur leurs produits la technologie S.M.A.R.T. (Self Monitoring and Reporting Technology).
Cette technologie permet de surveiller les caractéristiques techniques du disque dur (température, erreurs, cycle de mise sous tension,...) et ce, afin de prévenir d’une défaillance du matériel.
Pour consulter ces paramètres sous Linux, il faut installer smartmontools, un paquet doit probablement exister pour votre distribution.
Pour activer la technologie smart sur votre disque dur :
smartctl -s on /dev/sda
=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.Le service smartd, installé par smartmontools, est capable d’envoyer des mails en cas de problème sur votre disque, voir le fichier de configuration /etc/smartd.conf.
Pour visualiser les informations smart du disque dur :
smartctl --all /dev/sda
=== START OF INFORMATION SECTION ===
Model Family: Maxtor DiamondMax 10 family (ATA/133 and SATA/150)
Device Model: Maxtor 6B120P0
Serial Number: B40KPVQH
Firmware Version: BAH41B70
User Capacity: 122 942 324 736 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 0
Local Time is: Sun Dec 7 00:20:16 2008 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
...
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
3 Spin_Up_Time 0x0027 202 202 063 Pre-fail Always - 14443
4 Start_Stop_Count 0x0032 253 253 000 Old_age Always - 68
5 Reallocated_Sector_Ct 0x0033 253 253 063 Pre-fail Always - 0
6 Read_Channel_Margin 0x0001 253 253 100 Pre-fail Offline - 0
7 Seek_Error_Rate 0x000a 253 252 000 Old_age Always - 0
8 Seek_Time_Performance 0x0027 250 239 187 Pre-fail Always - 62450
9 Power_On_Minutes 0x0032 250 250 000 Old_age Always - 1043h+27m
10 Spin_Retry_Count 0x002b 253 252 157 Pre-fail Always - 0
11 Calibration_Retry_Count 0x002b 253 252 223 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 247 247 000 Old_age Always - 2726
192 Power-Off_Retract_Count 0x0032 253 253 000 Old_age Always - 0
193 Load_Cycle_Count 0x0032 253 253 000 Old_age Always - 0
194 Temperature_Celsius 0x0032 034 253 000 Old_age Always - 32
....Heureusement, il existe une interface graphique à smartmontools : GSmartControl :

Sur debian/ubuntu, il est également possible d’installer smart-notifier, il s’agit d’un service tournant en tâche de fond affichant une fenêtre vous informant d’un problème matériel sur votre disque dur :
sudo apt-get install smart-notifierVoilà, c’est terminé pour aujourd’hui ;-). Si vous constatez des erreurs ou omissions, vous pouvez me contacter via ce formulaire.
2008/12/07