No se puede crear un espejo de Software si el disco contiene bloques no válidos

Síntomas

Cuando intenta crear un nuevo volumen reflejado, o agregar un espejo a un volumen existente en un disco dinámico, puede recibir el siguiente mensaje de error:
Administrador de discos lógicos

Operación cancelada debido a un error de E/S de disco.
Administración de discos muestra ahora un signo de admiración amarillo en el disco que contenía el error de E/S. Si (ratón) en la unidad y, a continuación, haga clic en Reactivar, esto borra el error.

Causa

Si busca en el registro de sucesos del sistema, consulte mensajes de sucesos similares a los siguientes escritos por DMIO que informe de lectura o errores de escritura del disco afectado
Event Type:Information
Event Source:dmio
Event Category:None
Event ID:29
Computer: Computer_name
Description: dmio: Harddisk1 read error at block 3328: status 0xc000009c

Event Type:Information
Event Source:dmio
Event Category:None
Event ID:26
Computer:Computer_name
Description: dmio: Found a bad block on disk Harddisk1 at block number 3328

donde el estado de 0xC000009C es STATUS_DEVICE_DATA_ERROR.

Si realiza un comando Chkdsk en el volumen de origen utilizando el /f/r conmutadores para localizar los sectores defectuosos y recuperar información legible, Chkdsk correctamente marca aquellos sectores (clusters) como "mala", como se ve en el en la sección de sectores defectuosos de salida de Chkdsk.

Ejemplo:
C:\>chkdsk D: /f /r
The type of the file system is NTFS.
Volume label is MASTER.

CHKDSK is verifying files (stage 1 of 5)...
File verification completed.
CHKDSK is verifying indexes (stage 2 of 5)...
Index verification completed.
CHKDSK is verifying security descriptors (stage 3 of 5)...
Security descriptor verification completed.
CHKDSK is verifying file data (stage 4 of 5)...
File data verification completed.
CHKDSK is verifying free space (stage 5 of 5)...
Free space verification is complete.
Adding 1 bad clusters to the Bad Clusters File. <-- bad sectors marked.
Correcting errors in the Volume Bitmap.
Windows has made corrections to the file system.

2047999 KB total disk space.
20 KB in 2 files.
4 KB in 9 indexes.
2 KB in bad sectors. <-- (NOTE BAD SECTOR(S)
12851 KB in use by the system.
12288 KB occupied by the log file.
2035122 KB available on disk.

2048 bytes in each allocation unit.
1023999 total allocation units on disk.
1017561 allocation units available on disk.

Como resultado de Chkdsk encontrar bloques dañados, también se registra el siguiente mensaje:
Event Type:Warning
Event Source:dmio
Event Category:None
Event ID:35
Computer:Computer_name
Description: dmio: Disk Harddisk1 block 3168 (mountpoint D:): Uncorrectable read error

Aunque Chkdsk indica al sistema de archivo no se debe utilizar dichos sectores, cuando intenta establecer de nuevo el reflejo, aún recibe el mismo mensaje de error del Administrador de discos lógicos (LDM) y los mismos mensajes de registro de sucesos de sistema DMIO.

Cuando establece espejados por software en discos dinámicos, DMIO hace una copia sector por sector del disco de origen en el disco de destino. DMIO no conoce ni los sectores que contienen datos o qué sectores pueden haberse marcados "malo" por marcas de Chkdsk Chkdsk. esos sectores defectuosos sólo en el sistema de archivos (FAT, FAT32 o NTFS), para que el sistema de archivos no intenta utilizarlos. DMIO opera a continuación el sistema de archivos y, si encuentra errores de E/S al leer un sector del disco de origen o al intentar escribir los datos en el disco de destino, se anula la operación de creación de reflejos.

Solución

Si el disco que contiene el bloque defectuoso es una unidad de disco small computer system interface (SCSI), copia los datos desde el disco afectado y, a continuación, realizar un formato de bajo nivel del disco afectado. Para ello, utilice una utilidad proporcionada por el fabricante del disco o utilice el controlador de disco, para marcar esos sectores "malo" a nivel de hardware. A continuación, vuelva a crear el volumen e intente establecer el reflejo dinámico. Si el reflejo se realiza correctamente, puede restaurar los datos en el volumen reflejado ahora. Si el disco que contiene bloques no válidos es un dispositivo integrado electronics (IDE), debe hacer copia de seguridad de los datos y, a continuación, reemplazar el disco con un nuevo disco IDE antes de establecer el reflejo.

Estado

Este comportamiento es por diseño.

Más información

SECTOR spare:

Tecnología del sector spare permite software comunicarse directamente con un disco para marcar un sector defectuoso (bloque) como "erróneos". La especificación SCSI define el comando (0 x 7) para la reasignación de los bloques dañados. Cuando Windows encuentra un bloque de disco defectuosos en un disco dinámico, Dmio.sys puede llamar a IOCTL_DISK_REASSIGN_BLOCKS para encontrar sectores defectuosos.

La operación de IOCTL_DISK_REASSIGN_BLOCKS asigna bloques defectuosos a nueva ubicación en el disco. Esta solicitud indica al dispositivo para reasignar la dirección de bloque defectuoso a un buen bloque de su conjunto de bloque de repuesto y, a continuación, la unidad SCSI o bien devuelve un estado de "error" o "éxito". Si tiene éxito, la unidad SCSI reasigna ese sector con un repuesto en marcha, de manera que cada vez que se realiza una operación de lectura o escritura en el número de sectores defectuosos original (o números), la unidad SCSI redirecciona las i/OS al sector recién reasignado (o sectores).

Aunque las unidades IDE no admiten este sector sparing funcionalidad y no aceptan comandos de software externo para indicar el disco que contiene un bloque dañado, algunos discos IDE es compatible con reasignación interna de sectores como inician deteriorando. Esta funcionalidad se controla mediante el firmware interno en el propio disco IDE. Si es lo suficientemente agresiva reasignación interno, el sistema operativo (y, por tanto, el usuario final) nunca se saben que han experimentado bloques defectuosos.

Aunque se admite el sector sparing en discos SCSI, esta característica se implementa inmediatamente en errores de lectura, pero sólo durante una operación de escritura después de un error de lectura.

Después de un error de lectura, DMIO registra el desplazamiento del sector incorrecto en una lista de sectores defectuosos. La siguiente escritura que llega a uno de los malos grabados sectores desencadenadores IOCTL_DISK_REASSIGN_BLOCKS. Hay un tiempo de espera de cinco minutos, asociado a un sector de cuánto tiempo que puede permanecer en la lista de sector defectuoso sin que se escriban, que desencadena la reasignación.

Este comportamiento es más eficaz de espejados saludables. Cuando se produce un error en una lectura desde un complejo, se graba el sector defectuoso. DMIO, a continuación, lee desde el complejo de otro y vuelve a escribir en el primer complejo. El sector defectuoso se vuelve a asignar durante el que la operación para mantener la integridad de los datos de escritura.

En el caso de Agregar espejo donde es el sector defectuoso en el disco de origen, el número de sectores defectuosos en el disco de origen se registra en la lista de sector defectuoso, pero nunca se escribe en. Por lo tanto, nunca se reasigna (a menos que el usuario busca una manera de forzar una escritura a ese sector defectuoso dentro de cinco minutos desde el error de lectura) y, por tanto, se anula la operación de réplica.

En el caso de Agregar espejo donde es el sector defectuoso en el disco de destino, el error de escritura no agrega el número de sectores defectuosos a la lista de sector defectuoso. Por lo tanto, no se reasigna y se anula la operación de réplica.

Por lo tanto, aunque el código que manipula con sectores defectuosos siempre está activo, la parte crítica (llamada IOCTL_DISK_REASSIGN_BLOCKS) produce sólo cuando una operación de lectura y, a continuación, una operación de escritura no simultánea se ejecutan en un espejo ya establecido. Este diseño actual impide que un espejo se establece si una lectura o error de escritura en el disco de origen o de destino.

Nota adicional:

Cuando DMIO correctamente realiza sector sparing (bloques dañados permite reasignar) durante una operación de escritura en un reflejo ya establecida, se registran los sucesos siguientes.
Event Type:Information
Event Source:dmio
Event Category:None
Event ID:23
Computer:Computer_name
Description: dmio: Reassigning bad block number 3328 on disk Harddisk1

Event Type:Information
Event Source:dmio
Event Category:None
Event ID:24
Computer:Computer_name
Description: dmio: Reassign bad block(s) on disk Harddisk1 succeeded

Por diseño, Autochk.exe y Chkdsk.exe no realizan sparing sector. Estas utilidades sólo registran los sectores defectuosos (bloques) en las tablas de clúster defectuoso administradas por el sistema de archivos (FAT, FAT32 o NTFS) en el volumen. Si Chkdsk encuentra los clústeres que contienen uno o más bloques incorrectos, los clústeres se marcan como "mala" para que el sistema de archivos no intenta utilizar esos clústeres.

Referencias

Para obtener ayuda con tareas de mantenimiento de sistema comunes en Windows Vista, visite la siguiente página Web de Microsoft:
Propiedades

Id. de artículo: 325615 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios