Como fazer uma passagem única com badblocks no modo destrutivo?

2

Estou usando badblocks para simultaneamente (a) verificar se há erros no disco e (b) fazer um apagamento destrutivo de quaisquer dados no disco; usando o seguinte comando:

badblocks -wsp 0 /dev/sdb1

Eu 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 do manual, vejo que a própria opção -w inclui quatro passagens:

-w Use write-mode test. With this option, badblocks scans for bad blocks by writing some patterns (0xaa, 0x55, 0xff, 0x00) on every block of the device, reading every block and comparing the contents. This option may not be combined with the -n option, as they are mutually exclusive.

Isso é excessivo para minhas necessidades. Existe alguma maneira de conseguir um único passe destrutivo?

    
por Jon Bentley 05.05.2015 / 08:58

1 resposta

3

Ao ler a manpage ainda mais, resolvi o problema. -w de fato faz uma única passagem, como está implícito na descrição da opção -p :

Default is 0, meaning badblocks will exit after the first pass.

Um passe consiste em quatro padrões de teste:

-w Use write-mode test. With this option, badblocks scans for bad blocks by writing some patterns (0xaa, 0x55, 0xff, 0x00) on every block of the device, reading every block and comparing the contents.

O padrão pode ser substituído usando a opção -t :

-t test_pattern Specify a test pattern to be read (and written) to disk blocks. The test_pattern may either be a numeric value between 0 and ULONG_MAX-1 inclusive, or the word "random", which specifies that the block should be filled with a random bit pattern. For read/write (-w) and non-destructive (-n) modes, one or more test patterns may be specified by specifying the -t option for each test pattern desired. For read-only mode only a single pattern may be specified and it may not be "random". Read-only testing with a pattern assumes that the specified pattern has previously been written to the disk - if not, large numbers of blocks will fail verification. If multiple patterns are specified then all blocks will be tested with one pattern before proceeding to the next pattern.

Por exemplo:

badblocks -wst 0 /dev/sdb1

    
por 05.05.2015 / 09:43