View previous topic :: View next topic |
Author |
Message |
Zoboulo Tux's lil' helper
Joined: 07 Apr 2007 Posts: 97
|
Posted: Sat Feb 09, 2013 11:13 am Post subject: [HDD usb] Comment régler le timeout ? |
|
|
Hello !
Je tente de récupérer un max de données d'un disque dur externe (WD my passport) en train de mourir (pas le mien bien sur, moi je fais des sauvegardes ...)
Problème : ces connards de WD ont soudé l'adaptateur vers usb directement sur le disque dur ! Donc aucun moyen de brancher le disque en sata, je dois le brancher en usb.
J'ai donc branché le disque en usb et lancé ddrescue, mais c'est très lent puisqu'un tas de secteurs sont morts. J'utilise donc le flag "-n" de ddrescue, qui permet de ne pas essayer de relire les blocs qui provoquent une erreur de lecture. Mais ça ne suffit pas : avant d'abandonner la lecture d'un bloc, le kernel essaie pendant 30s, et vu le nombre d'erreurs de lecture j'en ai pour des semaines à ce rythme la !
Je suis donc allé trifouiller un peu dans /sys et dans de la doc, et j'ai trouvé le fichier "/sys/block/sdd/device/timeout", sensé configurer le temps au bout duquel la lecture d'un bloc doit être abandonnée et renvoyer une erreur, qui contient la valeur 30 par défaut. En y mettant la valeur 5, les résultats ne sont pas exactement ceux attendus :
Pour certaines erreur de lecture, plus précisément celles qui provoquent dans les logs le message suivant :
Code: |
sd 24:0:0:0: [sdd] Unhandled sense code
[671091.474952] sd 24:0:0:0: [sdd]
[671091.474954] Result: hostbyte=0x00 driverbyte=0x08
[671091.474956] sd 24:0:0:0: [sdd]
[671091.474957] Sense Key : 0x3 [current]
[671091.474961] sd 24:0:0:0: [sdd]
[671091.474963] ASC=0x11 ASCQ=0x0
[671091.474965] sd 24:0:0:0: [sdd] CDB:
[671091.474966] cdb[0]=0x28: 28 00 06 e9 95 80 00 00 80 00
[671091.474974] end_request: critical target error, dev sdd, sector 115971456
|
l'erreur est bien déclenchée au bout de 5 secondes et non de trente, ce qui entraine un gain de vitesse appréciable !
Cependant pour d'autres erreurs de lecture, celles qui provoquent dans les logs le message suivant :
Code: |
671127.655965] sd 24:0:0:0: timing out command, waited 30s
[671127.655974] sd 24:0:0:0: [sdd] Unhandled sense code
[671127.655976] sd 24:0:0:0: [sdd]
[671127.655978] Result: hostbyte=0x00 driverbyte=0x08
[671127.655980] sd 24:0:0:0: [sdd]
[671127.655981] Sense Key : 0x4 [current]
[671127.655985] sd 24:0:0:0: [sdd]
[671127.655986] ASC=0x44 ASCQ=0x0
[671127.655989] sd 24:0:0:0: [sdd] CDB:
[671127.655990] cdb[0]=0x28: 28 00 06 e9 9b 80 00 00 80 00
[671127.655998] end_request: I/O error, dev sdd, sector 115972992
|
l'erreur est déclenchée au bout de 30s, et je n'ai pas trouvé comment raccourcir ce temps.
J'ai cherché partout dans /sys, essayé de désactiver certaines options du firmware avec smartctl, hdparm et sdparm, mais rien à faire ! Vos idées sont les bienvenues ! |
|
Back to top |
|
|
netfab Veteran
Joined: 03 Mar 2005 Posts: 1896 Location: 127.0.0.1
|
Posted: Mon Feb 11, 2013 3:48 pm Post subject: |
|
|
Salut,
Est ce que ton kernel est compilé avec CONFIG_SCSI_SAS_ATTRS, et si oui, peux-tu essayer sans, pour voir si le timeout de 30 secondes est toujours présent ? |
|
Back to top |
|
|
Zoboulo Tux's lil' helper
Joined: 07 Apr 2007 Posts: 97
|
Posted: Tue Feb 26, 2013 8:32 am Post subject: |
|
|
netfab wrote: | Salut,
Est ce que ton kernel est compilé avec CONFIG_SCSI_SAS_ATTRS, et si oui, peux-tu essayer sans, pour voir si le timeout de 30 secondes est toujours présent ? |
Non, cette option est désactivée ! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|