Como está apagando o MTD com “dd if = / dev / zero” diferente de “flash_eraseall”?

3

flash_eraseall <mtd device> é especificamente fornecido comando para apagar todo o MTD (dispositivo). Qual é a diferença entre ele e dd if=/dev/zero of=<mtd device> ?

    
por Konstantin Shemyak 04.04.2016 / 16:29

1 resposta

3

Ambos os SDDs e MTDs têm uma vida útil e são classificados para um determinado número de gravações. Os primeiros MTDs foram classificados para 1000 ciclos de apagamento / gravação. Muitos MTDs não são realmente dispositivos de bloco, mas o driver do Linux o emula como tal e apresenta uma camada de bloco. Ou o tamanho de bloco padrão (512) pode ser muito maior no hardware subjacente. Se você escrever blocos consecutivos de 512 bytes, mas a tecnologia subjacente for 4K chunks, você fará com que o bloco da camada subjacente seja escrito 8 vezes. Em alguns MTDs, você está reescrevendo toda a célula flash a cada gravação.

[the mtdblock driver] works by caching a whole flash erase block in RAM, modifying it as requested, then erasing the whole block and writing back the modified. This means that mtdblock does not try to do any optimizations, and that you will lose lots of data in case of power cuts. And last, but not least, mtdblock does not do any wear-leveling or bit-flips handling. 1

Quase TODOS os dispositivos MTD suportam uma operação de eliminação total. Além dos benefícios de ser confiável e completo, o apagamento é mais ou menos garantido, é mais fácil e melhor para o dispositivo.

Existem determinados dispositivos que você não deve zerar com dd if=/dev/zero :

  • SDD (discos de estado sólido)
  • MTD (dispositivos de tecnologia de memória)
  • COW e outros discos virtuais com aprovisionamento dinâmico

MTD pelas razões acima. Para sistemas de arquivos / discos COW (copy-on-write), você acabará forçando o driver de bloco subjacente a alocar blocos que anteriormente não existiam, e você não sobrescreverá dados antigos / existentes. Os SDDs também empregam certos algoritmos de nivelamento de desgaste semelhantes ao COW, nos quais os blocos não escritos anteriormente serão gravados, em vez de sobrescrever os existentes (portanto, para a segurança dos dados, zerar o dispositivo neste ponto é imprudente). Muitos dispositivos STA e SAS oferecem criptografia em nível de bloco usando uma chave mestra, que o BIOS lembra e se comunica na inicialização. Você pode efetivamente apagar o dispositivo de bloco simplesmente apagando ou redefinindo a chave mestra.

    
por 04.04.2016 / 18:10