estou usandoblocos defeituososfazer um apagamento destrutivo de quaisquer dados do disco; usando o seguinte comando:
badblocks -wsp 0 /dev/sdb1
Passei a opção -p 0
na esperança de que isso resultasse em apenas uma única passagem, mas estou recebendo várias passagens:
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: done
Reading and comparing: 19.01% done, 7:43:47 elapsed. (0/0/0 errors)
Ao ler a página de manual, posso ver que a -w
opção em si inclui quatro passagens:
-w Use o teste do modo de gravação. Com esta opção, badblocks procura blocos defeituosos escrevendo alguns padrões (0xaa, 0x55, 0xff, 0x00) em cada bloco do dispositivo, lendo cada bloco e comparando o conteúdo. Esta opção não pode ser combinada com a opção -n, pois são mutuamente exclusivas.
Isso é excessivo para minhas necessidades. Existe alguma maneira de conseguir uma única passagem destrutiva?
Responder1
Ao ler mais a página de manual, resolvi o problema. -w
de fato faz uma única passagem, conforme implícito na descrição da -p
opção:
O padrão é 0, o que significa que os badblocks serão encerrados após a primeira passagem.
Uma aprovação consiste em quatro padrões de teste:
-w Use o teste do modo de gravação. Com esta opção, badblocks procura blocos defeituosos escrevendo alguns padrões (0xaa, 0x55, 0xff, 0x00) em cada bloco do dispositivo, lendo cada bloco e comparando o conteúdo.
O padrão pode ser substituído usando a -t
opção:
-t test_pattern Especifique um padrão de teste a ser lido (e gravado) em blocos de disco. O test_pattern pode ser um valor numérico entre 0 e ULONG_MAX-1 inclusive, ou a palavra "random", que especifica que o bloco deve ser preenchido com um padrão de bits aleatório. Para os modos de leitura/gravação (-w) e não destrutivo (-n), um ou mais padrões de teste podem ser especificados especificando a opção -t para cada padrão de teste desejado. Para o modo somente leitura, apenas um único padrão pode ser especificado e não pode ser "aleatório". O teste somente leitura com um padrão pressupõe que o padrão especificado foi gravado anteriormente no disco - caso contrário, um grande número de blocos falhará na verificação. Se vários padrões forem especificados, todos os blocos serão testados com um padrão antes de prosseguir para o próximo padrão.
Exemplo de comando e saída:
# badblocks -wsvt 0 /dev/sdz
Checking for bad blocks in read-write mode
From block 0 to 488386583
Testing with pattern 0x00: done
Reading and comparing: done
Pass completed, 0 bad blocks found. (0/0/0 errors)
Responder2
Se o objetivo fosse destruir os dados em vez de procurar erros, você poderia simplesmente usar
dd if=/dev/zero of=/dev/sdX status=progress
onde X é a letra do seu dispositivo de destino.
Mas se você estiver realmente preocupado com os dados do seu disco, poderá executar o dd várias vezes, usar outras ferramentas como limpar ou destruir ou apenas deixar os badblocks fazerem seu trabalho. Tudo depende do tempo que você está disposto a investir na exclusão dos dados.