Id. de artículo: 187941 - Última revisión: jueves, 14 de abril de 2005 - Versión: 4.0 Explicación de CHKDSK y de los nuevos modificadores /C e /IEste artículo se publicó anteriormente con el número E187941 Para ver una versión de Microsoft Windows XP de este
artículo, vea
314835
(http://support.microsoft.com/kb/314835/ES/
)
. En esta páginaResumen En el Service Pack 4 (SP4) de Windows NT versión 4.0 y
Windows 2000 se han agregado dos modificadores nuevos a Chkdsk.exe que permiten
a los usuarios administrar mejor el tiempo de inactividad que se sufre al
ejecutar CHKDSK o AUTOCHK. Los modificadores que se agregaron en el Service Pack 4 de Windows NT 4.0 y Windows 2000 son /C e /I, y sólo son válidos cuando la unidad de destino tiene el formato NTFS. Cada modificador indica a la rutina de CHKDSK que omita ciertas acciones que de otra forma exigirían validar la integridad de las estructuras de datos NTFS. Advertencia Microsoft no recomienda interrumpir el proceso de CHKDSK cuando se usa con el modificador /f ni garantiza la integridad del disco si se interrumpe. Más información Chkdsk.exe es la interfaz de línea de comandos del programa
que comprueba la integridad lógica de un sistema de archivos en Windows. Cuando
CHKDSK encuentra incoherencias lógicas, emprende acciones para reparar los
datos del sistema de archivos siempre que no esté en modo de sólo
lectura. El código que realmente lleva a cabo la comprobación cuando CHKDSK se ejecuta en línea reside en las DLL de utilidades como Untfs.dll y Ufat.dll. Las rutinas de comprobación invocadas por Chkdsk.exe son las mismas que se invocan cuando se comprueba un volumen a través de la interfaz gráfica de usuario que proporciona el Explorador de Windows o el Administrador de discos. Por otro lado, cuando la ejecución de CHKDSK se programa para llevarse a cabo al reiniciar el sistema, el módulo binario que contiene el código de comprobación es Autochk.exe, que es una aplicación original de Windows que se ejecuta lo suficientemente pronto en la secuencia de inicio del sistema como para que no disfrute de la ventaja de la memoria virtual de otros servicios Win32. Autochk.exe genera el mismo tipo de salida de texto que las DLL de utilidades que invoca Chkdsk.exe. Pero, además de mostrar esta salida en la pantalla durante el proceso de inicio, Autochk.exe también registra un suceso en el registro de sucesos de aplicación para el sistema que contendrá tanto texto como quepa en el búfer de datos del registro de sucesos. Puesto que Autochk.exe y el código de comprobación de las DLL de utilidades que usa Chkdsk.exe se basan en el mismo código fuente, se hará referencia a ambas genéricamente como "CHKDSK" en el resto de este artículo. Igualmente, como este artículo tiene que ver con los cambios en el comportamiento de CHKDSK con respecto a los volúmenes NTFS, se debe entender que, al decir "CHKDSK hace esto y esto", se pretende decir: "CHKDSK hace esto y esto cuando se ejecuta en un volumen NTFS". Puesto que el uso de los modificadores /C e /I puede provocar que el resto del volumen se dañe incluso después de finalizar CHKDSK, su uso no se recomienda excepto en situaciones en las que el tiempo de inactividad del sistema deba ser mínimo. Estos modificadores están pensados para ser utilizados por usuarios con volúmenes excepcionalmente grandes y que requieran flexibilidad a la hora de administrar el tiempo de inactividad que se sufre cuando CHKDSK se debe ejecutar en tales volúmenes. Para saber cuándo podría ser apropiado usar estos modificadores, es importante tener un conocimiento básico de algunas de las estructuras de datos internas de NTFS, el tipo de daños que pueden causar, qué acciones emprende CHKDSK cuando comprueba un volumen y qué posibles consecuencias puede tener burlar los pasos de comprobación usuales de CHKDSK. La actividad de CHKDSK se divide en tres "pasos" principales durante los que examina todos los "metadatos" en el volumen y un cuarto paso opcional. Los metadatos son "datos acerca de los datos". Se trata de la sobrecarga del sistema de archivos, por decirlo así, que se emplea en realizar el seguimiento de toda la información referente a los archivos del volumen. Los metadatos indican qué unidades de asignación conforman los datos para un archivo determinado, cuáles están libres, cuáles contienen sectores erróneos, etcétera. El "contenido" de un archivo, por otro lado, se conoce como "datos de usuario". NTFS protege sus metadatos gracias al uso de un registro de transacciones. Los datos de usuario no se protegen de este modo. Durante su primer paso, CHKDSK muestra un mensaje en la pantalla que indica que está comprobando los archivos y muestra un contador de porcentaje de 0 a 100 para indicar el tanto por ciento del proceso completado. Durante esta fase, CHKDSK examina cada segmento del registro de archivo (FRS, File Record Segment) en la tabla de archivos maestra (MFT, Master File Table) del volumen. Cada archivo y directorio de un volumen NTFS se identifica de forma exclusiva mediante un FRS concreto en la MFT y el porcentaje que CHKDSK muestra durante esta fase se refiere al tanto por ciento de la MFT que se ha comprobado. Durante este paso, CHKDSK examina cada FRS para comprobar su coherencia interna y genera dos mapas de bits, uno que representa qué FRS se usan y el otro los clústeres del volumen que se están utilizando. Al final de esta fase, CHKDSK sabe qué espacio se está usando y qué espacio está disponible tanto en la MFT como en el volumen como un todo. NTFS realiza el seguimiento de esta información en mapas de bits propios que se almacenan en el disco, lo que permite a CHKDSK comparar sus resultados con los mapas de bits de NTFS almacenados. Si hay discrepancias, se señalan en la salida de CHKDSK. Por ejemplo, si se encuentra que se ha dañado un FRS que se estaba utilizando, los clústeres del disco asociados anteriormente con ese FRS terminarán siendo marcados como disponibles en el mapa de bits de CHKDSK, pero se marcarán para indicar que "están utilizándose" de acuerdo con el mapa de bits de NTFS. Durante su segundo paso, CHKDSK muestra un mensaje en la pantalla que indica que está comprobando los índices y muestra un contador de porcentaje de 0 a 100 para indicar el proceso que lleva completado esta segunda vez. Durante esta fase, CHKDSK examina cada uno de los índices del volumen. Los índices son, esencialmente, directorios NTFS y el porcentaje de proceso completado que muestra CHKDSK durante esta fase se refiere al número total de directorios en el volumen que tienen que comprobarse. Durante este paso, CHKDSK examina la coherencia interna de cada directorio del volumen y que al menos un directorio haga referencia a cada archivo y directorio representados por un FRS en la MFT. También confirma que todos los archivos o subdirectorios a los que se hace referencia en cada directorio existan realmente como un FRS válido en la MFT y comprueba si hay referencias circulares en los directorios. Finalmente, confirma que las diversas marcas de tiempo y la información del tamaño de archivo asociada con los archivos estén actualizadas en las listas de directorios correspondientes a esos archivos. Al final de esta fase, CHKDSK ha comprobado que no existen archivos "huérfanos" y que todas las listas de directorios contienen archivos válidos. Un archivo huérfano es aquel para el que existe un FRS válido pero que no aparece en ningún directorio. Cuando se encuentra un archivo huérfano, suele poder restaurarse a su directorio adecuado, siempre que ese directorio siga existiendo. Si el directorio que debería contener el archivo ya no existe, CHKDSK creará un directorio en el directorio raíz y colocará allí el archivo. Si las listas de directorios hacen referencia a FRS que ya no se usan o que se usan pero no se corresponden con el archivo que aparece en el directorio, la entrada del directorio simplemente se quita. Durante su tercer paso, CHKDSK muestra un mensaje en la pantalla que indica que está comprobando los descriptores de seguridad y muestra un contador de porcentaje de 0 a 100 para indicar el proceso completado una tercera vez. Durante esta fase, CHKDSK examina cada uno de los descriptores de seguridad asociados con cada archivo y directorio del volumen. Los descriptores de seguridad contienen información relativa al propietario del archivo o directorio y el permiso NTFS e información de auditoría para el archivo o directorio. El porcentaje en este caso se corresponde con el número de archivos y directorios del volumen. CHKDSK comprueba que cada estructura de descriptores de seguridad esté bien formada y sea coherente internamente. No comprueba que los usuarios o grupos enumerados existan realmente o que los permisos se hayan concedido de forma apropiada. El cuarto paso de CHKDSK sólo se ejecuta si se usa el modificador /R. /R se utiliza para buscar sectores erróneos en el espacio libre del volumen. Cuando se usa /R, CHKDSK intenta leer cada sector del volumen para confirmar que el sector puede usarse. Los sectores asociados con los metadatos se leen durante el curso natural de la ejecución de CHKDSK incluso si no se utiliza /R. Los sectores asociados con los datos de usuario se leen durante fases anteriores de CHKDSK siempre que se especifique /R. Cuando se encuentra un sector ilegible, NTFS agrega el clúster que lo contiene a su lista de clústeres erróneos y, si se estaba usando, asigna un clúster nuevo para que haga el trabajo del anterior. Si se utiliza un controlador de disco con tolerancia a errores, los datos se recuperan y se escriben en el clúster recién asignado. De lo contrario, el nuevo clúster se rellena con un patrón de 0xFF bytes. Cuando NTFS encuentra sectores ilegibles durante el curso de una operación normal, también volverá a asignarlos de la misma forma. Por lo tanto, el modificador /R no suele ser esencial, pero se puede utilizar como un mecanismo útil para examinar todo el volumen si se sospecha que el disco tiene sectores erróneos. Los párrafos anteriores sólo ofrecen información a grandes rasgos de lo que CHKDSK va a hacer en realidad para comprobar la integridad de un volumen NTFS. Hay muchas comprobaciones concretas que se efectúan durante cada paso y varias comprobaciones rápidas entre los pasos que no se han mencionado. En cambio, se trata simplemente de una introducción de las facetas más importantes de la actividad de CHKDSK que sirve como fundamento para la siguiente explicación relativa al tiempo necesario para ejecutar CHKDSK y a los efectos de los nuevos modificadores proporcionados en el Service Pack 4. Durante la primera y tercera fases de CHKDSK, el indicador porcentual de proceso completado avanza con relativa fluidez. Puede haber algunas desigualdades en la velocidad a la que estas fases avanzan. Los FRS que no se usan requieren menos tiempo para procesarse que las que sí se utilizan. Los descriptores de seguridad mayores tardan más en procesarse que los pequeños, etcétera. Pero, en conjunto, el porcentaje mostrado es una representación bastante precisa del tiempo real requerido para cada fase. Lo mismo no se cumple necesariamente en la segunda fase de CHKDSK. La cantidad de tiempo requerido para procesar un directorio está estrechamente vinculada al número de archivos o subdirectorios incluidos en él. Pero el porcentaje que se muestra durante esta fase corresponde al número de directorios que se van a examinar, independientemente del hecho de que algunos podrían tardar mucho más en procesarse que otros. Por ejemplo, en un volumen con muchos directorios pequeños y uno muy grande, el porcentaje que indica lo que se lleva hecho podría progresar rápidamente del 0 al 10 por ciento y, después, parecer que se queda parado durante un largo período antes de progresar rápidamente del 10 al 100 por ciento. Por lo tanto, a menos que sepa con certeza que los directorios de un volumen son bastante uniformes con respecto al número de archivos que contienen, el "porcentaje completado" durante esta fase no se puede considerar una representación confiable del tiempo restante real de esta fase. Para empeorar las cosas cuando se está en mitad de una ejecución inesperada de CHKDSK, la segunda fase de su proceso suele ser la que más tarda. Por ahora, debe quedar claro que hay numerosos factores implicados en el estado de un volumen que desempeñan un papel importante en el tiempo en que CHKDSK tardará en ejecutarse. Una fórmula para predecir el tiempo requerido para ejecutar CHKDSK en un volumen dado debería tener en cuenta factores como el número de archivos y directorios, el grado de fragmentación del volumen en general y la tabla de archivos maestra en particular, si los archivos tienen nombres largos y nombres con formato 8.3, y qué cantidad de datos tiene que repararse realmente. Y eso por no hablar de cuestiones de hardware como la cantidad de memoria del sistema, la velocidad de la CPU, la velocidad del disco o discos, etcétera. En lugar de intentar predecir cuánto tardará CHKDSK en ejecutarse en un volumen determinado de una plataforma de hardware concreta, basta con decir que puede tardar desde varios segundos hasta varios días, según la situación específica. A menos que se use /R , en una plataforma de hardware determinada la cuestión principal es el número de archivos y directorios en lugar del tamaño absoluto del volumen. Es decir, en un volumen de 50 GB con uno o dos archivos de base de datos grandes, CHKDSK sólo tardará segundos en ejecutarse siempre que no se especifique el modificador /R. Si se especifica /R, CHKDSK tendrá que leer y comprobar cada sector del volumen, y eso claramente agrega tiempo en los volúmenes grandes. Por otro lado, CHKDSK puede tardar horas en ejecutarse en un volumen relativamente pequeño si tiene cientos de miles o millones de archivos pequeños, tanto si se especifica /R como si no. La mejor forma de predecir cuánto tardará CHKDSK en ejecutarse en un volumen dado es hacer una ejecución de prueba en modo de solo lectura durante un período de poco uso del sistema. Sin embargo, tenga cuidado al emplear esta técnica, por tres motivos:
Introducción a los modificadores /C e /IEl modificador /C indica a CHKDSK que omita las comprobaciones que detectan ciclos en la estructura de directorios. Los ciclos son una forma muy poco común de daño que hace que un subdirectorio se tenga a sí mismo como antecesor. El uso del modificador /C puede acelerar la ejecución de CHKDSK en aproximadamente entre un 1 y un 2 por ciento. El uso de /C también puede dejar "bucles" de directorios en un volumen NTFS. Estos bucles pueden ser inaccesibles desde el resto del árbol de directorios y podrían provocar que varios archivos quedaran huérfanos, en el sentido de que no podrían ser vistos por las aplicaciones Win32, incluidas las de copia de seguridad.El modificador /I indica a CHKDSK que omita las comprobaciones que comparan las entradas de directorio de los FRS correspondientes. Por lo tanto, aunque las entradas de directorio se siguen comprobando para garantizar que son coherentes consigo mismas, no son necesariamente coherentes con los datos almacenados en sus correspondientes FRS ni siquiera después de que CHKDSK se haya ejecutado con este modificador. El uso del modificador /I suele provocar la reducción del tiempo que CHKDSK tarda en ejecutarse entre un 50 y un 70 por ciento. Para calcular con qué mayor velocidad se consigue ejecutar CHKDSK exactamente con este modificador se tendrán que tener en cuenta factores como la proporción de archivos y directorios, además de la velocidad relativa de la E/S de disco con respecto a la velocidad de la CPU y, por lo tanto, es difícil de predecir de antemano. El uso del modificador /I puede provocar que queden entradas de directorio que se refieran a FRS incorrectos o que haya FRS a los que no se haga referencia en ninguna entrada de directorio. El último caso es otra forma de horfandad. El archivo representado por el FRS puede estar intacto en todos los aspectos excepto en el hecho de que sea invisible para todas las aplicaciones Win32, incluidas las de copia de seguridad. En el caso anterior, los archivos parece que existen; incluso las aplicaciones encuentran errores al intentar tener acceso a ellos. Cuando se detectan daños en un disco de un volumen, se pueden elegir tres opciones básicas:
La información de este artículo se refiere a:
| Seleccione idioma
|
Volver al principio
