Quand est-il sûr de détwigr mon disque dur externe?

Dans Windows, il existe une option pour "retirer le matériel en toute security".

Ignorant le fait qu'il échoue presque toujours, et que la plupart du time je dois tout simplement détwigr l'appareil, j'ai l'initiative derrière (pas complètement).

Donc, quand vous utilisez Debian, quand est-ce que c'est "sûr" (c'est-à-dire ne pas endommager les parties) pour retirer mon disque dur externe?

Après qu'il a été démonté (Xfce semble utiliser le terme "éjecté" mais je suppose que c'est la même chose)? Ou simplement quand il n'y a pas de programmes utilisant le disque?

Il est «sûr» de retirer un disque externe lorsqu'il n'est pas monté.

La raison pour laquelle ce n'est peut-être pas sûr si les programmes ne l'utilisent pas, c'est que le kernel Linux écrit la caching. Cela signifie que lorsqu'un programme a été écrit sur le disque, il est possible que ces données ne se fsync pas physiquement sur le disque, mais qu'elles soient toujours en memory (sauf si le programme utilise fsync ou fdatasync ). Linux fait cela pour effectuer l'écriture sur le disque en gros morceaux qui optimise le débit.

Lorsque vous démontez un système de files, il s'assure qu'aucune autre écriture ne peut être exécutée sur le disque. Il effectue également un appel de sync qui garantit que toutes datatables mises en cache sont vidées sur le disque.

Vous devez le démonter avant de le déconnecter. Certaines interfaces utiliseront le terme "éjecter", qui devrait faire la même chose.

La quantité de dégâts causés si vous vous déconnectez sans démettre / éjecter dépend du système de files, du matériel et des caches utilisés. L'effet est fondamentalement le même que la perte de puissance, ce qui signifie que la plupart des filesystems sont conçus pour se remettre de telles situations, mais il n'y a aucune garantie et la vérification du système de files sera généralement nécessaire pour les filesystems natifs de systèmes d'exploitation unix. Donc, la seule suppression de time est sûre sous Linux après la fin d'un déassembly / éjection.

J'ai deux Seagate externes 2TB "Expansion Desktop Drives" montés via USB3. Après avoir sauvegardé mon système en utilisant rsync, même après une synchronisation et umount.crypt, les lecteurs continuent à bouger les têtes pendant un certain time après le déassembly – 30 secondes à une minute peut-être (basé sur ce que je peux sentir quand je mets ma main sur le lecteur). Je suppose que cela peut être dû à une caching interne par le lecteur externe. Je ne me sens pas en security de les détwigr jusqu'à ce que je ne puisse plus ressentir aucun mouvement de la tête.

Je soupçonne que j'ai besoin de tourner le cache d'écriture du disque. Mon lecteur est normalement / dev / sdg, donc quand j'utilise le lecteur, je peux lancer la command suivante en tant que root:

 hdparm -W0 /dev/sdg 

mais je n'ai pas vérifié que cela résout le problème.