¿Cómo formatear rápidamente un disco duro con sectores defectuosos (en linux)?

Tengo un SATA HDD, que tiene sectores defectuosos. No necesito los datos y necesito formatear el HDD para crear un dispositivo nuevo.

He intentado reparar el problema del disco duro con comandos como

fsck.ext4 -p /dev/sda1 

Pero se tarda siglos en arreglar los sectores. He formateado todo el disco duro, pero todavía tienen los problemas. ¿Existe una forma rápida de formatear el disco duro y restaurar sectores defectuosos?

No, no hay manera rápida. Generalmente, cuando tiene un disco con algunos sectores defectuosos, debe sobrescribir el contenido total de su disco, con un comando similar al siguiente:

dd bs=512k if=/dev/zero of=/dev/...

Tomará un cierto tiempo (2-3 horas normalmente). Hacer esto le dará a su disco la oportunidad de manejar los sectores defectuosos. Un disco moderno (hecho en los últimos 15 años) maneja los sectores defectuosos internamente, remapeando estos sectores de forma transparente desde un conjunto reservado de sectores durante las escrituras. Así que al final, debe tener un disco con todos los sectores utilizables. Si el disco no puede hacer esta reasignación, por lo general significa que hay tantos sectores defectuosos que se quedó sin sectores reservados. Esta es una clara indicación de que el disco ha llegado al final de su vida útil.

En primer lugar, un sector defectuoso, en teoría, significaría un daño permanente a las partes de un disco duro. Así que si usted está planeando utilizar esta unidad de datos importantes para el futuro cercano, tal vez reconsiderar eso. Las posibilidades de que los sectores malos aumente son buenas. Por lo que sé, ahora hay una manera real de arreglar los sectores defectuosos. Sólo evitar que se utilizan. Además, debe tener en cuenta que los sistemas de archivos pueden escribirse en particiones. Para ver una lista de particiones, utilice el comando fdisk -l . A continuación, puede utilizar el comando e2fsck -c para evitar que se asignen bloques defectuosos a un archivo o directorio.

Al dependiendo de la unidad de hacer. Usted puede descargar desde el sitio web del fabricante de la unidad, las herramientas que pueden, hasta cierto punto, reparar la unidad.

Drives de Seagate

Occidente digital

Un sector defectuoso en un disco duro significa que uno o más bloques defectuosos están fuera de especificaciones en el área de superficie magnética del disco. La única manera de localizar esos bloques es intentar leer cada bloque en un disco duro. HDDs son lentos por lo que tomará mucho tiempo.

Por ejemplo, un HDD moderno tiene un rendimiento de lectura real de alrededor de 130 MB / s, por lo que un disco moderno de 4 TB llevará alrededor de 4000000MB / 130MB / s = 8.5h para incluso leer todo el disco una vez sin bloques defectuosos. Una unidad con uno o más bloques dañados hará que la unidad vuelva a leer esos bloques repetidamente para que el rendimiento sufra mucho. Esto le permitirá localizar los bloques defectuosos que causan errores de lectura. Obtener un HDD moderno para reasignar un bloque malo requiere escribir algo en el mismo bloque.

La única manera de probar realmente si un bloque de superficie HDD funciona es leer el bloque, luego escribirlo de nuevo, y luego ver si la unidad todavía dice que todo está bien para ese bloque . Los bloques solían tener 512 bytes de largo pero las unidades modernas usan bloques de 4KB internamente. Un moderno 4TB unidad requiere pruebas alrededor de un billón (1e9) bloques de 4KB. ¿Y mencioné que los discos duros son lentos?

Si tiene sectores defectuosos y cualquier dato, realmente desea fsck.ext4 -cc . Y que uno llevará alrededor de un día o dos al mínimo. Hacer fsck.ext4 -c permitirá a ext4 evitar los bloques defectuosos pero no puede arreglar la unidad. La opción -c de fsck.ext4 hace que intente leer cada bloque de la partición. La opción -cc lo hará intentar leer cada bloque y escribir el mismo contenido de nuevo a la unidad y comprobar si hay errores. E incluso los discos donde -cc falla pueden repararse a veces … Sin embargo, no hay una bala mágica para localizar los bloques defectuosos. La única manera es analizar toda la unidad y será lenta con enormes unidades.

Puesto que usted no necesita ningún dato, hacer sudo dd if=/dev/zero of=/dev/sdX bs=4M permitirá saltar la parte de "leer los datos" e ir directamente a la parte de "arreglar los bloques". Y que todavía se llevará a cabo entre 8-20 horas para completar.

Tenga en cuenta que el firmware de la unidad reparará automáticamente el bloque defectuoso una vez que sobrescriba el bloque defectuoso. Realmente no importa qué SO o herramienta que utilice para sobrescribir un bloque defectuoso en un HDD. Y los datos no importa tampoco. Si la unidad no puede arreglar el bloque a, la unidad está listo. Esto se debe a que los discos duros modernos tienen algunos bloques físicos adicionales en reserva que se utilizan para rellenar bloques defectuosos en el espacio de direcciones lógico. Si no se puede arreglar un bloque malo, ¡es sólo porque ya se han utilizado todos los bloques en el espacio de reserva! La unidad ha estado fallando durante mucho tiempo en ese caso.

Tenga en cuenta que debe utilizar el tamaño correcto para bloquear el bloque. Por ejemplo, si su unidad utiliza bloques físicos de 4KB y todavía permite bloques lógicos 512B, no puede sobrescribir un bloque defectuoso con una escritura lógica 512B, porque la unidad leerá técnicamente el bloque real de 4KB, modificará el 512B que escribió y reescribió El bloque 4KB de nuevo a la plataforma magnética. Obviamente, el "leer el 4KB real" fallará si el bloque físico es malo. La manera de evitar eso es escribir todo el bloque 4KB en un solo comando HDD para que nada tenga que leerse desde el disco físico. Al final, tienes que escribir un bloque 4KB correctamente alineado para corregir un bloque mal dado. El comando dd anterior siempre escribirá bloques de 4MB, los cuales estarán correctamente alineados si usa todo el dispositivo como of destino. Si utiliza una sola partición como destino y esa partición no está alineada correctamente, es posible que este comando no pueda reparar bloques defectuosos si los tamaños de bloque lógico y físico no coinciden con la unidad. Por lo que sé, esto es cierto para la mayoría de los HDDs modernos. La ejecución de smartctl -x /dev/sdX proporcionará información sobre el dispositivo sdX .

Como siempre, hacer man fsck.ext4 , man dd y man smartctl antes de jugar con este material.

 badblocks -wsv -o /root/<badblocks.txt> /dev/<device> mkfs.<filesystem-type> -l /root/<badblocks.txt> /dev/<device> 


    Intereting Posts