
Estou escrevendo um utilitário de linha de negócios que, entre outras tarefas, executará chkdsk.exe no modo somente leitura em discos rígidos de dados secundários NTFS. Para testar completamente meu utilitário, preciso induzir um estado em um desses discos que o chkdsk detectará como um erro... de preferência de uma forma que não destrua os dados existentes no disco. Qual é a maneira mais fácil de fazer isso?
Editar:
Idealmente, eu gostaria de criar um arquivo de texto fictício em uma dessas unidades e bagunçar esse arquivo de tal maneira que o chkdsk pense que precisa ser corrigido. Não sei como fazer para bagunçar um arquivo.
Responder1
Você pode simplesmente fornecer uma linha de comando inválida:
c:\>chkdsk FailPlease
The drive, the path, or the file name is not valid.
c:\>echo %ERRORLEVEL%
3
Responder2
Eu acho que você quer algo que possa montar com segurança o sistema de arquivos como uma unidade a partir de um estado corrompido (ou pseudo-corrompido). A primeira coisa que me vem à mente éTrueCrypt
- Crie um contêiner de arquivo criptografado TrueCrypt
- Monte-o, armazene alguns arquivos nele
- Bagunce esses arquivos de alguma forma. Ou apenas deixe-o sem formatação, isso pode ser suficiente para
chkdsk
retornar diferente de zero. - Salve sua imagem
Agora seu script pode fazer uma cópia da imagem, montar a cópia, deixar o chkdsk tentar consertar e então explodir sua imagem.