¿Pueden los datos en un disco duro degradarse sin que Windows me advierta que esto ha sucedido cuando intento acceder a los datos?


30

¿Es probable que una degradación física de un disco duro pueda hacer que los bits se "volteen" en el contenido del archivo sin que el sistema operativo "lo note" y le informe al leer el archivo? p. ej., una 'p' en un archivo de texto ASCII (binario 0111000 0 ) puede cambiar a 'q' (0111000 1 ) y luego un usuario (yo) puede abrir el archivo y ver 'q' sin darse cuenta de que hay una falla ¿ha ocurrido?

Estoy interesado en respuestas relacionadas con FAT, NTFS o ReFS ... si hace la diferencia.

Quiero saber si el sistema operativo me protege de esto, o si debería verificar mis datos para determinar si hay invariancias entre copias / a lo largo del tiempo.


No relacionado específicamente, pero similar: superuser.com/questions/613702/…
Michael Frank

Supongo que podría ser posible que un cabezal de lectura / escritura dañado aplique accidentalmente la carga incorrecta al disco, aunque nunca he visto corrupción de datos en una escala tan pequeña. Además, no confiaría en que Windows me diga si una unidad falla o no (el mensaje al iniciar sesión). He visto unidades mueren lentamente con el tiempo sin ninguna advertencia de Windows.
CConard96

Por supuesto ... los datos se almacenan como bits con valores relativos de 0 o 1, la entropía se produce en todos los sistemas, incluido el almacenamiento magnético y de estado sólido. Todos los datos se degradan con el tiempo.
acejavelin

2
@Moab: Estaría más impresionado con su segundo comentario ("También ...") si la URL fuera, de alguna manera, diferente de la URL en su primer comentario.
TOOGAM

1
Si usa ReFS encima de un volumen duplicado (¡no paridad!) Y lo configura correctamente, comprobará los datos del archivo de suma y los metadatos del sistema de archivos. Se verificará en lectura (y se corregirá si es necesario) y también hay un trabajo programado que escaneará periódicamente todo el volumen en busca de errores detectados.
davidbak

Respuestas:


24

, hay una cosa llamada putrefacción.

Pero no , no te afectará desapercibido.

Cuando una unidad escribe un sector en los platos, no solo escribe los bits de la misma manera que están almacenados en la RAM, sino que utiliza una codificación para asegurarse de que no haya secuencias del mismo bit que sean demasiado largas. y agrega códigos ECC, que le permiten reparar errores que afectan a unos pocos bits y detectar errores que afectan a más de unos pocos bits.

Cuando la unidad lee el sector, verifica estos códigos ECC y repara los datos, si es necesario y posible. Lo que sucede a continuación depende de las circunstancias y del firmware del disco, que está influenciado por la designación del disco.

  • Si un sector se puede leer y no tiene problemas de ECC, se pasa al sistema operativo
  • Si un sector puede repararse fácilmente, la versión reparada puede escribirse en el disco, leerse y verificarse, para determinar si el error fue aleatorio (rayos cósmicos ...) o si hay un error sistemático con los medios
  • Si la unidad determina que hay un error con los medios, reasigna el sector
  • Si un sector no puede leerse ni corregirse después de algunos intentos de lectura, en una unidad designada como unidad RAID , la unidad se dará por vencida, reasignará el sector y le dirá al controlador que hubo un problema. Se basa en el controlador RAID para reconstruir el sector de los otros miembros RAID y volver a escribirlo en la unidad fallida, que luego lo almacena en el sector reasignado que, con suerte, no tiene el problema.
  • Si un sector no se puede leer o corregir en una unidad de escritorio , la unidad hará muchos más intentos de leerlo. Dependiendo de la calidad de la unidad, esto podría implicar reposicionar la cabeza, verificar si hay bits que se voltean cuando se leen repetidamente, verificar qué bits son los más débiles y algunas otras cosas. Si alguno de estos intentos tiene éxito, la unidad reasignará el sector y reescribirá los datos reparados.

(Esta es una de las principales diferencias entre las unidades que se venden como unidades "de escritorio", "NAS / RAID" o "videovigilancia". Una unidad RAID puede simplemente renunciar rápidamente y hacer que el controlador repare el sector para evitar la latencia en el lado del usuario. Una unidad de escritorio volverá a intentarlo una y otra vez, ya que hacer que el usuario espere unos segundos probablemente sea mejor que decirle que se pierden los datos. Ni siquiera se note.)

De todos modos, la unidad sabrá si ha habido un poco de putrefacción, generalmente se recuperará de ella, y si no puede, le dirá al controlador que a su vez le dirá al controlador qué le dirá al sistema operativo. Luego, depende del sistema operativo presentar este error al usuario y actuar en consecuencia. Por eso dice cibernard

Nunca he sido testigo de un solo error, pero he visto muchos discos duros en los que sectores enteros han fallado.

la unidad sabrá que hay algo mal con el sector, pero no sabe qué bits han fallado. (Un solo bit que ha fallado siempre será detectado por ECC).

Tenga en cuenta que chkdsk y la reparación automática de sistemas de archivos no abordan la reparación de datos dentro de los archivos. Esos están dirigidos a la corrupción dentro de la estructura del sistema de archivos; como un tamaño de archivo diferente entre la entrada del directorio y el número de bloques asignados. La función de recuperación automática de NTFS detectará daños estructurales y evitará que afecten aún más sus datos, no reparará ningún dato que ya esté dañado.

Por supuesto, hay otras razones por las cuales los datos pueden dañarse. Por ejemplo. RAM defectuosa en un controlador puede alterar los datos incluso antes de que se envíen a la unidad. En ese caso, ningún mecanismo en el disco detectará o reparará los datos, y esta puede ser una de las razones por las cuales la estructura de un sistema de archivos está dañada. Otras razones incluyen errores simples de software, apagón al escribir el disco (aunque esto se soluciona mediante el registro en diario del sistema de archivos) o controladores de sistema de archivos defectuosos (el controlador NTFS en Linux se configuró en modo de solo lectura durante mucho tiempo, ya que NTFS fue ingeniería inversa, no documentada , y los desarrolladores no confiaron en su propio código).

Tuve este escenario una vez, donde una aplicación guardaba todos sus archivos en dos servidores diferentes en diferentes centros de datos, para mantener una copia de trabajo de los datos en todas las circunstancias. Después de unos meses, notamos que en una de las copias, aproximadamente el 0.1% de todos los archivos no coincidían con la suma MD5 que la aplicación almacenaba en su base de datos. Resultó ser un cable de fibra defectuoso entre el servidor y la SAN.

Estas otras razones son la razón por la cual algunos sistemas de archivos, como ZFS, mantienen información adicional de suma de verificación para detectar errores. Están diseñados para protegerlo de muchas más cosas que pueden salir mal, además de la putrefacción.


2
+1 por señalar que otros problemas de hardware además de la degradación de los medios de la unidad pueden hacer que se lean y escriban datos corruptos . Personalmente he tenido el problema con los cables defectuosos dentro de un caso. Y, para su información, además de ZFS, el sistema de archivos Windows ReFS (para Server 2012+) cuando se configura correctamente y se ejecuta sobre Storage Spaces verificará los datos de los archivos, así como los metadatos del sistema de archivos y los recuperará, además hará un volumen completo periódico escaneos de integridad para detectar y corregir muchos de estos errores.
davidbak

17

Sí, los discos duros pueden y se degradan sin advertencia del sistema operativo. Se llama poco pudrición . Nunca he presenciado un solo error, pero he visto muchos discos duros donde sectores enteros han fallado.

Windows no tiene protección incorporada del contenido del archivo más allá de la estructura del sistema de archivos NTFS. Piense en NTFS como un libro: bueno, solo protege la tabla de contenido y verifica que las cosas coincidan. Sin embargo, si el daño está en el medio de una página, no ofrece protección. FAT no tiene nada. Los discos duros emplean la corrección de errores de ECC por sector, pero el disco no le dice a Windows. Algunos tipos de archivos tienen específicamente hashes CRC, MD5 o SHA para detectar daños, pero no arreglan nada.

Incluso entonces, el hash solo te dice que hay un problema, pero no sabe dónde se encuentra el error.

El disco duro tiene SMART que monitorea la salud del disco duro, pero a menos que el disco esté en la puerta de la muerte, el BIOS no lo advertirá. Peor aún, SMART a menudo está deshabilitado de manera predeterminada en su BIOS. Puede monitorear los números a través del software, pero diferentes unidades tienen diferentes problemas. Si tiene muchos sectores reubicados, o sus errores de ECC aumentan constantemente. Si tiene 100,000 nuevos ECC todos los días, es una mala señal.

Muchos tipos de archivos no tienen protección contra la descomposición de bits . Como TXT y BMP, que no tienen ninguna protección. Winrar tiene una opción opcional para agregar datos de paridad al archivo que hará que el archivo sea más grande, pero puede detectar (proporcionalmente a la cantidad de datos de paridad agregados) y reparar este tipo de error.

Todos los demás programas de compresión que conozco detectan errores, pero no pueden hacer nada al respecto.

Eventualmente, los errores en un sector serán tan malos que ECC no puede corregirlo, y la unidad le dará lo que lee incluso si está equivocado.

Puede usar QuickPar o similar para crear archivos de datos de paridad, pero que yo sepa, no hay forma de automatizarlo. Por ejemplo, en realidad cambia el archivo usted mismo cuando tiene que actualizar manualmente la paridad. También puede tener datos de paridad para un grupo de archivos, pero cambia 1 archivo y se debe volver a crear todo el conjunto de paridad. Este es un verdadero dolor de cabeza para todos, pero una pequeña cantidad de archivos.


Windows, chdsk, ni NTFS tienen detección contra la descomposición de bits, que es manejada por RAID o un sistema de archivos con paridad. Una mala partición no es ni es causada por la descomposición de bits Apruebo esta respuesta
Ramhound,

1
@Ramhound Lamentablemente, el número de usuarios que protegen sus datos con duplicación RAID, nivel 5 o nivel 6 es probablemente menor al 0.01%
cibernard

Sé que estaba hablando en general. Bit rot! = Particiones malas
Ramhound

1
NOR = NO OR; usado en una oración significa que es una lista exclusiva;
Ramhound

1
Tenía este disco duro de 750 GB que hacía cosas como esta. En primer lugar, la computadora era lenta y se congela todo el tiempo. Cuando tengo algunos archivos de texto, parte de él se pone a cero o ha sido ilegible. La computadora luego dejó de arrancar. Obtuve un nuevo disco duro (obtuve HDD, no SSD. Creo que debería haber obtenido una SSD) y el problema
desapareció

2

Sí, es posible. Windows es solo software. El software es una serie de instrucciones que debe seguir una computadora.

Piense en otro tipo de serie de instrucciones: un libro. ¿Qué pueden lograr esas instrucciones si están escritas en un libro que se encuentra en un estante y nadie se molesta en abrir el libro y leer esas instrucciones?

Así como esas instrucciones escritas requieren que una persona lea las instrucciones y comience a seguirlas, el software de la computadora requiere hardware para hacer cosas que sean útiles. Incluso si un libro tiene instrucciones que fueron escritas con una precisión fabulosa, eso no evita problemas si una persona decide leer las instrucciones, pero luego implementarlas incorrectamente. Del mismo modo, el software no puede evitar que el hardware haga cosas malas. Entonces, el hardware roto puede triunfar físicamente sobre lo que puede hacer cualquier pieza de software, incluido Microsoft Windows.

Ahora, ReFS puede diseñarse con la intención de que el software almacene detalles sobre los datos y que el software compare esos detalles más adelante. Un concepto simple es "suma de verificación", donde el software agrega ciertos valores y se asegura de que esos valores coincidan con el resultado esperado. Cuando el hardware implementa ese software, se pueden detectar ciertos malos resultados. Esto incluso puede ser muy probable que funcione. Sin embargo, dado que el número de problemas potenciales, que podrían existir en teoría, es básicamente un número infinito, no hay garantía de que el software detecte necesariamente cada problema. (Tenga en cuenta que el software es una serie de instrucciones que se creó con anticipación).

FAT es particularmente bajo en características. FAT12 fue diseñado para disquetes y FAT16 para sistemas de hasta 4 GB (aunque la mayor parte de la implementación de Microsoft de FAT16 tendió a no funcionar por encima de 2 GB). Sin la extensión VFAT, ninguno de ellos admitía nombres de archivo de más de 11 caracteres (algunos de los cuales estarían en una parte llamada "extensión"). FAT fue diseñado simplemente para almacenar datos en un momento en que la capacidad de almacenar datos era un concepto novedoso sobre el que los adultos debían aprender. Cuando FAT se consideraba una tecnología "de vanguardia", la tecnología informática aún no era lo suficientemente frecuente y elaborada para que las personas se preocuparan por las funciones avanzadas.

NTFS agregó soporte para algunas características más, quizás más notablemente haciendo que el sistema operativo pueda realizar un seguimiento de los permisos del usuario. Hay diferentes versiones de NTFS. Por ejemplo, Moab señala que Windows Server 2008 agregó soporte para NTFS de recuperación automática, que puede detectar algunas cosas. Aún así, esa característica era nueva en Windows Server 2008, por lo que no es algo compatible con Windows XP (o Windows Server 2003 o anterior). Aún así, al revisar la lista de características, parece que esto involucró algunos metadatos que ayudan al sistema operativo a detectar problemas que son tan graves que el disco no puede montarse u otras áreas clave del disco que afectan el núcleo del sistema operativo. No parecía que cada dato, en cada archivo, se viera afectado por esta característica en particular.

Es extremadamente improbable que el software para tales sistemas operativos note tales cosas, a menos que causen problemas notables para que el sistema operativo realice tareas. Puede haber algunas excepciones, como las partes del sistema operativo que verifican los discos (CheckDsk / ChkDsk / ScanDisk / ScanDskW, dependiendo del sistema operativo), pero incluso estarán bastante limitados en lo que pueden detectar, en gran parte porque los sistemas de archivos no funcionan No almacene una gran cantidad de datos destinados a ser útiles para la comprobación del disco.

(RAID5 podría ser más propenso a detectar tales cosas, ya que cada bit tiene un bit de paridad que ayudaría a notar algo inusual. Incluso entonces, dependería de la implementación de RAID ejecutar una verificación para notar el problema. Si el problema ocurrió en una parte del disco con la que no se está trabajando activamente, el problema puede pasar desapercibido hasta que alguien intente comenzar a usar esos datos).

En tiempos más recientes, un mayor número de bits significaba que las probabilidades pequeñas, como las posibilidades de "1 en 10 millones", tenían más probabilidades de afectar las cosas. El público en general también ha aprendido sobre los "rayos cósmicos", que pueden tener un pequeño impacto en las cosas. Dado que los bits están tan apretados en dispositivos más nuevos, los requisitos físicos para representar un bit son más pequeños, por lo que incluso los impactos pequeños tienen más probabilidades de alterar la forma en que se reconoce un bit. ReFS tiene algunas características diseñadas para ayudar a detectarlas. El artículo de Wikipedia sobre ReFS se refiere a esto como "comprobación automática de integridad". Como se describe como una característica notable de este sistema de archivos, es probable que tales características estén más desarrolladas que con NTFS (y ciertamente más que FAT, que era de naturaleza comparativamente simple).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.