Zerando o conteúdo de um disco rígido sem destruir o sistema de arquivos

Zerando o conteúdo de um disco rígido sem destruir o sistema de arquivos

Copiei muitas fotos em um disco rígido externo de um computador antigo que era usado por uma pessoa idosa e provavelmente estava infectado por malwares. Coloquei as fotos em outro disco rígido. Agora meu disco rígido externo está completamente vazio, mas estou paranóico e gostaria de ter certeza de que não há nenhum malware ou código malicioso na unidade.

Então, eu gostaria de preenchê-lo com zeros, mas sem destruir o sistema de arquivos ou a tabela de partições. De certa forma, gostaria de receber meu disco de volta como se o tivesse acabado de comprar.

É possível fazer isso e existe um comando do Linux para fazer isso?

Meu disco rígido está formatado em NTFS com uma tabela de partição msdos(mbr).

Responder1

Resposta fácil:

mount /dev/your/disk /some/free/mountpoint
dd if=/dev/zero of=/some/free/mountpoint/zero bs=512
sync # See edit below
rm /some/free/mountpoint/zero
umount /some/free/mountpoint

Isso fará exatamente o que você pediu: Substituir todo o espaço disponível para arquivos no sistema de arquivos, com zeros.

Resposta mais complexa:

  • Sem destruir o MBR você não pode ter certeza, você não tem um vírus MBR
  • um sistema de arquivos vazio não tem valor

Então eu recomendo que você apenas destrua o dispositivo (ou seja, zere o dispositivo, incluindo MBR e sistema de arquivos) e então apenas recrie a tabela de partições emkfs.ntfs -f -L LABEL -I

EDITAR

Como o @Nyos apontou nos comentários, se o driver NTFS não montar a sincronização (não conheço os padrões), é uma boa ideia inserir um extra syncantes do arquivo rm. A versão atual (a partir do Ubuntu 18.04 totalmente corrigido para 2020-05-02) não possui nenhum bloco atrasado alocado, portanto syncnão é estritamente necessário, pois todos os blocos alocados serão escritos em umount, mas nem sabemos o futuro nem eu leia o código-fonte completo.

Na mesma nota: se o driver NTFS obtiver suporte a arquivos esparsos, talvez seja necessário usá-lo /dev/urandomem vez de /dev/zeropara evitar uma gravação (quase) interminável.

Responder2

Embora isso não responda à sua pergunta... no entanto:

Primeiro, é uma péssima ideia zerar um disco. Isso é verdade para discos "tradicionais" e ainda mais para discos de estado sólido. Zerar um disco é trivial (basta criar um arquivo e preenchê-lo, Eugen Rieck dá a receita exata), mas leva muito tempo e desgasta o disco. Os ciclos de gravação não são infinitos, em qualquer tipo de disco rígido.
Além disso, observe que você nem mesmo tem garantia de que a substituição realmente funcione conforme o esperado. Para o seu propósito, a diferença não será perceptível, mas para outros propósitos (pense no apagamento seguro de dados confidenciais) a abordagem não é totalmente confiável. Isso ocorre porque você não tem absolutamente nenhuma maneira de saber o que acontece quando você sobrescreve algo, graças ao nivelamento de desgaste e à realocação. As unidades fazem muitas coisas sem que ninguém (incluindo o sistema operacional!) saiba ou mesmo tenha como saber, muito menos mudar. Se, por exemplo, um setor foi realocado porque o controlador não ficou satisfeito com o número de novas tentativas, ou com o CRC ou o que quer que seja, você pode fazer o que quiser daqui para frente, simplesmente não terá mais acesso a esse setor. Nunca mais. Ainda assim, os dados, ou o que resta deles (e você não pode saber), permanecem lá, e um ladrão em potencial pode lê-los.

Segundo, ao operar em modo de paranóia total, é realmente uma péssima idéia manter o sistema de arquivos (e o MBR) por perto, especialmente quando o disco está "vazio". Além do UUID do sistema de arquivos, você não perderá nada apenas criando um novo sistema de arquivos (que provavelmentepode serum pouco incômodo em algumas situações, mas também é fácil de resolver). Você, entretanto, ganha a certeza de que não resta nada em lugares onde você não espera (MBR, por exemplo).

Terceiro, é uma má idéia zerar e reutilizar um sistema de arquivos "vazio" que na realidade não está vazio. É ruim em termos de desempenho quando você pode simplesmente criar um novo FS (sem entradas de diário de alterações obsoletas, itens invisíveis, fluxos esquecidos, atributos, MFTs fragmentados...) do zero. Recriar tudo do zero não é apenas muito mais seguro, mas também muito mais rápido e provavelmente resultará em melhor desempenho geral no futuro.

dr.

A maioria dos dispositivos tem uma opção dedicada de apagamento seguro ou "redefinição de fábrica" ​​(que é a mesma), que é suportada pela ferramenta de gerenciamento que acompanha ou por alguma outra ferramenta por meio de um comando ATA padrão. A unidade usará o método mais eficiente e menos destrutivo (algumas unidades realmente sobrescrevem o disco completo por falta de suporte real ao recurso, mas a maioria apenas despeja a chave de criptografia ou de embaralhamento de bits, que funciona quase instantaneamente, independentemente do tamanho do disco).

hdparmque está disponível em praticamente todas as distros Linux prontas para uso, tem uma opção --security-erasepara esse propósito exato.

Isso lhe dará um disco"como se tivesse acabado de comprar"com exceção de ter sido usado por um tempo. Isso será feito da maneira mais rápida (dentro do que é tecnicamente possível) e com menos destruição de disco. Depois disso, particione-o e crie um sistema de arquivos, pronto.

informação relacionada