Un sector defectuoso en informática es un sector de disco en una unidad de almacenamiento de disco que no se puede leer. Al sufrir un daño, se pierde toda la información almacenada en ese sector. Cuando se encuentra un sector defectuoso y se marca, el sistema operativo, como Windows o Linux, lo omitirá en el futuro. Los sectores defectuosos son una amenaza para la seguridad de la información en el sentido de la remanencia de datos .
Los sectores defectuosos pueden ser "suaves" (lógicos) o "duros" (hardware, físicos), dependiendo de lo que esté haciendo que el sector sea inaccesible. En caso de pérdida de energía, deterioro de bits (más probable en disquetes ) o problemas de firmware, el formato en disco puede estar dañado más allá de lo que el código de corrección de errores puede arreglar. Este es un sector defectuoso "suave": la escritura sobre el daño sería exitosa. [1]
Por otro lado, los sectores dañados físicamente no se pueden restaurar: la escritura fallaría, forzando una reasignación. Una nueva unidad puede comenzar con algunos sectores defectuosos inofensivos debido a fallas de fabricación. Las manchas más grandes ocurren durante el uso, debido a golpes de cabezal , desgaste, golpes físicos o intrusión de polvo. [2] [1]
En las unidades de estado sólido , el desgaste de la memoria flash o un error del controlador flash también pueden causar sectores defectuosos. [3]
El sistema operativo o el controlador de disco pueden detectar sectores defectuosos . La mayoría de los sistemas de archivos contienen disposiciones para marcar sectores como defectuosos, de modo que el sistema operativo los evite en el futuro. Las utilidades de diagnóstico de disco , como CHKDSK ( Microsoft Windows ), Disk Utility (en macOS ) o badblocks (en Linux ) pueden buscar activamente sectores defectuosos a pedido del usuario.
Con la llegada de los controladores de disco compatibles con SMART (ver más abajo), la carga de evitar sectores defectuosos recae más comúnmente en el disco. [4] Algunos sistemas de archivos más nuevos, como Btrfs y ZFS, no tienen una función para evitar bloques defectuosos. [5] Las herramientas de software que buscan bloques defectuosos todavía tienen un caso de uso: al emitir escrituras en sectores defectuosos detectados, se puede acelerar el proceso de reasignación, evitando más intentos de lectura del sector defectuoso. [6]
Cuando el firmware de un controlador de disco detecta que un sector está dañado o es inestable, un controlador de disco moderno (posterior a 1990) reasigna el sector lógico a un sector físico diferente. Normalmente, la reasignación automática de sectores solo ocurre cuando se escribe en un sector; las lecturas fallidas quedan marcadas como "pendientes". En el funcionamiento normal de un disco duro, la detección y reasignación de sectores defectuosos debe realizarse de manera transparente para el resto del sistema y con antelación, antes de que se pierdan los datos. Existen dos tipos de reasignación por hardware de disco: P-LIST (asignación durante las pruebas de producción en fábrica) y G-LIST (asignación durante el uso por parte del consumidor mediante microcódigo de disco). [4]
Las utilidades pueden leer la información de la tecnología de automonitoreo, análisis e informes (SMART) para saber cuántos sectores se han reasignado y cuántos sectores libres puede tener todavía la unidad. [7] Debido a que las lecturas y escrituras de los sectores de la lista G se redirigen (reasignan) automáticamente a los sectores libres, esto ralentiza el acceso a la unidad incluso si los datos de la unidad están desfragmentados. Una vez que la lista G está llena, la unidad de almacenamiento debe reemplazarse. [8] [9]
En comparación con ATA, el conjunto de comandos SCSI permite una gestión más precisa de los sectores defectuosos. Los usuarios pueden leer la G-LIST, controlar si se realiza una reasignación automática y utilizar un comando dedicado REASSIGN BLOCKS para reasignar manualmente si es necesario. El conjunto de comandos también proporciona una forma de realizar un formateo de bajo nivel con FORMAT UNIT . [10]
El programa ATATool de Windows se puede utilizar para crear deliberadamente sectores defectuosos "suaves" manipulando los datos del código de corrección de errores (ECC) del sector. Esto se puede utilizar para verificar la compatibilidad de sectores defectuosos en utilidades de disco y herramientas forenses. Por ejemplo, para hacer que el sector 10 sea defectuoso:
ATATOOL /BADECC:10 \\.\Unidad física1
hdparm tiene un comando --make-bad-sector que funciona de manera similar. Para unidades más nuevas, puede utilizar alternativamente WRITE_UNCORRECTABLE_EXT para "marcar" un sector como defectuoso: el controlador de la unidad no intentaría leerlo, sino que fallaría inmediatamente. [6]
En un estudio de 2007, el CERN observó 1,53 millones de discos duros de 30 modelos durante 32 meses y analizó los errores de lectura de los discos que se detectaron. Observaron que el 3,5% de los discos desarrollaban un "error de lectura latente" (es decir, un sector defectuoso ilegible), y que un disco con un sector defectuoso tiene más probabilidades de desarrollar más. Los sectores defectuosos se agrupan espacialmente (en un entorno de 10 MB) y temporalmente. Los errores recuperados por ECC, que son informados por los discos empresariales (utilizando el conjunto de comandos SCSI), también sugieren una mayor probabilidad de que se produzca un sector defectuoso en el futuro. [11]