Existe uma maneira de leitura ou gravação bruta de setor/bloco para inserir ou copiar um erro "CRC"⁽¹⁾ no Linux?

Existe uma maneira de leitura ou gravação bruta de setor/bloco para inserir ou copiar um erro "CRC"⁽¹⁾ no Linux?

Um amigo meu me disse que o kernel raid do Linux (mdadm raid5/6) não era confiável, porque ele tentou uma vez sobrescrever setores em um de seus volumes físicos e isso causou corrupção de arquivos. Respondi que era normal porque o sistema raid5 não se destinava a detectar, mas apenas a corrigir erros, quando um erro já havia sido detectado devido a um erro de leitura de disco.

Porém, fiquei pensando como poderia comprovar o conceito ou fazer um teste de confiabilidade escrevendo erros no próprio disco. Existe uma maneira, com o Linux, de escrever (ou ler) um setor em algum tipo de modo bruto, que permitiria ler ou escrever manualmente o código "CRC"⁽¹⁾, em vez de deixar o controlador gerenciar tudo sozinho ?

Na mesma lógica, haveria uma maneira de copiar um disco para outro, a fim de tentar alguns processos de recuperação de dados em uma cópia em vez do original, o que acontece com softwares de recuperação ruins, para tornar os discos irrecuperáveis.

Eu vi que alguém fez perguntas semelhantesaquiou, mas é bastante antigo, não foi muito claro e não obteve resposta satisfatória. Obviamente, o objetivo não é destruir fisicamente o disco, mas apenas forçar a gravação de algum conteúdo inválido nele, que pode ser reescrito posteriormente com um método semelhante. E por falar nisso, se o disco realmente CONTÉM um erro, não há chance de o setor ser realocado pelas operações normais, pois ele precisaria ser lido corretamente antes.

(1): coloquei aspas porque não tenho certeza se os códigos de detecção de erros em discos recentes ainda são baseados em CRC.

Responder1

Resposta muito curta, mas se for aceitável:

Basicamente, todas as mídias de armazenamento são acessadas enviando comandos SCSI através de vários outros protocolos (SATA, USB, ...), e não há como controlar CRC ou campos semelhantes com esses comandos. Na verdade, as unidades modernas substituirão silenciosamente setores com CRC defeituoso que não podem ser corrigidos mapeando-os para outros setores com CRC bom na próxima gravação.

Pode haver extensões específicas do fornecedor que permitem controlar tudo isso mais diretamente, mas os fornecedores não lhe dirão.

informação relacionada