ADeLLA.org ADeLLA.org

Accueil du site > Documentation > Miscellanées > Disques durs - les outils

Disques durs - les outils

dimanche 7 décembre 2008, par daniel


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.


Partitionner un disque

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/sda

exé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 / Solaris

exemple 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)  : +5M

soit : ’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).

Créer un système de fichiers

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 -> mkdosfs

la 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/sda5

on peut vérifier l’intégrité de la partition en même temps que le formatage avec l’otion -c :

mkfs.ext3 -c /dev/sda5

Vérifier un système de fichiers

Pour 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 -> dosfsck

par exemple, pour vérifier le système de fichiers de type ext3 sur la partition sda5 :

fsck.ext3 /dev/sda5

Si fsck vous informe de faire un fsck manuel, exécutez avec l’option -y :

fsck.ext3 -y /dev/sda5

Réparer un système de fichiers

Si 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/sda5

e2fsck 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`

Test de disques durs

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/sec

Pour 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/sec

Informations sur le disque dur

Connaitre sa géométrie (nombre de cylindre, secteurs, ...) :

hdparm  -g /dev/sda

Les informations sur l’identité du disque dur :

hdparm  -i /dev/sda

Technologie S.M.A.R.T.

La 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-notifier

Voilà, c’est terminé pour aujourd’hui ;-). Si vous constatez des erreurs ou omissions, vous pouvez me contacter via ce formulaire.


2008/12/07

Répondre à cet article

1 Message


Suivre la vie du site | Valid HTML 4.01! | Valid CSS! | Plan du site | Espace privé | SPIP