DCFLDD e um editor Hex

1

Eu às vezes uso o dcfldd, porque ele tem mais recursos e é mais fácil de usar do que o dd regular. Ele fornece um status constante e o atualiza rapidamente, além de ter uma entrada de padrão muito mais rápida do que a leitura de / dev / zero ou qualquer outro dispositivo.

Como exemplo, digamos que eu quisesse limpar uma unidade com dcfldd eu faria algo assim

dcfldd pattern="00" of=/dev/hda bs=4096

Onde ele escreveria "00000000" no byte do drive por byte e então você poderia usar a função vf = para verificar o padrão.

Mas notei um pequeno problema e queria saber se algum de vocês pode ajudar. Quando eu corro isso

dcfldd pattern="FF" of=/dev/hda bs=4096; sync
or
dcfldd pattern="11111111" of=/dev/hda bs=4096; sync

Eu posso encher a unidade com 1s e isso é muito rápido. Eu posso encher uma unidade de 74gb para digamos 5GB no valor de 1, depois de ter sido zerado. Se eu usar um editor hexadecimal como xxd ou hd no linux, eu posso ver todos os 1s.

No entanto, se eu executar este comando,

dcfldd pattern="00" of=/dev/hda bs=4096; sync

Digamos que, para apenas 1gb de 0, ainda haja 4gb de 1s. Vendo que escrevi 5gb de 1s e apenas 1gb de 0 em 1s.

Embora, se eu olhar para um editor hexadecimal, a unidade é toda de 0, mesmo que o software afirme que ele escreveu apenas 1gb de 0s. Eu tentei executar o programa para o mais curto possível enviando um SIGINT quase certo após a execução.

Alguma ideia de por que isso ocorre e você pode replicá-lo?

    
por Recursion 11.12.2009 / 18:18

2 respostas

1

O que acontece se você especificar uma contagem de blocos em vez de interrompê-lo manualmente?

time dcfldd pattern="FF" of=/dev/hda bs=4096 count=102400; sync

faça

time dcfldd pattern="00" of=/dev/hda bs=4096 count=51200; sync

e compare os tempos resultantes. Então, olhe os dados no disco para ver se o limite onde eles mudam para zeros é onde deveria estar (em cerca de 200 Megabytes * para este exemplo).

* Isso é real MB (1024 * 1024), e não "talvez" bytes.

    
por 11.12.2009 / 20:20
1

Para obter resultados significativos, a menos que você queira sobrescrever toda a partição ou disco, é necessário fornecer um argumento de contagem. Nos exemplos fornecidos, você não especificou uma contagem. Estou perdendo para entender como você esperava obter 5gb de uns ou 1gb de zeros.

    
por 11.12.2009 / 21:00

Tags