Discos rígidos com setores defeituosos no Linux
EXT4
Os sistemas de arquivos EXT podem manter uma lista de setores considerados defeituosos, que passam a ser ignorados. A lista não é gerenciada automaticamente pelo kernel e depende do espaço de usuário:
O
Todos os discos rígidos não arcaicos realocam por conta, durante escrita, setores ruins à medida que aparecem. Daí a utilidade da opção
Ao usar
Na criação do sistema de arquivos pelo
XFS
O XFS não mantém uma lista de setores ruins. Se o disco está indo desta para melhor, a única coisa a tentar é rodar
Especificar
Isso vale para qualquer sistema de arquivos que, igual ao XFS, não tenha o recurso, de questionada utilidade segundo o próprio Ted Ts'o.
Recomendação
Primeira providência é trocar o cabo de dados. Não adiantando, não confie mais em disco que comece a apresentar setores defeituosos. Considere
Sendo absolutamente necessário manter o hardware defeituoso, se possível, apague-o inteiramente escrevendo zeros e depois particione e crie o sistema de arquivos de novo:
Dá também para apagar apenas a área dentro do limite de partições especificando o dispositivo de bloco de cada uma (
[1]
Os sistemas de arquivos EXT podem manter uma lista de setores considerados defeituosos, que passam a ser ignorados. A lista não é gerenciada automaticamente pelo kernel e depende do espaço de usuário:
e2fsck da suíte e2fsprogs.O
e2fsck (fsck.ext* são links apontando para o binário) oferece dois modos de funcionamento com as opções -c e -cc. O primeiro faz uma varredura somente leitura, enquanto o segundo é de escrita não destrutiva. Roda por baixo do capô[1] o badblocks, outro programa da suíte. No modo de escrita, lê os setores relativos ao bloco em teste, coloca-os na memória, escreve bits aleatórios e depois grava novamente os dados originais nos mesmos endereços LBA.Todos os discos rígidos não arcaicos realocam por conta, durante escrita, setores ruins à medida que aparecem. Daí a utilidade da opção
-cc.Ao usar
-c[c], -k define que setores ruins detectados na verificação atual serão adicionados à lista existente ao invés de substituí-la.# e2fsck -ccky /dev/sdxy
-y evita ter que ficar respondendo perguntas a cada ocorrência de setor problemático. Assume todas respostas como yes. Fique avisado que o e2fsck zera por completo o bloco, caso esteja sendo usado, ao qual pertencia o setor ruim se este não puder ser lido.Na criação do sistema de arquivos pelo
mke2fs (e seus links de conveniência mkfs.ext*), também é possível usar as opções -c e -cc, com a diferença de -cc ser mapeada à opção -w do badblocks, que realiza teste destrutivo, zerando os setores no final.XFS
O XFS não mantém uma lista de setores ruins. Se o disco está indo desta para melhor, a única coisa a tentar é rodar
badblocks -n (-n ativa o teste de escrita não destrutiva) com o volume desmontado e rezar para que o firmware realoque o que for possível. Como os endereços LBA são mantidos, é transparente para o sistema de arquivos.# badblocks -n /dev/sdxy
Especificar
-b é desnecessário, pois não estamos interessados na eventual lista resultante, que é inútil com o XFS. Só precisamos que o programa desempenhe sua tarefa fazendo, por conseguinte, o firmware trabalhar.Isso vale para qualquer sistema de arquivos que, igual ao XFS, não tenha o recurso, de questionada utilidade segundo o próprio Ted Ts'o.
Recomendação
Primeira providência é trocar o cabo de dados. Não adiantando, não confie mais em disco que comece a apresentar setores defeituosos. Considere
badblocks, e2fsck -c[c] e mke2fs -c[c] paliativos até você jogá-lo fora e colocar outro em boas condições no lugar. Acompanhe os atributos SMART com o aplicativo "Discos" do GNOME ou pelas ferramentas de linha de comando do pacote smartmontools (ver man pages).Sendo absolutamente necessário manter o hardware defeituoso, se possível, apague-o inteiramente escrevendo zeros e depois particione e crie o sistema de arquivos de novo:
# dd if=/dev/zero of=/dev/sdx bs=1M status=progress conv=fsync,notrunc
Dá também para apagar apenas a área dentro do limite de partições especificando o dispositivo de bloco de cada uma (
/dev/sdxy), assim o particionamento é preservado.[1]
# strace -f -e trace=process -e signal=\!SIGALRM e2fsck <opções> /dev/sdxy
Comentários
Postar um comentário