web-dev-qa-db-fra.com

Pourquoi mon disque dur USB externe est-il parfois complètement inaccessible?

J'ai un disque dur USB externe, constitué d'un disque SATA 1 TB dans un boîtier externe externe Rosewill RX35-AT-SU SLV en aluminium 3,5 "argent , branché dans mon - ordinateur portable SONY VAIO VGN-NS310F . Il est branché directement sur l'ordinateur (pas via un concentrateur). Le lecteur situé à l'intérieur du boîtier est un disque Western Digital à 7 200 tr/min, mais je ne me souviens pas du modèle exact. peut retirer le lecteur de l'enceinte (encore une fois), si les gens pensent qu'il est nécessaire de connaître ce détail.

Le lecteur est formaté ext4. Je le monte dynamiquement avec udisks sur mon système Lubuntu 11.10, généralement automatiquement via PCManFM. (J'ai eu Lubuntu 12.04 sur cette machine et j'ai eu tout le même comportement avec ça.) De temps en temps - une ou deux fois par jour - il devient inaccessible et difficile à démonter. Tenter de le démonter avec Sudo umount ... donne un message d'erreur indiquant que le lecteur est en cours d'utilisation et suggérant fuser et lsof pour savoir ce qui l'utilise. Tuer des processus découverts comme utilisant le lecteur avec fuser et lsof suffit parfois pour me permettre de le démonter, mais ce n’est généralement pas le cas.

Une fois le lecteur démonté ou la machine redémarrée, le lecteur ne sera pas monté. Brancher le lecteur et le mettre sous tension ne permet de rien enregistrer sur l'ordinateur. dmesg est inchangé. Le voyant d'accès au lecteur clignote généralement de manière vigoureuse, comme si le lecteur était accédé en permanence. Puis finalement, après avoir gardé le lecteur pendant un moment (une demi-heure), je suis capable de le remonter.

Bien que le lecteur ne fonctionne pas sur cette machine pendant un certain temps, il fonctionnera immédiatement sur une autre machine exécutant la même version de Ubuntu. Parfois, le ramener de l'autre machine semble le "réparer". Parfois ce n'est pas le cas.

Le lecteur n'arrête pas toujours d'être accessible lorsqu'il est monté , avant de devenir démontable. Parfois cela fonctionne très bien, j'éteins l'ordinateur, je le rallume et je ne peux pas monter le lecteur.

Actuellement, c’est le seul lecteur avec lequel j’ai ce problème, mais j’ai eu des problèmes qui, à mon avis, sont identiques, avec des lecteurs différents, sur des machines Ubuntu différentes. Cet ordinateur portable est régulièrement connecté à un autre lecteur USB externe, ce qui ne pose pas ce problème. Débrancher ce lecteur avant de brancher le lecteur "problème" ne résout pas le problème.

J'ai ouvert le lecteur et je me suis assuré que les connexions étaient serrées dans le passé, et cela ne semblait pas aider (pas plus qu'attendre le même temps qu'il a fallu pour ouvrir et fermer le lecteur, avant d'essayer de remonter il).

Quelqu'un a-t-il une idée de ce qui pourrait en être la cause, des étapes de dépannage que je devrais suivre et/ou de la façon dont je pourrais résoudre ce problème?

Mise à jour: J'ai essayé de remplacer le câble de données USB (du boîtier vers l'ordinateur portable), comme Merlin suggéré. J'aurais dû essayer cela depuis longtemps, car cela correspond parfaitement aux symptômes (le lecteur fonctionne sur une autre machine, ce qui serait logique car le câble serait plié à un angle différent, complétant éventuellement un circuit de fils effilochés). Malheureusement, cela n'a pas aidé - j'ai le même problème avec le nouveau câble. Je vais essayer de fournir des informations détaillées supplémentaires sur le lecteur. à l’intérieur du boîtier, la prochaine fois que je pourrai faire fonctionner le lecteur. (Pour l'instant, je n'ai pas d'autre machine disponible pour la connecter.)

Mise à jour majeure (28 juin 2012)

Le lecteur semble s'être considérablement détérioré. Je pense que c'est le cas, car je l'ai attaché à une autre machine et j'ai eu beaucoup d'erreurs sur des caractères non valides lors de la copie de fichiers. Je suis moins intéressé par la récupération de données à partir du lecteur que par la détermination de son problème. Je veux en particulier savoir si le problème provient du lecteur ou du boîtier.

Maintenant, lorsque je connecte le lecteur à la machine d'origine sur laquelle je rencontrais des problèmes, il n'apparaît toujours pas (y compris avec Sudo fdisk -l), mais il est reconnu par le noyau et les messages sont ajoutés à dmesg. La plupart des messages contiennent des erreurs comme celle-ci, répétées plusieurs fois:

[    7.707593] sd 5:0:0:0: [sdc] Unhandled sense code
[    7.707599] sd 5:0:0:0: [sdc]  Result: hostbyte=invalid driverbyte=DRIVER_SENSE
[    7.707606] sd 5:0:0:0: [sdc]  Sense Key : Medium Error [current] 
[    7.707614] sd 5:0:0:0: [sdc]  Add. Sense: Unrecovered read error
[    7.707621] sd 5:0:0:0: [sdc] CDB: Read(10): 28 00 00 00 00 00 00 00 08 00
[    7.707636] end_request: critical target error, dev sdc, sector 0
[    7.707641] Buffer I/O error on device sdc, logical block 0

Voici toutes les lignes de dmesg commençant par la reconnaissance du lecteur. Veuillez noter que:

  • Je suis de retour pour exécuter Lubuntu 12.04 sur cette machine (et peut-être que c'est un facteur dans de meilleurs messages d'erreur).
  • Maintenant que le lecteur a été branché sur une autre machine et de retour sur celle-ci, et également maintenant que cette machine est de nouveau en cours d'exécution 12.04, le voyant d'accès au lecteur ne clignote pas. avait décrit. En regardant le lecteur, il semblerait que cela fonctionne normalement, avec un accès faible ou inexistant.
  • Ce comportement (les erreurs) se produit lors du redémarrage de la machine avec le lecteur branché, ainsi que lors du branchement manuel du lecteur.
  • Quelques messages concernent /dev/sdb. Ce lecteur fonctionne bien. Le mauvais lecteur est /dev/sdc. Je ne voulais simplement pas éditer quoi que ce soit du milieu.
10
Eliah Kagan

Pour déterminer si le problème concerne le lecteur ou le boîtier, retirez le lecteur du boîtier, installez-le sur un poste de travail suffisamment alimenté et vérifiez l'état intelligent.

Pour un test plus approfondi, vous pouvez vérifier chaque secteur du lecteur à l'aide d'outils tels que ddrescue. ddrescue signalera la taille de l'erreur pendant le processus et vous pourrez tenter de récupérer les données en même temps que dans: Sudo ddrescue /dev/sdb2 /path/to/recovery.image logfile. Répertoriez les partitions avec Sudo lsblk ou classique fdisk -l.

Si vous n’êtes vraiment pas intéressé par les données, vous pouvez forcer le fichier de sortie à /dev/null comme dans:

Sudo ddrescue --force /dev/sdc /dev/null logfile 

et vous aurez toujours un rapport sur toute taille d'erreur sur stdout

Testé sur Ubuntu 14.04 avec GNU ddrescue 1.17 comme suit dans ce court exemple utilisant/dev/sdb2 (une partition de swap de 1 Mo)

$ Sudo ddrescue --force /dev/sdb2 /dev/null logfile


GNU ddrescue 1.17
Press Ctrl-C to interrupt
rescued:      1024 B,  errsize:       0 B,  current rate:     1024 B/s
   ipos:         0 B,   errors:       0,    average rate:     1024 B/s
   opos:         0 B,    time since last successful read:       0 s
2
Elder Geek

J'ai eu des expériences similaires lorsque j'utilisais la version 12.04 du bureau Ubuntu. Mon boîtier de disque dur offrait 2 options d'alimentation: je pouvais soit acheter un adaptateur de climatisation, soit utiliser un câble USB mini vers USB normal, soit utiliser un câble USB mini dans deux câbles USB. Idéalement, il devait être connecté aux deux ports USB pour fournir une alimentation suffisante. Il pourrait transférer des données via le câble USB ou eSata.

Lors de l'utilisation de la connexion eSata, je devais d'abord alimenter le disque afin que le disque tourne, puis amorcer le système pour que le bios reconnaisse le disque déjà en train de tourner. Sinon, le disque ne serait pas vu à temps. Je crois que cela a quelque chose à voir avec le contrôleur pour le boîtier.

Lorsque j'ai monté la clé USB, les résultats étaient très mitigés lorsque je branchais le câble dans le boîtier, puis dans les ports USB. Peut-être environ la moitié du temps, il serait monté correctement. Si j’ai tout d’abord branché les câbles USB sur les ports de l’ordinateur, puis sur l’enceinte de l’enceinte, les résultats ont été bien meilleurs, autour de 70%. Les meilleurs résultats obtenus avec les options USB consistaient à utiliser une source d'alimentation externe (adaptateur secteur) pour le boîtier afin de s'assurer que le disque tournait et était stable avant de le brancher à la machine. A travaillé à peu près 100%

Cela ne veut pas dire que c’est exactement votre problème, mais pour moi, cela a aidé à alimenter le boîtier et à faire tourner le disque avant de le connecter pour qu’il soit lu par le système. Peut-être que la vitesse du bus ou du bios de votre système est meilleure que celle de l'autre et que le contrôleur de boîtiers a le temps de commencer à fonctionner avant d'essayer de lire le disque? Et peut-être un peu de temps après le débranchement du boîtier, le contrôleur se réinitialise?

Peut-être que le contrôleur a besoin de temps pour décider s'il doit simplement être alimenté par l'USB ou par l'alimentation et les données. Peut-être que c'est un problème de tension ou d'ampérage? De toute façon, les contrôleurs de boîtier semblent être difficiles.

1
Travis Clark

Très souvent, ce type de problème est dû à une alimentation insuffisante par le biais du câble USB relié au lecteur, ce qui est particulièrement probable lorsque le lecteur externe n'a pas été acheté sur le marché, mais assemblé soi-même. (Vous espérez qu'un fabricant d'un lecteur externe se sera assuré que les ports USB pourraient le prendre en charge.)

Un périphérique peut tirer jusqu'à 500 mA d'un port dans la spécification USB 2.0 et jusqu'à 900 mA dans l'USB 3.0. En vérifiant les spécifications du fabricant du lecteur externe, vous pourrez peut-être confirmer les exigences d'alimentation maximale de votre lecteur.

Le problème peut souvent être résolu en essayant un port USB3 (si vous en avez un et que vous n’avez pas déjà essayé cela), car ils fournissent plus de puissance que le port USB2, ou bien en utilisant un câble USB Y afin que le lecteur puisse s’alimenter 2 ports au lieu de 1. Ils sont disponibles à moindre coût sur eBay ou Amazon.

0
scoobydoo

Je suggérerais qu'il pourrait également y avoir un problème avec votre puce de pilote de bus USB ou similaire. Avez-vous des outils pour lister tous les périphériques USB? Essayez d’exécuter ces outils lorsque le lecteur fonctionne correctement et lorsque le lecteur est inaccessible. Voyez-vous des différences?

Les disques plus anciens (et moins chers) subissent un processus appelé "Recalibrage thermique" (TACL) qui se produit toutes les heures environ et peuvent devenir inaccessibles pendant plusieurs secondes pendant que le disque estime à quel point la tête du disque est pliée par la chaleur dans le lecteur. Pendant le TCL, le moteur pas à pas et la bobine recherchent chaque piste, la tête est alignée sur chaque piste et les résultats sont stockés. Ceci est une fonctionnalité interne du firmware. On dirait que ce processus est soit bloqué, soit produit les mauvaises réponses, rendant impossible l'accès au lecteur après un recalibrage thermique.

L’erreur que vous avez signalée à partir de dmesg indique qu’il existe des problèmes sur sdc, secteur 0, bloc logique 0. Ces blocs numérotés en bas contiennent souvent la géométrie du lecteur (c’est-à-dire le formatage dur ou souple). Si ces blocs vont mal, l'ensemble du lecteur peut devenir inaccessible, de façon permanente. La défaillance du support peut être liée à la chaleur, ce qui peut expliquer pourquoi une période d'inactivité (déplacement du lecteur sur une autre machine) le corrige parfois, parfois ne le corrige pas.

Pour déterminer si le problème est lié à la thermique, allumez l’ordinateur et démarrez un chronomètre, mais n’utilisez pas vraiment le lecteur. Attendez simplement qu’il échoue et enregistrez le temps requis pour le faire. Ensuite, éteignez-le et laissez-le pendant plusieurs heures pour le laisser refroidir, puis relancez le test, allumez l'ordinateur et le lecteur, mais démarrez une énorme copie d'unité de disque (même lecteur). Faire plus de travail avec le moteur pas à pas entraînera vraisemblablement un réchauffement plus rapide du disque et une défaillance plus rapide. S'il y a un grand changement dans le délai d'échec, alors le lecteur est toast et j'en aurais un autre. Bonne chance!

0
systemBuilder

Bien que la cause réelle du problème ait déjà été signalée, je souhaite ajouter la même réponse, car je dispose de 4 disques durs externes.

Tout ordinateur fabriqué suppose que la source d’alimentation sera utilisée conformément aux spécifications de la configuration et avec une surcharge maximale de 20%.

Tout périphérique USB externe DOIT ÊTRE ALIMENTÉ À PARTIR D'UN HUB ALIMENTÉ EXTERNE, afin de protéger la source d'alimentation de l'ordinateur. Le comportement décrit est un comportement typique de la surcharge d'alimentation. Si vous avez également un DVD externe, vos enregistrements seront également perdus et pourraient même rendre irrécupérables vos périphériques, voire davantage, même votre ordinateur. Les ordinateurs portables freinent généralement de cette façon, car les utilisateurs ont tendance à utiliser des concentrateurs USB passifs ou des périphériques alimentés par ordinateur, notamment des disques durs, des DVD, etc.

Achetez un concentrateur USB externe alimenté et connectez les périphériques USB PAR UN PORT USB ALIMENTÉ, au lieu de vider complètement l’énergie de la source de l’ordinateur, car cette approche endommagerait plus que votre disque dur. Une surtension est généralement identique à un ordinateur ou à un périphérique externe sous-alimenté. La norme USB n'a rien à voir avec le périphérique sous-alimenté. Pensez-y comme ceci: si vous voulez de l'énergie de votre voiture, quel carburant utiliseriez-vous? Tout ce qui brûle ou le carburant spécifié par le fabricant? C'est exactement pareil ici. En utilisant des périphériques USB UNPOWERED, draine l’alimentation de la source d’alimentation interne de l’ordinateur. Il y a déjà assez de périphériques connectés!

0
Serban Stănescu

Pour votre clé USB, essayez les étapes suivantes (si vous ne l’avez pas déjà fait):

  1. Sudo fdisk -l #get info
  2. Sudo mkdir /media/external #create point de montage
  3. Sudo mount -t vfat /dev/sdb1 /media/external -o uid=1000,gid=1000,utf8,dmask=027,fmask=137 #mount.

Ou essayez d’utiliser pmount pour monter votre clé USB.

0
Vahni