Por que meu disco ignora e apaga comandos em alguns setores?

3

Eu fiz uma limpeza segura ATA em um SSD (com SystemRescueCD e hdparm ). Algumas partes do disco são redefinidas para zero, mas algumas partes não são. Em particular, o MBR e o setor de inicialização de uma partição do Windows Vista são zerados, mas o setor de inicialização de uma partição do Windows 7 é completamente intocado. O apagamento seguro aprimorado fornece os mesmos resultados.

A partição do Windows 7 era a segunda partição lógica dentro da partição estendida (ou seja, / dev / sda6) antes de as tabelas de partição serem apagadas. Eu tentei zerar o setor de boot com o dd:

dd if=/dev/zero of=/dev/sda bs=512 skip=184252416 count=1
dd if=/dev/sda bs=512 skip=184252416 count=1 | hexdump -C

O comando retornou com sucesso, mas o setor ainda está inalterado, como se a solicitação de gravação fosse completamente ignorada.

Antes do SSD ser apagado, estava completamente funcional. Depois que foi apagado, ele passou por um autoteste offline estendido SMART, então acredito que ainda esteja funcional.

Pesquisei a opção do BIOS, mas não encontrei nenhuma opção relacionada à proteção contra gravação. O módulo TPM está desativado. O disco não foi criptografado.

Alguma ideia do motivo pelo qual um disco pode ignorar o apagamento e escrever comandos?

  • Sistema: Dell Latitude E4200
  • Versão do BIOS: A19
  • Modelo SSD: Samsung SSD Thin uSATA 128 GB M (acredito que seja uma placa mini PCIe)
  • Versão do firmware do SSD: VAM05D1Q (não consegui encontrar nenhuma atualização)
  • Modo SATA: tentei tanto o AHCI quanto o ATA
por netvope 13.08.2011 / 22:39

1 resposta

1

Existem duas opções para dd para ignorar blocos. A partir do manpage:

seek=N skip N obs-sized blocks at start of output

skip=N skip N ibs-sized blocks at start of input

Portanto, o primeiro comando lê o bloco 184252416 de /dev/zero (preenchido com zeros) e o grava no bloco 0 em /dev/sda . A segunda lê a partir do bloco (intacto) 184252416 em /dev/sda .

O primeiro comando deve ser:

dd if=/dev/zero of=/dev/sda bs=512 seek=184252416 count=1

que lê um bloco de /dev/zero , procura bloquear 184252416 em /dev/sda e, em seguida, escreve.

    
por 14.07.2016 / 00:56