badblocks só recebe um inteiro de 32 bits como valores iniciais / finais

4

Eu tenho uma unidade de 4 TB com um tamanho de bloco de 4096 bytes. Quero verificar um conjunto muito específico de blocos, em torno do bloco de 700.000.000 ou mais para setores defeituosos.

No entanto, badblocks parece suportar apenas int32 como as contagens de paradas e inícios, o que significa que é impossível especificar esse intervalo de blocos.

Existe outra maneira de digitalizar essa unidade em busca de badblocks? Eu não quero esperar as 7 horas que vai levar para testar a unidade inteira. É uma única unidade a partir de uma matriz mdadm , por isso não contém um sistema de arquivos utilizável.

    
por Mark Henderson 26.08.2014 / 04:11

2 respostas

8

Diga a badblocks para usar o tamanho de bloco maior e ele funcionará acima de 2 TB. Eu usei isso em uma unidade WD 6TB:

badblocks -b 4096 -v /dev/sda
    
por 12.11.2015 / 09:00
6

Patch para limitar os badblocks a 2 ^ 32

Parece haver um patch feito para badblocks para adicionar essa limitação em particular. Veja aqui, intitulado: Re: [PATCH 04/25] libext2fs: rejeitar números de badblocks de 64 bits .

From: "Darrick J. Wong" <darrick.wong <at> oracle.com>
Date: Wed, 23 Oct 2013 19:43:32 -0400
Subject: [PATCH] libext2fs: reject 64bit badblocks numbers

Don't accept block numbers larger than 2^32 for the badblocks list,
and don't run badblocks on them either.

Signed-off-by: Darrick J. Wong <darrick.wong <at> oracle.com>
Signed-off-by: Theodore Ts'o <tytso <at> mit.edu>

O suporte não será adicionado aos badblocks?

Parece que badblocks não terá esse recurso no futuro próximo.

trecho - Re: [PATCH 18/31] libext2fs: Badblocks deve lidar com 48 bits números de blocos corretamente

Yeah, I think badblocks is vestigal at this point, and for huge disk arrays, almost certainly block replacement will be handed at the LVM, storage array, or HDD level. So it might be better simply to have mke2fs throw an error if there is an attempt to hand it a 64-bit block number.

                      - Ted

Alguma outra maneira de fazer isso?

Eu procurei em vão encontrar um fork de badblocks ou uma alternativa, mas não encontrei realmente nada. Suas únicas opções são fazer uso de uma ferramenta comercial como SpinRite ou a ferramenta de código aberto HDAT2 . Você também pode usar uma das muitas ferramentas de fitness de unidade (DFTs) fornecidas pelos fabricantes de HDD. Talvez um desses permita que você passe pela barreira 2 ^ 32.

O que fazer?

Das opções na mesa, eu tive um bom sucesso com o HDAT2 e o SpinRite, então eu provavelmente as usaria nessa ordem para tentar varrer essa região de blocos que está no alcance de 700M.

    
por 26.08.2014 / 05:46

Tags