Gros bordel avec mon système de fichier / Erreurs d'entrée/sortie

Bonjour tout le monde,

après une bonne dizaine de jours sans utiliser mon PC (portable), et alors que tout semblait bien aller la dernière fois que je l’ai utilisé, lorsque je l’ai rallumé hier soir j’ai eu la mauvaise surprise de constater que le disque dur “travaillait” sans arrêt et qu’il était assez lent. Ce matin, au démarrage j’ai eu tout un tas d’erreurs concernant le système de fichiers, et une invite de commande me demandant de faire un fsck manuel sur l’une de mes partitions.

A noter que j’ai un dual boot windows 7/Debian Stretch et que ce matin windows 7 de m’était même plus proposé par GRUB.

L’une des erreurs que j’ai au démarrage commence de la manière suivante :
blk_update_request i/o error dev sda1 sector xxxxxxxx

Ça ressemble fortement à un disque dur en fin de vie, mais je n’entends aucun claquement quand il travaille et il a été changé il y a seulement deux ans, donc je trouve ça bizarre…

Auriez-vous des pistes ?

Afficher l’état SMART complet du disque avec smartctl -a.
Ne rien écrire, ne rien installer.
Et ne surtout pas lancer de fsck sur un disque potentiellement défectueux.

Un disque défectueux ne claque pas forcément.

Avant de te répondre, je corrige ce que j’ai dit précédemment, dans l’erreur c’est simplement “dev sda” et non “dev sda1”.

Ensuite, malheureusement j’ai tenté pas mal de choses seul avant de venir poster, dont faire des fsck. De toute façon j’ai fait une sauvegarde des données que je voulais conserver. Et si le disque est mort, ben il est mort, en fait ma question était surtout : y a-t-il moyen de rattraper le truc ou est-ce que je peux carrément tenter une installation propre ?

Sous Debian je n’ai pas smartctl (commande introuvable), ni sous Tails que j’utilise actuellement pour répondre. Par contre avec Tails il y a un utilitaire graphique qui permet de connaître l’état de fonctionnement du disque dur et celui-ci m’indique simplement “Le disque présente quelques secteurs endommagés”. J’ai lancé un “auto-test” court et à la fin l’utilitaire m’indique 320 mauvais secteurs

Salut
Curieux ça de ne pas aimer fsck.
Car sur Debian dans initramfs, il y a un fsck de / à chaque boot

la trace est dans /run/initramfs

root@debian:/run/initramfs# ls -alrt
total 4
-rw-r--r--  1 root root   0 janv.  5 17:12 fsck-root
-rw-r--r--  1 root root 196 janv.  5 17:12 fsck.log
drwxr-xr-x  2 root root  80 janv.  5 17:12 .
drwxr-xr-x 30 root root 840 janv.  5 17:13 ..
root@debian:/run/initramfs# cat fsck.log
Log of fsck -C -a -T -t ext4 /dev/sda1 
Fri Jan  5 16:12:22 2018

debian: recovering journal
debian: clean, 269403/1246032 files, 3282316/5001216 blocks

Fri Jan  5 16:12:23 2018
----------------
root@debian:/run/initramfs# 

et pour les autres partition il y a le service systemd-fsck@dev-disk-by

root@debian:/# systemctl status systemd-fsck@dev-disk-by*
● systemd-fsck@dev-disk-by\x2duuid-0231cd69\x2d6248\x2d497c\x2da18c\x2d4d5c92666f35.service - File System Check on /dev/
   Loaded: loaded (/lib/systemd/system/systemd-fsck@.service; static; vendor preset: enabled)
   Active: active (exited) since Fri 2018-01-05 17:12:38 CET; 1h 40min ago
     Docs: man:systemd-fsck@.service(8)
  Process: 403 ExecStart=/lib/systemd/systemd-fsck /dev/disk/by-uuid/0231cd69-6248-497c-a18c-4d5c92666f35 (code=exited, 
 Main PID: 403 (code=exited, status=0/SUCCESS)

janv. 05 17:12:31 debian systemd[1]: Starting File System Check on /dev/disk/by-uuid/0231cd69-6248-497c-a18c-4d5c92666f3
janv. 05 17:12:32 debian systemd-fsck[403]: data: recovering journal
janv. 05 17:12:37 debian systemd-fsck[403]: data: Clearing orphaned inode 295 (uid=1001, gid=1001, mode=0100644, size=12
janv. 05 17:12:37 debian systemd-fsck[403]: data: Clearing orphaned inode 231 (uid=1001, gid=1001, mode=0100644, size=12
janv. 05 17:12:37 debian systemd-fsck[403]: data: Clearing orphaned inode 1909 (uid=1001, gid=1001, mode=0100644, size=1
janv. 05 17:12:37 debian systemd-fsck[403]: data: Clearing orphaned inode 96 (uid=1001, gid=1001, mode=0100600, size=262
janv. 05 17:12:37 debian systemd-fsck[403]: data: clean, 62060/17801216 files, 43249973/71177728 blocks
janv. 05 17:12:38 debian systemd[1]: Started File System Check on /dev/disk/by-uuid/0231cd69-6248-497c-a18c-4d5c92666f35
root@debian:/# 

J’ai lancé un smartctl -a sur mon disque dur, et voici le résultat de la commande :

smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.16.0-4-amd64] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA MQ01ABD050D
Serial Number:    82P7P5KBT
LU WWN Device Id: 5 000039 432485c10
Firmware Version: AX001U
User Capacity:    500 107 862 016 bytes [500 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Fri Jan  5 19:10:17 2018 UTC
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

General SMART Values:
Offline data collection status:  (0x00)    Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)    The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:         (  120) seconds.
Offline data collection
capabilities:              (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:      (   2) minutes.
Extended self-test routine
recommended polling time:      ( 131) minutes.
SCT capabilities:            (0x003d)    SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

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
  1 Raw_Read_Error_Rate     0x000b   100   099   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       2632
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       2395
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   058   058   000    Old_age   Always       -       16999
 10 Spin_Retry_Count        0x0033   147   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       2313
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       166
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       147
193 Load_Cycle_Count        0x0032   068   068   000    Old_age   Always       -       322466
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       41 (Min/Max 11/60)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       320
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       0
222 Loaded_Hours            0x0032   066   066   000    Old_age   Always       -       13943
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       267
240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0

SMART Error Log Version: 1
ATA Error Count: 800 (device log contains only the most recent five errors)
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 800 occurred at disk power-on lifetime: 16997 hours (708 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 78 e0 56 d3 40  Error: UNC at LBA = 0x00d356e0 = 13850336

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 08 78 e0 56 d3 40 00      00:07:50.678  READ FPDMA QUEUED
  ef 10 02 00 00 00 a0 00      00:07:50.677  SET FEATURES [Reserved for Serial ATA]
  27 00 00 00 00 00 e0 00      00:07:50.677  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00      00:07:50.676  IDENTIFY DEVICE
  ef 03 45 00 00 00 a0 00      00:07:50.676  SET FEATURES [Set transfer mode]

Error 799 occurred at disk power-on lifetime: 16997 hours (708 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 e0 e0 56 d3 40  Error: UNC at LBA = 0x00d356e0 = 13850336

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 08 e0 e0 56 d3 40 00      00:07:46.890  READ FPDMA QUEUED
  ef 10 02 00 00 00 a0 00      00:07:46.889  SET FEATURES [Reserved for Serial ATA]
  27 00 00 00 00 00 e0 00      00:07:46.889  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00      00:07:46.888  IDENTIFY DEVICE
  ef 03 45 00 00 00 a0 00      00:07:46.888  SET FEATURES [Set transfer mode]

Error 798 occurred at disk power-on lifetime: 16997 hours (708 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 c0 e0 56 d3 40  Error: UNC at LBA = 0x00d356e0 = 13850336

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 08 c0 e0 56 d3 40 00      00:07:43.101  READ FPDMA QUEUED
  60 18 b8 38 58 bb 40 00      00:07:43.087  READ FPDMA QUEUED
  60 f8 b0 e0 58 b7 40 00      00:07:43.076  READ FPDMA QUEUED
  ea 00 00 00 00 00 a0 00      00:07:43.065  FLUSH CACHE EXT
  60 10 98 08 5b bb 40 00      00:07:43.042  READ FPDMA QUEUED

Error 797 occurred at disk power-on lifetime: 16997 hours (708 days + 5 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 b8 e0 56 d3 40  Error: UNC at LBA = 0x00d356e0 = 13850336

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 08 c0 20 6c b8 40 00      00:07:38.963  READ FPDMA QUEUED
  60 08 b8 e0 56 d3 40 00      00:07:38.941  READ FPDMA QUEUED
  60 20 b0 30 7c 55 40 00      00:07:38.933  READ FPDMA QUEUED
  60 20 a8 10 7c 55 40 00      00:07:38.916  READ FPDMA QUEUED
  60 10 a0 10 93 bb 40 00      00:07:38.896  READ FPDMA QUEUED

Error 796 occurred at disk power-on lifetime: 16996 hours (708 days + 4 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 e0 10 57 d3 40  Error: UNC at LBA = 0x00d35710 = 13850384

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 08 e0 10 57 d3 40 00      00:06:09.904  READ FPDMA QUEUED
  ef 10 02 00 00 00 a0 00      00:06:09.904  SET FEATURES [Reserved for Serial ATA]
  27 00 00 00 00 00 e0 00      00:06:09.903  READ NATIVE MAX ADDRESS EXT
  ec 00 00 00 00 00 a0 00      00:06:09.903  IDENTIFY DEVICE
  ef 03 45 00 00 00 a0 00      00:06:09.902  SET FEATURES [Set transfer mode]

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%     16997         -
# 2  Extended offline    Aborted by host               10%     16991         -
# 3  Short offline       Completed without error       00%     11273         -
# 4  Short offline       Completed without error       00%     11054         -
# 5  Short offline       Completed without error       00%     10617         -
# 6  Short offline       Completed without error       00%     10149         -
# 7  Short offline       Completed without error       00%      8264         -
# 8  Short offline       Completed without error       00%      8190         -
# 9  Short offline       Completed without error       00%        16         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

“Quelques” ? 320, une paille !
smartctl confirme le diagnostic. Je préfère me fier à ses résultats bruts qu’à l’interprétation d’un logiciel graphique.

320 secteurs défectueux, c’est beaucoup. Et il y en a peut-être d’autres qui n’ont pas encore été détectés tant qu’on n’a pas essayé de les lire. Il y a potentiellement autant de fichiers dont tout ou partie n’est plus lisible. En l’état, ce disque n’est plus utilisable. Sauvegarde des données récupérables et remplacement. Ensuite, deux traitements possibles si tu veux t’amuser :

  • Identifier et tenter de réparer tous les secteurs défectueux avec badblocks -w (qui va effacer toutes les données). Cela peut aussi aggraver la situation.

  • Identifier les secteurs défecteux avec badblocks et, s’ils sont concentrés dans quelques zones du disques, les isoler en dehors des partitions utiles.

Dans les deux cas, on espère que de nouveaux secteurs défectueux ne vont pas apparaitre ultérieurement. Il convient donc d’éprouver les zones utilisables avec badblocks -w.

Où vois-tu que je n’aime pas fsck ? fsck sert à détecter les incohérences des systèmes de fichiers, pas les erreurs de disque. Je dis qu’il est contre-indiqué dans le cas d’un disque défectueux.

Merci PascalHambourg, mais je pense que je ne vais pas me battre avec Badblocks. Hier soir par impatience j’ai finalement réinstallé Debian 8, je verrai bien l’évolution ces prochains jours, notamment en surveillant le nombre de mauvais secteurs. Si ça augmente trop, je changerai de disque dur et voilà.

Merci à ceux qui se sont penchés sur le problème

Est-ce que tu as au moins fait une vérification des blocs des partitions lors du formatage ? Sinon, même si le nombre de secteurs défectueux n’augmente pas, le système va fatalement finir par tomber sur les existants et tu auras à nouveau des problèmes.

tu peux mettre en place le daemon de surveillance qui te notifiera en cas de problème

Dans /etc/default/smartmontools

# Defaults for smartmontools initscript (/etc/init.d/smartmontools)
# This is a POSIX shell fragment

# List of devices you want to explicitly enable S.M.A.R.T. for
# Not needed (and not recommended) if the device is monitored by smartd
#enable_smart="/dev/hda /dev/hdb"

# uncomment to start smartd on system startup
start_smartd=yes

# uncomment to pass additional options to smartd on startup
#smartd_opts="--interval=1800"



root@debian:/# ps -edf | grep smart
 4127     1  0 12:00 ?        00:00:00 /usr/sbin/smartd -n
 5710  5443  0 12:01 ?        00:00:00 /usr/lib/gnome-settings-daemon/gsd-smartcard
 5793  5443  0 12:01 ?        00:00:00 /usr/bin/python /usr/bin/smart-notifier


Utile uniquement si les secteurs défectueux déjà présents ont été réalloués avec badblocks ou isolés lors du partitionnement et du formatage.

Il faut que tu passes un dd(ou ddrescue ça ira plus vite il ignore les secteurs illisibles) ou badblocks en écriture plusieurs fois sur tout le disque voir s’il y a vraiment autant de secteurs défectueux mais si après une réecriture complète de tous les secteurs, tu as vraiment 320 bad sectors. Il faut jeter ce disque ou le passer sous garantie s’il a encore une garantie.

Il arrive d’avoir 1 ou 2 secteurs défectueux qui viennent assez rapidement et si après plusieurs passages de dd, cela n’augmente pas ton disque est ok. Lorsque tu as plus de 10 bad sectors, c’est sous garantie ou recyclage. C’est qu’une perte de temps d’avoir un mauvais disque car ce n’est pas très cher.

Merci pour vos réponses.

J’aurais dû faire ça avant d’avoir réinstallé Debian, là je n’ai pas vraiment le courage de tout recommencer. Je verrai comment ça évolue (mal certainement…), et je ferai en fonction. En tout cas pour le moment ça va, et le CHKDSK fait par windows suite à l’utilisation de ntfsfix n’a renvoyé aucune erreur. Je suivrai vos conseils à la lettre quand ça me lâchera à nouveau (je ne sais pas si on peut mettre un sujet en “résolu” ici)

Bonsoir petrichor

Il suffit de choisir le message qui corresponds à la solution du problème que tu cherchais à résoudre en ouvrant ce fil de discussion,
et de cliquer sur l’icône case à cocher correspondant à ce message.

En bas de chaque message de ton fil de discussion, il y a quelques icônes.
Entre le crayon et la flèche Répondre il y a (trois petits points )
En cliquant sur ces trois petits points, tu verra apparaître une icône représentant une case à cocher