Il faut beaucoup de temps pour éjecter mes clés USB


3

Je lance une nouvelle installation sur Debian 8 et je dois souvent attendre un temps ridicule avant que mes clés Flash soient éjectées (de 1 à 10 .. 15 minutes). Pendant ce temps, je ne peux accéder à rien concernant le lecteur car le message d'erreur s'affiche.An operation is already pending.

Il semble que cela n’a rien à voir avec le format flashdrive (j’ai essayé FAT, ext4, NTFS), mais cela semble aussi commencer lorsque je commence à mettre des fichiers dessus. (rien de lourd cependant, ~ 500 Mo).

Qu'est-ce qui pourrait causer ce problème? Est-ce que je peux faire quelque chose pour accélérer l'éjection?

Réponses:


9

Bien que je ne sache pas s’il s’agit de l’explication ou de la solution à votre question, j’estime qu’il s’agit d’un problème avec la clé USB en général.

Si vous copiez des fichiers volumineux ou de nombreux fichiers, le périphérique USB enverra un message à l'hôte en indiquant "Je suis sur le point de vous envoyer ces fichiers". Le périphérique envoie ensuite tous les fichiers de manière asynchrone et prend le temps nécessaire pour le faire. Cela signifie que lorsque vous effectuez une opération, cp /my/flash/drive/foo.txt /home/bar/foo.txtl'appareil indique au système d'exploitation que les fichiers sont en cours de copie, puis les envoie.

Le seul moyen que je connaisse pour vérifier si toutes les données ont bien été transférées est d'entrer syncaprès avoir exécuté une commande qui copie / déplace ou supprime des fichiers sur une clé USB. La commande de synchronisation se bloque alors jusqu'à ce que le lecteur ait fini de transférer les données. Après cela, il devrait être sûr de démonter / éjecter une clé USB.


[EDIT]: Cochez cette publication pour suivre la progression de l' syncopération: le numéro imprimé lors de l'exécution

watch grep -e Dirty: -e Writeback: /proc/meminfo

devrait diminuer jusqu'à zéro au fur et à mesure des transferts de données en arrière-plan. Quand ce syncsera fait, votre volonté sera complétée et votre clé USB sera éjectée.


Un autre problème courant avec l’éjection de périphériques de stockage USB est qu’au moins Debian ne l’autorisera pas s’il existe un programme, un terminal ou un logiciel similaire travaillant actuellement sur des fichiers / dossiers de ce lecteur flash. Donc, si vous avez changé de répertoire dans un dossier de cette clé USB dans un terminal et que vous essayez ensuite d'éjecter la clé USB à l'aide d'un autre terminal, cela ne vous le permettra pas tant que vous n'avez pas changé de répertoire ailleurs que sur la clé USB du premier terminal.


Réponse courte: cela prend beaucoup de temps, car le périphérique USB est en train de transférer les données que vous avez copiées, supprimées, déplacées ou sur lesquelles il travaille et refuse d'éjecter le périphérique tant qu'il n'a pas fini d'exécuter la commande précédente.
Mogget

Merci pour cette explication! Voulez-vous dire que les fichiers sont toujours en cours de transfert même si mon travail de copie est terminé lorsque je veux éjecter? Est-ce un mensonge lorsque la barre de progression est terminée après un clic + glisser ou que je reviens à l'invite de commande après cp?! ;)
iago-lito

1
Exactement! Le fait que la commande que vous avez exécutée (cp, mv, rm ou même un copier / coller dans Windows) et qu'elle se termine ne signifie pas que toutes les données réelles ont été transférées. Il peut encore être transférer en arrière-plan.
Mogget

Fou! Donc , si je comprends bien, syncest le seul moyen fiable d'être sûr que toutes les données ont été transférées, car elle retourne seulement lorsque le travail est fait .. question Side: puis quand faire des cpretours et quand faire les barres de progression IUG atteindre « 100% "? Qu'attendent-ils vraiment ?
iago-lito

1
Regardez la première réponse à cette question. Cela explique certaines choses que je n'ai pas bien expliquées. askubuntu.com/questions/122113/…
Mogget
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.