CHKDSK (autochk.exe e chkdsk.exe, que compartilham dll's) é executado em alguns estágios (o abaixo é para volumes NTFS e um pouco simplificado):
Etapa 1 - "Verificando arquivos". Neste estágio, ele examina a Tabela de arquivos mestre (MFT). A MFT armazena os atributos de arquivo sobre cada arquivo e diretório, como o nome do arquivo, a data de criação , carimbos de hora, etc. em segmentos de registo de ficheiros (FRS, File Record Segments). O CHKDSK examina a consistência interna do FRS e também cria dois bitmaps (um mostrando o FRS e outro mostrando os clusters reais) que compara aos bitmaps armazenados no MFT.
Etapa 2 - "Verificando Índices". Neste estágio, ele olha para os índices (diretórios) no volume NTFS. Ele verifica cada um dos diretórios quanto à consistência interna e garante que todos os arquivos e diretórios contidos no FRS estejam contidos em um diretório. Se um arquivo não estiver em um diretório, ele será considerado "órfão" e o CHKDSK tentará colocá-lo na pasta indicada pelo FRS para esse arquivo ou colocá-lo em um diretório "encontrado". Ele também verifica se todos os arquivos / diretórios no diretório possuem uma entrada FRS correspondente. Se o diretório fizer referência a um arquivo ou diretório que não esteja lá, ele removerá essa entrada.
Etapa 3 - "Verificando descritores de segurança". Os descritores de segurança (contendo informações de segurança, como ACL e informações de auditoria) são armazenados na estrutura de arquivos , e nesta fase o CHKDSK analisa cada um deles para garantir que eles são a estrutura correta e que eles são internamente consistentes.
Etapa 4 - "Verificando Dados do Arquivo". Esse estágio ocorre apenas se o comando / R foi usado (ou a caixa foi verificada na GUI). Nesse estágio, o chkdsk tenta ler todos os setores no disco. Se / R foi especificado, ele já fez esse estágio uma vez para os metadados e os setores de dados de arquivo em estágios anteriores. Se encontrar um setor defeituoso, ele adicionará o cluster no qual o setor estava na lista de clusters defeituosos e tentará mover os dados para um bom setor (se não puder, preencherá o novo cluster com 0xFF).
Etapa 5 - "Verificando o espaço livre". Isso também ocorre somente se / R for usado. Nesse estágio, o CHKDSK tenta ler de setores livres e adiciona clusters defeituosos à lista de clusters defeituosos.
Espero que o acima responda à sua pergunta. Mais informações estão disponíveis em este KB , este whitepaper , e este guia .
Também deve ser observado que o NTFS possui recursos internos de recuperação de metadados na forma do log de transações NTFS. Este é um processo separado do CHKDSK. Se o sistema desligar inesperadamente ou travar, quando o Windows iniciar novamente, ele executará uma operação de recuperação NTFS usando as informações no arquivo de log NTFS. Esse processo é detalhado no whitepaper mencionado acima na seção "Recuperabilidade de Log de Transações do NTFS".