Excluindo setores defeituosos da lista ao formatar

0

Estou preparando um disco rígido antigo para uso com o meu Pi. Mas tem mais de 36 setores defeituosos (limiar mínimo). Então eu corri badblocks para investigar quais setores são afetados e salvou-os em um arquivo.

O arquivo agora contém basicamente uma lista de todos os setores afetados, separados por quebras de linha.

Como posso usar essas informações agora com mkfs.ext4 para que não aloque blocos de dados nesses endereços?

    
por Max Hopfgartner 28.12.2016 / 22:55

2 respostas

0

Então eu cometi um erro: Eu procurei no disco rígido por setores defeituosos usando o comando badblocks em vez de usar mkfs.ext4 com a opção -c em primeiro lugar.

O único problema é que não quero repetir a pesquisa porque demorou 2 dias.

Eu corri o comando apontando para o arquivo descritor sda então acho que as informações que tenho agora são setores (endereços LBA).

Assim, posso calcular e criar duas partições porque os setores estão praticamente no mesmo local.

  • Mas seria melhor criar uma única partição sem divisão.

    - Alguém tão esperto e sabe em que formato o comando quer a informação, por exemplo, se eu criar uma partição com tamanho de bloco de 4K. Se alguém me ajudar com isso, seria incrível!

Algumas perguntas:

  • De que maneira o partition-start-address e o tamanho do bloco de partição são relevantes para converter as informações?
por 03.01.2017 / 15:00
0

Eu percebi isso agora. Por padrão, um tamanho de bloco de 1k (1024) é usado ao apontar para um dispositivo como / dev / sda em vez de uma partição.

E quando você executa o mke2fs apontando para um dispositivo em vez de uma partição (com endereço inicial e endereço final), nenhum MBR é gravado / o MBR é sobrescrito.

$ sudo dd se = / dev / sda bs = 512 count = 1 | hexdump -
1 + 0 registros no
1 + 0 registra - se 512 bytes (512 B) copiados, 0,00240179 s, 213 kB / s
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................

*
00000200

Então você só precisa dividir os endereços com 4 e tenha em mente que um bloco de 4k tem 4 blocos de 1k para calcular os endereços. Em seguida, você pode criar um arquivo e executar o mke2fs com o arquivo recém-criado para isolar os blocos defeituosos. Assim:
mke2fs -f ext4 -l badblocks_file / dev / sdX

    
por 07.01.2017 / 13:57