Acontece que este foi um erro numbskull, parece que minha cópia do badblocks
pode ter acabado de ter um bug.
Eu corri yum update
e depois disso, badblocks
não mais segfaults.
Estou tentando verificar uma partição montada para ver se a unidade tem erros:
[root@virtuality ~]# /sbin/badblocks -v /dev/sdb1
Segmentation fault
Uh oh . O que isto significa? Por que é badblocks
segfaulting? Posso consertar isso?
(o sistema é a versão 4.6 do CentOS, a unidade é uma unidade SATA)
EDITAR: Usando strace
:
[root@virtuality ~]# strace /sbin/badblocks -v /dev/sdb1
...[snip]...
open("/dev/sdb1", O_RDONLY) = 3
ioctl(3, BLKGETSIZE, 0x7fbffff878) = 0
close(3) = 0
open("/dev/sdb1", O_RDONLY) = 3
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
As últimas linhas desse strace
contam um conto bastante chato: badblocks
abre o dispositivo de drive, obtém seu tamanho, fecha, reabre e depois sai para fazer algum trabalho, que falha de alguma forma strace
não aparece. Você teria que usar gdb
ou similar para ir mais fundo.
Seu sintoma pode desaparecer se você desmontar a partição, então badblocks
tem uma coisa estável para trabalhar. Obviamente, isso não deve ser necessário apenas para fazer o teste somente leitura que você está tentando, mas não seria a primeira vez que alguma operação de uso incomum de nível baixo não funcionava como deveria.
Bônus: se você desmontar a partição, poderá usar badblocks -n
, que é muito mais eficaz para encontrar e corrigir problemas na superfície do disco.