O teste de superfície SMART é quase certamente um passo de leitura único e certamente não destrutivo. Como foi apontado, também é interno à unidade; com a possível exceção de dados de controle menores, nenhum dado está sendo passado para ou do host durante o teste.
Por outro lado, badblocks -w
faz quatro passagens pela unidade, cada uma com uma gravação e uma leitura. Isso por si só representa uma diferença de 8 × no tempo gasto para o teste, além de latência rotacional. Como o software está sendo executado no host, todos esses dados precisam ser arrastados pela interface do disco para a RAM e manipulados pelo software (badblocks, no nosso caso).
Se tivermos uma latência rotacional de pior caso de 1 × (o disco precisa fazer uma revolução completa depois de gravar os dados para poder ler de volta, o que é basicamente o que você verá se gostar de badblocks primeiro preenche todo o disco e depois lê tudo de volta, ao invés de fazer I / O uma trilha física de cada vez, o que com o LBA é quase impossível), acabamos com o pior caso (1 + 1) × 8 × = 16 × como tempo necessário para concluir a operação. 16 × 2.5h = 40h, o que certamente está de acordo com seus números e ainda assume que estamos lidando apenas com armazenamento de dados na unidade e que isso está acontecendo tão rápido quanto a unidade pode sustentar I / O sequencial.