Usamos viejos discos duros malos

Desde mis días de estudiante, tuve un montón de discos duros. De vez en cuando los actualicé: vendí los viejos, pero en cambio los puse más espaciosos. Luego, la demanda de volumen fue bastante grande, todo tuvo que almacenarse en sus propios tornillos. Pero ha llegado el momento de Internet, y las LAN han desaparecido por sí mismas. Durante algún tiempo, los discos se usaron como un limpiador de archivos para torrents. Pero la necesidad de una actualización debido a la falta de volumen desapareció gradualmente. Al final, terminé con un montón de discos duros bastante viejos que comenzaron a morir gradualmente. Todavía no son cadáveres, pero ya se han cubierto con bloques malos y se arrastraron hacia la tumba. Naturalmente, a los primeros signos de males, todo lo más o menos valioso se transfirió a un nuevo tornillo, y el viejo ...

Entonces surgió la pregunta, pero ¿qué hacer con los viejos? De alguna manera, es una pena tirar un tornillo de 4TB cuando solo hay una docena de males. Además, en la mayoría de los casos, su número no crece rápidamente, y este tornillo de 4TB puede usarse para cualquier tontería durante bastante tiempo. Surgió la pregunta, pero cómo asegurarse de que los datos no caigan en las malas. La mayoría de las empresas de servicios públicos están tratando de recuperar estos sectores. Pero con tal volumen, surge la pregunta: ¿por qué? Este proceso es muy largo y ± gigabytes en un disco de 4TB no juega un papel especial. Especialmente cuando varios de esos muertos vivientes se han acumulado. Un pequeño google, una forma de marcar rápidamente los errores, se encontró con varias ramas en foros donde la gente buscaba algo similar. Pero no encontré una solución normal.

Si no hay solución, entonces lo será. Después de pensar un poco, decidí hacerlo de la manera más fácil: escribir una utilidad de consola que conecte un tornillo con los archivos, y luego verifica la lectura de estos archivos. Leer el archivo? Bueno, el sector debajo del archivo es completo, el archivo se elimina. ¿No legible? Entonces encontramos el bloque defectuoso, dejamos el archivo en este malo para que no se escriba nada más en él.

De los inconvenientes de este enfoque: no comprueba el espacio debajo de los archivos existentes, solo espacio libre en disco. De los beneficios, rápidamente y se puede hacer en "porciones".

En total hay 2 modos, completo y modo de limpieza.

El modo completo obstruye el disco con archivos, luego se verifican y eliminan. Para hacer esto, especifique la unidad y el tamaño de bloque / archivo deseado.

BadBlocksPlaceholder [disk] [file_size_kb] BadBlocksPlaceholder e:\ 4096 

Los archivos se crean en la carpeta BadBlockPlaceholders \ aaaammdd

El segundo modo está diseñado para continuar comprobando / limpiando. La obstrucción de archivos de 4TB y su verificación para lectura tampoco es un proceso instantáneo, y a veces hay que dividirlo en un par de días. En este modo, debe especificar la carpeta con los archivos de marcador de posición creados en la primera etapa.

  BadBlocksPlaceholder clean e:\BadBlockPlaceholders\20190110 

Naturalmente, después de la limpieza, deje los soportes BadBlockPlace sobre el tornillo. Espero que alguien sea útil. Solo se probó el guión del día feliz, así que no te asustes y no patees mucho. Escrito en .net core / C #.

Las fuentes están en github .

Source: https://habr.com/ru/post/443612/


All Articles