Expulsé mi unidad externa USB 3.0 ‘insegura’ muchas veces, pero nunca perdí ningún dato. ¿Porqué es eso?

La mayoría de las respuestas son aquí específicas de Windows. Intentará responder desde la perspectiva de Linux.

Como ya se mencionó en otras respuestas, leer y escribir en el disco es un proceso muy lento. En lugar de escribir directamente en el disco, los datos se escriben en un búfer y el proceso continúa. Los datos se vuelcan más tarde en el disco. Esto hace que la ejecución del proceso sea más rápida. Sin embargo, esto tiene un inconveniente. Si los datos todavía están en el búfer y desconectamos la unidad usb, perdemos los datos.

Por lo general, las lecturas son seguras. Sin embargo, si el tiempo de acceso al sistema de archivos (último tiempo de lectura) está habilitado, entonces debe actualizarse con cada lectura. Lo que podría no suceder si desconectamos el usb tan pronto como abramos un archivo para leer.

Con la opción de expulsión / eliminación segura, los datos se vacían de las memorias intermedias al disco, lo que reduce las posibilidades de pérdida de datos.

En Linux, puede montar la unidad usb con la opción de sincronización . Esto reducirá el riesgo de perder datos. Y si el tiempo de la última lectura no es tan importante para usted, puede usar el tiempo de recreo o el tiempo de la hora que le convenga. No estoy seguro de cuál es la opción predeterminada para las principales distribuciones de Linux.

Además, leí en alguna parte que en algunas unidades flash, para que los datos se escriban por completo, después de escribir datos, se debe pasar un voltaje constante durante 0.25 segundos. La desconexión inmediata podría ser un problema en este caso.

EDITAR: Vale la pena mencionar el comentario de Bruce A McIntyre: “Has tenido suerte o simplemente no has notado la corrupción”.

Cuando lee o escribe en medios conectables, su sistema operativo utiliza “memorias intermedias” para que las operaciones de lectura y escritura sean más eficientes. Los búferes son fragmentos de memoria que almacenan datos.

Cuando lee o mueve un archivo desde su unidad USB, su sistema operativo lee muchos datos de una vez, posiblemente más de lo que ha pedido, y los almacena en el búfer para que las lecturas futuras puedan extraerse del búfer en lugar de tener que volver a hablar con la unidad (lo que lleva mucho más tiempo).

Del mismo modo, cuando intenta colocar datos en su unidad USB, esos datos no se escriben de inmediato. En cambio, se coloca en un búfer, y en realidad solo se envía a su unidad cuando el búfer de escritura está lleno, porque escribir en una unidad USB es mucho más eficiente cuando se realiza en una pequeña cantidad de fragmentos grandes.

Cuando hace clic en “quitar de forma segura”, su sistema operativo “vacía” el búfer de escritura: fuerza las escrituras finales en la unidad que se retrasaron en el búfer de escritura. Si intentara copiar un archivo en su unidad y luego sacarlo sin previo aviso, existe la posibilidad de que haya algunas escrituras pendientes en el búfer de escritura que aún no se hayan enviado a su unidad, lo que significa el último archivo que copiado solo se copió parcialmente.

Si solo conecta una unidad para leer datos de ella sin escribir en ella, hay poco peligro en sacar la unidad sin “quitarla con seguridad”. En el peor de los casos, los archivos que lee pueden no actualizar su “último acceso”.

Si escribe en la unidad, también puede minimizar la posibilidad de una copia parcial si espera un poco, porque el búfer de escritura se vaciará después de un tiempo, incluso si no está lleno cuando el sistema operativo no tiene nada mejor que hacer .

Gente, solo algunos de ustedes han votado las respuestas verdaderas, mientras que han votado miles a las falsas /

Como han dicho algunos de nuestros amigos, se trata de una configuración de Windows:

Caché de escritura habilitado o deshabilitado.

Si está habilitado, se encuentra en una situación de riesgo. Pero Windows lo desactiva por defecto. Es por eso que no ha experimentado ninguna pérdida de datos, etc.

Pero está confundiendo el rendimiento en caso de que el almacenamiento en caché de escritura esté deshabilitado.

EDITAR: Ojalá todos ustedes estuvieran aquí. Por supuesto que no lo quiero. Acabo de perder el contenido de mi unidad flash justo después de expulsarlo sin realizar el procedimiento, etc. Sabía que conocía los riesgos. El procedimiento es tan aburrido y fuera de tiempo que vale la pena correr el riesgo. Ahora puedes expulsar el disco con seguridad, me pone nervioso. Debe haber un atajo para desconectar. Incluso una llave en el disco. Pero eso no sucederá. Problema con el controlador. Imposible ser algo universal. Sin embargo, la clave de Windows sí 🙂

El caché de escritura estaba encendido. Por cierto …

Algunas buenas respuestas aquí sobre una base técnica. Pero muchos pierden el punto básico.

Este es un problema nuevo

Si regresa a los primeros días de la informática personal, descubrirá que nunca ha habido ningún problema al quitar una unidad. Esto se debe a que, en su mayor parte, cada unidad era una unidad de disquete, inherentemente extraíble, y nadie en su sano juicio habría creado un sistema que corrompiera un disquete si lo quitara en las circunstancias correctas. En la mayoría de los sistemas, había una luz en el disco. Esperarías a que se apagara la luz, y luego sería seguro quitarla. En algunos casos, como en las primeras computadoras Macintosh, tenía que pedir que se expulsara el disco, pero el resultado fue inmediato.

Ahora, incluso en aquellos días, todos sabían que el disco era lo más lento del sistema. La memoria RAM de la PC fue rápida, el disco fue lento. Con el tiempo, obtuvimos RAM más rápida, las diversas memorias caché de una CPU y un almacenamiento no volátil más rápido, como discos duros y memorias flash. Pero incluso hasta el día de hoy, la RAM es mucho más rápida que el disco duro o el almacenamiento flash.

Numerosas opciones de almacenamiento

Y, por supuesto, a medida que las computadoras se hacen más grandes, tenemos muchas cosas opcionales: partes opcionales de programas muy grandes, partes opcionales de sistemas operativos muy grandes. Hace mucho tiempo, es posible que haya tenido todo el sistema operativo de la computadora en ROM y, una vez cargado, toda la aplicación en RAM. Pero con el tiempo, sus unidades más rápidas se convirtieron en una parte integral del funcionamiento del sistema operativo, ya que las cosas se enviaron desde y hacia su unidad principal.

Entonces, a medida que las cosas evolucionaron, comenzamos a agregar memoria caché a la unidad. Los sistemas para cargar componentes del sistema operativo en la RAM desde el disco, y desechar las cosas no utilizadas … DLL y bibliotecas y memoria virtual, todo funcionó bastante bien. Entonces, una vez que las computadoras tenían un poco más de memoria (al menos a veces), en lugar de rediseñar todo este sistema, agregamos cachés a nuestras unidades. La primera caché de unidades solo almacena las cosas usadas más recientemente de sus discos en un pequeño búfer de RAM. Más tarde, escribieron el almacenamiento en caché. Algunos datos se escribieron en una unidad, el bus como se mencionó, la unidad es una de las cosas más lentas en cualquier computadora. El sistema operativo solo necesita saber si la escritura fue exitosa o fallida, y una falla es un error bastante serio, raro y digno de distorsión. Entonces, un caché de escritura toma los datos de la CPU, envía esa CPU en su camino y escribe los datos en la CPU en el tiempo que toma. El almacenamiento en caché de escritura es muy común hoy en día … los cachés en CPU también hacen almacenamiento en caché de escritura.

Ahora, para una unidad fija en un sistema ejecutado probablemente, no hay una preocupación real sobre cuándo se escriben los datos “publicados”. Una vez que llegamos a los sistemas multiprocesador, si no antes, puede que no haya habido ninguna urgencia, con el tiempo, en llevar los datos al disco. Los sistemas operativos modernos funcionan según lo que sus diseñadores han encontrado que funcionan, a veces de maneras muy complejas.

¿Pero unidades extraíbles?

Pero es muy diferente, y muy de 1980, cuando se trata de unidades extraíbles. Ahora, algunas de estas cosas habían sido ciertas durante mucho tiempo en las computadoras de sistemas grandes, las cosas que consume nunca se vieron. Por ejemplo, el sistema operativo UNIX siempre tuvo profesionales de la informática atendiendo sus necesidades. Tanta gente usó UNIX en las universidades que, gradualmente, lo reescribieron para ser completamente gratuito, cosas como Linux y OpenBSD y FreeBSD y todo eso. Debería parecer una gran idea para la informática de menor costo. Pero todavía estaban usando las cosas “tradicionales” del pasado. Y estos sistemas operativos, al menos al principio, ni siquiera tenían una designación especial de unidad extraíble. En un centro de datos, cualquier unidad antigua podría montarse y desmontarse . Nadie pensó siquiera en que un usuario lo activara.

Pero para los consumidores, el comportamiento correcto es tener una unidad extraíble realmente extraíble. En pocas palabras, cuando se apaga la luz de su disquete, su disco duro, su memoria USB, eso es todo lo que necesita. En algunos sistemas operativos, como AmigaOS desde 1985, esta era una propiedad fundamental de cualquier unidad conectada al sistema. Pero muchos otros sistemas operativos ignoraron los factores del consumidor.

Y hubo un momento en que Microsoft y Windows también lo hicieron. Hace un tiempo, casi cada vez que sacaba una unidad USB, incluso minutos después de la última vez que la usaba, Windows entraba en modo de pánico y le exigía que volviera a conectar esa unidad. En ese momento, escribiría las cosas que todavía están almacenadas en la memoria caché de la unidad y devolverle la tarjeta de memoria. La estupidez de eso es que esta aplicación ocurre en un pequeño número de segundos. Esos datos podrían haberse escrito muy rápido, inmediatamente cuando el sistema operativo los obtuvo.

Y así, en estos días, eso es lo que hace Windows. Desafortunadamente, no parecen entender completamente el problema o algo así, ya que todavía tienen varias formas de desmontar unidades extraíbles, todavía le advierten sobre esto. Si el sistema se diseñara correctamente, no habría muchas advertencias, y aquellas a las que dirija estarán mucho más orientadas hacia el modo de uso natural de estas cosas.

Protocolos de software bien desarrollados.

La corrupción de datos es fácilmente detectable con muchos métodos e incluso cuando los datos se “pierden” existen métodos integrados para la recuperación (paridad y similares). Combinado con el hecho de que las transferencias de datos están configuradas para ser lo más rápido posible, las oportunidades de corrupción de datos son muy limitadas con el tiempo.

Aun así, una tasa de corrupción de datos del 1 al 2% (estadística compuesta, la tasa real variará) de la expulsión incorrecta sigue siendo algo. El sistema operativo que expulsa el dispositivo correctamente podría reducirse a algo así como 0.001% (nuevamente una estadística inventada) porque el proceso de expulsión agrega seguridad adicional.

Entonces, en una baja ocurrencia de casos, un usuario no verá una diferencia entre los escenarios. Aumenta el número de ocurrencias y surgirá una tendencia.

Debe tenerse en cuenta que tener el hábito de expulsar un disco de manera segura permite que se advierta al usuario si aún se está produciendo una transferencia, que olvidaron, y el disco no se expulsa. Donde como, simplemente tirando del disco dañará el archivo que se transfirió por completo.

Motivo1:
Si retira el dispositivo cuando está en uso (lectura o escritura):
Cuando conecta una unidad USB, le da rienda suelta a su PC para escribir y leer datos de ella; algunos de los cuales están en caché.
El almacenamiento en caché se produce al no escribir información inmediatamente en el dispositivo USB y, en su lugar, mantenerla en la memoria (RAM) de su PC. Si tuviera que sacar la unidad USB de su PC antes de que se escriba esta información, o mientras se está escribiendo, terminará con un archivo dañado.
Sin embargo, Windows deshabilita automáticamente el almacenamiento en caché en dispositivos USB, a menos que usted diga específicamente que desea habilitarlo. En su mayor parte, no tiene que hacer clic en el botón “Quitar hardware de forma segura”, si no está escribiendo o leyendo nada del dispositivo.
Está ahí simplemente como un nivel adicional de seguridad que le impide destruir sus propios archivos.
Al hacerlo, los archivos se cierran “con gracia”, conservando datos, punteros e indicadores de tamaño de archivo. Cuando se escribe en el disco, la computadora no siempre “vacía” un búfer y es posible que solo se haya escrito parte de los datos. El uso del procedimiento adecuado asegurará que los datos y los punteros estén en buena forma.

Razón 2:
Una segunda razón es que las unidades flash deben tener una potencia estable durante ~ 0.25 segundos después de un comando de escritura. Este es un problema físico fundamental, debido a factores aleatorios que algunas escrituras pueden dejar 1 bit lógico en un estado eléctrico de 0,72. La solución es fácil: solo reescribe el bit, tal vez incluso algunas veces. Eventualmente se pegará.
Si realmente tiene mala suerte, el bit se caerá en una tabla del sistema de archivos y se dañará, por ejemplo, en un directorio completo.

Fuente

En general, la mayoría de las unidades USB son Fat32. Fat32 es un sistema de archivos no registrado, lo que significa que si un archivo se escribe en el disco, no escribe un diario de lo que hará antes de hacerlo, simplemente lo hace.

Algunas unidades USB son NTFS, que significa New Technology File System. Es un sistema de archivos registrado. Escribe un diario de lo que va a hacer antes de que realmente escriba el archivo o realice una acción y luego realice esas acciones. Si se interrumpe una acción, simplemente puede pasar por el diario y deshacer lo que se hizo. La mayoría de los sistemas de archivos, incluido NTFS, tienen varios diarios en los que escribe, lo que resuelve el caso en que se produce una interrupción durante la escritura de un diario. Si un diario se corrompe debido a una interrupción, intentará usar el otro diario, que ya debería estar escrito o no escrito. En cualquier caso, ese diario no se corromperá. Hay una penalización de rendimiento para esto (compare la velocidad de ext2 (sistema de archivos Linux no registrado) frente a ext4 (sistema de archivos Linux muy registrado) con un gran número de escrituras de archivos pequeños … los números son asombrosos.

De todos modos, para responder a su pregunta, su memoria USB probablemente sea NTFS y probablemente esté registrada. Fat32 es más susceptible a la corrupción que NTFS, pero es más compatible (y la patente expiró, lo cual es una ventaja).

Esto se debe a que, de forma predeterminada, Windows establece todos los discos flash en (Eliminación rápida), lo que le permite eliminar la unidad cada vez que no está copiando \ en uso, esto se hace deshabilitando una función llamada copia oculta que copia archivos en segundo plano como tu trabajas. Si cambia de esta función a Mejor rendimiento, DEBE usar la eliminación segura o es muy probable que pierda datos.
Puede verificar esta función en el Administrador de dispositivos, Unidades de disco, Haga clic derecho en su unidad flash, Propiedades, Políticas, desde allí puede cambiar entre ambos modos.
Siempre que esté configurado en Eliminación rápida, el riesgo de pérdida de datos en la eliminación insegura es muy mínimo.

No perderá datos si los extrae hasta que haya una actividad como la transferencia de datos en progreso, pero no todos. Cuando transfiere datos a la PC o desde la PC, no todos los datos se envían de una vez, sino en pequeños fragmentos. Entonces, por ejemplo, si su transferencia de datos fue del 50% y desconectó su memoria USB, perderá solo el 50% de los datos y no todo lo que se llama un archivo dañado.

Ahora hablando del daño a tu pendrive. Windows admite dos tipos de eliminación de usb, que son “Eliminación rápida” y “Mejor rendimiento”. Windows le permite optimizar su dispositivo USB para una eliminación rápida o un rendimiento mejorado. De forma predeterminada, Windows optimiza los dispositivos USB para una extracción rápida y, por lo tanto, si no conoce estos términos, no habrá daños en su memoria USB. Puede acceder a esta configuración desde el administrador de dispositivos: abra el menú Inicio, escriba Administrador de dispositivos y presione Entrar para iniciarlo. Expanda la sección Unidades de disco en el Administrador de dispositivos, haga clic con el botón derecho en su dispositivo y seleccione Propiedades.

Seleccione la pestaña Políticas en la ventana Propiedades. Notarás que Windows dice que puedes desconectar tu dispositivo USB de manera segura sin usar el ícono de notificación Quitar hardware con seguridad, por lo que esto significa que puedes desconectar tu dispositivo USB sin tener que quitarlo con seguridad, ¿verdad? No tan rapido.

Peligro de corrupción de datos

El cuadro de diálogo de Windows que se muestra arriba es engañoso. Si desconecta su dispositivo USB mientras se escriben datos en él, por ejemplo, mientras mueve archivos o guarda un archivo, esto puede provocar la corrupción de datos. Independientemente de la opción que utilice, debe asegurarse de que su dispositivo USB no esté en uso antes de desenchufarlo; algunas memorias USB pueden tener luces que parpadean mientras se usan.

Sin embargo, incluso si el dispositivo USB no parece estar en uso, aún puede estar en uso. Un programa en segundo plano puede estar escribiendo en la unidad, por lo que podría dañar los datos si desconecta la unidad. Si su memoria USB no parece estar en uso, probablemente pueda desconectarla sin que se produzca ningún daño en los datos; sin embargo, para estar seguro, sigue siendo una buena idea usar la opción Quitar hardware con seguridad. Cuando expulsa un dispositivo, Windows le indicará cuándo es seguro eliminarlo, asegurando que todos los programas se hayan completado con él.

Escribir en caché

Si selecciona la opción Mejor rendimiento, Windows almacenará en caché los datos en lugar de escribirlos en el dispositivo USB de inmediato. Esto mejorará el rendimiento de su dispositivo; sin embargo, es mucho más probable que se produzcan daños en los datos si desconecta el dispositivo USB sin utilizar la opción Quitar hardware con seguridad. Si el almacenamiento en caché está habilitado, Windows no escribirá los datos en su dispositivo USB de inmediato, incluso si parece que los datos se han escrito en el dispositivo y todos los cuadros de diálogo de progreso del archivo están cerrados, es posible que los datos se almacenen en caché en su sistema.

Cuando expulsa un dispositivo, Windows vaciará la memoria caché de escritura en el disco, asegurando que se realicen todos los cambios necesarios antes de notificarle cuándo es seguro quitar la unidad.

Si bien la opción de eliminación rápida disminuye el rendimiento de USB, es la opción predeterminada para minimizar las posibilidades de corrupción de datos en el uso diario; muchas personas pueden olvidarse de usar, o nunca usar, la opción Quitar hardware de forma segura al desconectar dispositivos USB.

Extracción segura de hardware

En última instancia, no importa qué opción use, debe usar el ícono Quitar hardware con seguridad y expulsar su dispositivo antes de desenchufarlo. También puede hacer clic con el botón derecho en la ventana de la computadora y seleccionar Expulsar. Windows le dirá cuándo es seguro quitar el dispositivo, eliminando cualquier cambio de corrupción de datos.

Si solo ha leído de él, probablemente no tendrá ningún problema no corregible si lo expulsa antes de que se complete la lectura. Tendrá una lectura corrupta, pero la borrará, vuelva a enchufar la unidad y vuelva a hacerlo, esperando hasta que la lectura termine esta vez. Y leer es bastante rápido.

La escritura es puesta en escena. Lo que escribe va a un búfer, desde donde se escribe físicamente en la unidad a medida que el sistema operativo tiene tiempo. Si elimina de forma segura, el sistema operativo obliga a completar todas las escrituras en el disco, y ENTONCES le dice que es seguro quitar el disco. Si solo lo elimina, es posible que algunos de los datos en el búfer no se hayan escrito todavía y, dependiendo del sistema operativo, la unidad puede dañarse (el archivo en sí se dañará).

Esto es cierto para cualquier sistema operativo actual: las escrituras USB en dispositivos de almacenamiento no son inmediatas.

En general, la memoria caché de escritura no se almacena por mucho tiempo para la mayoría de las unidades USB 3.0. El alto ancho de banda lo impide. Además, las unidades modernas tienen una pequeña cantidad de energía de reserva para escribir su caché interna y apagarse de forma segura si se corta la energía.

Además, los sistemas de archivos modernos tienen una característica llamada diario que permite una reparación casi instantánea del sistema de archivos si está dañado debido a una escritura incompleta debido a un apagado incorrecto o la eliminación de la unidad.

Dicho esto, has tenido suerte. Estas características solo sirven para reducir el daño, no para evitarlo por completo. Debe utilizar los procedimientos de extracción de unidades adecuados en el futuro. Primero, el software lo expulsa y luego, cuando se informa que está completo Y la luz de actividad de la unidad se apaga, puede, si corresponde, apagar y luego desconectar la unidad.

Has tenido suerte, a pesar de lo que otros han dicho, es posible, eso no significa que lo que otros han dicho está mal, de hecho es bastante correcto, pero me gustaría agregar más información para explicar mi comentario aquí.

En primer lugar, “con seguridad” significa asegurarse de que no se realizarán más escrituras, pero aquí está el truco, la escritura no es necesariamente su archivo.

La escritura podría ser una actualización del sistema de archivos o una escritura retrasada. Entonces, en este caso (especialmente si el formato en el USB es FAT), entonces podría perder algunos o todos los datos actualmente en la memoria USB debido a un error en la tabla de particiones. Esto podría dañar algunos o todos los archivos y puede hacer que la unidad sea inaccesible.

La otra cosa que podría suceder si está haciendo un corte y pegado es que el archivo original se puede eliminar antes de que se escriba el nuevo archivo (debido a la actualización del sistema de archivos o del búfer), en cuyo caso perderá el archivo.
Finalmente, existe la posibilidad de que un archivo en el USB esté abierto y, por lo tanto, no se guarde y / o no se cierre, en este caso puede perder las últimas ediciones en el archivo o quedarse con un archivo abierto en el USB que podría causar la corrupción del archivo más tarde.

Por lo tanto, puede ser que no lo use de la manera anterior, lo que es más riesgoso.

El sistema operativo asumirá que al menos debe escribir (más o menos lo mismo que deshabilitar la memoria caché para las escrituras en este caso) no escribir de nuevo (diferiendo las escrituras por razones de rendimiento) porque los desarrolladores del sistema operativo:

  1. Sepa que es una unidad montada en USB.
  2. Sepa que todos van a hacer esto.
  3. No se espera que las unidades USB sean increíblemente rápidas para las escrituras (el almacenamiento en caché de lectura funcionará de manera diferente) de todos modos.

Cuando desmonte la unidad, también conocida como “Expulsar”, hará un desmontaje + descarga dentro de un candado para asegurarse de que ninguna aplicación emita una nueva escritura, pero si la está utilizando para guardar documentos de Word o similares, no se gana ningún sistema operativo sano. simplemente escriba o haga una descarga inmediata.

El sistema operativo garantiza que esto sea así, no los escritores de aplicaciones individuales, porque todos actúan a través de una “API” (WriteFile & ReadFile en el caso de Windows) y nunca hablan directamente con un dispositivo. El sistema operativo decide si es conveniente almacenar en caché, no el programa que está utilizando. Hace mucho tiempo, cuando usábamos unidades de disquete (¿recuerdas esas?), Las Mac en realidad te hicieron expulsar el disco, pero las PC solo esperaban que no quitaras el disco mientras la luz está encendida o encendida mientras quitas el disco. La decisión de Mac fue técnicamente correcta, pero los puertos USB no pueden aplicar esto, así que …

Lo mismo puede suceder teóricamente con una unidad USB. Pero al menos el sistema operativo se asegura de que sea menos probable que ocurra básicamente al no almacenar en caché. Nada le impedirá ser un idiota y sacar el disco mientras está escribiendo algo en el disco que olvidó que estaba emitiendo o que desconocía por alguna razón, por lo que el mensaje sigue siendo válido.

Windows se dio cuenta de que la gente hace esto todo el tiempo. Solía ​​ser que el sistema operativo escribiría datos en un búfer, que luego se escribiría en la unidad más tarde a conveniencia del sistema operativo, lo que proporcionaría un mejor rendimiento del sistema (es decir, no ralentizaría la computadora mientras realizaba las E / S). El “dispositivo de expulsión segura” se realizó para proteger los datos y asegurarse de que la unidad no se escribía o leía activamente antes de extraerla.

Resulta que a nadie le gustan las molestias de “expulsar de forma segura” las unidades de memoria USB, simplemente las sacan, por lo que los desarrolladores de software optaron por realizar todas las operaciones de lectura / escritura sincronizadas cuando los usuarios dieron la instrucción, por lo que no hay peligro de que sea retirado mientras el usuario no cree que esté haciendo nada.

Solía ​​ser bastante común que el software del controlador para la unidad USB no vacíe su búfer, y algunos datos estaban esperando en la computadora, por lo que si extraía la unidad sin expulsarla (forzando una descarga del búfer), entonces no se escribiría alguna información al dispositivo USB, y el estado de los datos en la unidad no estaba garantizado. Me tropezaría con esto cuando copie archivos de una máquina a otra y me olvide de expulsar el dispositivo, lo que da como resultado que el archivo que pensé que estaba (sobre) escrito sea la versión anterior o inexistente.

En estos días, parece que los controladores descargan todos los datos en la unidad USB después de un corto período de tiempo, de modo que si la unidad se extrae sin expulsar, está en un estado lógicamente coherente, con todos los datos.

Diría que has tenido suerte.

Hay una configuración de registro en Windows que apaga el almacenamiento en búfer para los discos USB, por lo que no NECESITA expulsarlos primero. Si esa configuración está activada, puede quitar el disco normalmente sin problemas.

Si NO está encendido, a menudo puede expulsar el disco sin problemas dependiendo de qué tan pronto después de ESCRIBIR en el disco USB lo expulse.

Por lo tanto, si inserta un disco USB, copie algunos datos de él, pero no ESCRIBA ni GUARDE nada en él, entonces no habrá ningún problema en quitarlo sin expulsarlo primero. Si los datos estaban bien cuando los insertó, entonces también deberían estar bien cuando los extraiga.

Si escribe o guarda algo en el disco USB, esos datos se escriben primero en un búfer de memoria y luego se escriben en el disco USB en algún momento posterior. Esto se hace para que no tenga que esperar antes de hacer lo siguiente que quiere hacer.

No estoy seguro de qué desencadena la escritura física de los datos en la unidad USB (pero expulsar la unidad SÍ fuerza esto), pero esperaría que en algún momento los datos se escriban en la unidad, incluso si no hace nada. Si lo elimina después de ese momento, sus datos deberían estar seguros.

Si tiene la opción de eliminación fácil activada, aún puede dañar los datos en la unidad USB eliminándola demasiado pronto. Supongamos que guarda un archivo de 1 Gb en el disco de memoria USB y luego, tan pronto como parece que se haya completado, retire la memoria USB y seguramente dañará el disco. Eso es porque lleva tiempo escribir un archivo tan grande en la memoria flash. A pesar de que Windows le devuelve el control y parece que la tarea se ha completado, probablemente no lo haya hecho. Es fácil ver esto con algunas unidades USB, ya que tienen una luz que parpadea con actividad y puede ver esa luz parpadeando durante muchos segundos después de que PIENSE que se ha completado. Si retira el disco mientras la luz parpadea, ¡corrupción!

Si el disco no TIENE una luz, entonces no tiene una manera fácil de asegurarse de que sus datos estén seguros, aparte de expulsar el disco y esperar hasta que se le indique que es seguro eliminarlo.

Sin embargo, recuerde: si no ha escrito o guardado en el disco -0, entonces no debería importar.

Digamos que te digo que te daré una secuencia de 8 bits, y la suma de estos debería ser par. Entonces obtienes esto de mí:
1011 110
¿Solo siete bits? bueno, debes asumir con seguridad que falta el último bit, y debido a la regla de la suma, tiene que ser 1.
Eso es llamada suma de control.
ahora digamos que te digo que te enviaré 10 pares de bits, y la combinación más común es 10, seguida de 11, 01 y 00 en ese orden. Usted obtiene:
00 11 11 11 10 10 10 10
faltan dos fragmentos de datos, debido a las reglas que menciono antes de que sean 01 01, eso haría que 01 sea más común que 00 y menos común que 11 (para este ejemplo, asumiremos que no hay pares igualmente comunes)
A esto se le llama algoritmo Huffman (muy estricto).
Ahora digo que te enviaré 10 bits de datos, y obtienes
1101101011
1101101111
1101101011

Hay dos cadenas de datos similares y una distinta, por lo que se espera que asuma que los datos repetidos son los correctos.
Esto se llama redundancia. (sí, el espacio real que en su memoria es en realidad más grande de lo que dice ser, incluso después de que el sistema reclama algo de espacio para escribir las tablas huffman, también conocidas como las reglas descritas anteriormente)

Todos esos (y muchos más, dependiendo del productor) se utilizan para mantener los datos seguros, incluso cuando se pierden algunos grupos, puede perder hasta un 20% de sus datos y recuperarlos en el sistema.

Sin embargo, las fallas son posibles, y créanme que usualmente sucede cuando realmente lo necesitan para no hacerlo.

La mayoría de las respuestas aquí son esencialmente correctas. Cualquier sistema operativo utilizará técnicas de almacenamiento en búfer al escribir en medios persistentes relativamente lentos (como unidades USB). Desde un programa, puede escribir cualquier cantidad de cosas en un archivo en medios persistentes. Pero la escritura es una ilusión porque los datos se escriben realmente en un búfer de archivo. Normalmente, el búfer se vuelve a escribir periódicamente en los medios persistentes en un momento elegido por el sistema operativo y no por el usuario. Algunos sistemas operativos tienen operaciones de programación del sistema que permitirán a un programador vaciar explícitamente un búfer de archivo si así lo desean.
Esto hace que escribir sea mucho más rápido porque la mayoría de las veces el programa está escribiendo en RAM. Entonces, si escribe solo una pequeña cantidad de datos en un archivo, no tiene que reducir la velocidad de todo el programa para esperar una escritura en el disco. Terminas escribiendo en un búfer y cuando el sistema operativo piensa que tiene una cantidad suficientemente grande de datos en el búfer, escribe en el almacenamiento persistente como un bloque.
El efecto de expulsar un dispositivo de almacenamiento es vaciar todos los búferes de archivos y cerrarlos. Para que no haya posibilidad de pérdida de datos. Pero puede tener suerte al azar y en el momento de extraer su USB, es posible que los búferes ya estén vacíos, en cuyo caso no hay efectos adversos. Claramente, no hay garantía de esto. Tenga en cuenta que este principio se aplica a cualquier dispositivo de almacenamiento lento, no solo a USB.
En su mayoría, solo debe preocuparse si escribió sus datos en el USB, no si está leyendo. Lo único de lo que debe preocuparse al leer es que es posible que el sistema operativo haya creado archivos temporales invisibles en su USB y si saca el dispositivo, estos no se eliminan y, por lo tanto, tiene un desorden inútil en su USB. Pero no hay pérdida de datos.

El problema aquí radica en la escritura del archivo. Si retira la unidad externa mientras está escribiendo, podría dañar el archivo dentro de la unidad externa.

En su caso, no causa ningún problema porque la unidad no está en modo de archivo de escritura, por lo que no causa ningún problema. Pero si de alguna manera todavía está escribiendo datos, podría dañar el disco.

Le sucedió a mi amigo una vez, él es bastante terco cuando le cuento sobre quitarlo con seguridad. Un día, todos sus datos preciosos se corrompen, cuando lo intentó nuevamente, se corrompió nuevamente. Pero cuando le dije que lo quitara con seguridad primero, el problema ya no apareció.

Sólo una coincidencia. Fui testigo de una situación en la que un chico necesitaba imprimir rápidamente un documento. Conectó una unidad flash, movió el documento a la memoria flash. Esperó hasta que terminó (al menos el comando total afirmó que estaba terminado) y luego lo desenchufó de inmediato y corrió a otra computadora con una impresora conectada a su unidad USB.

El documento no estaba en la unidad flash, pero tampoco estaba en su computadora portátil. El problema es que el contenido del archivo se copia primero y luego se escribe el nombre del archivo, la longitud, etc. Si lo desconecta demasiado pronto, los datos están en la unidad flash pero el contenido de la unidad flash no se actualiza (todavía está en el caché de Windows, pero puede ser ya no está escrito en la unidad flash).

Depende de cuánto tiempo espere después de escribir archivos en la unidad flash y qué sistema operativo utiliza.