Eu corri smartctl -l xerror
em um disco Seagate ST31000528AS (1TB com setores de 512 bytes) e ele me deu (em parte):
Error 597 [16] occurred at disk power-on lifetime: 11903 hours (495 days + 23 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER -- ST COUNT LBA_48 LH LM LL DV DC
-- -- -- == -- == == == -- -- -- -- --
40 -- 51 00 00 00 74 59 00 70 bc 00 00 Error: UNC at LBA = 0x74590070bc = 499709407420
Commands leading to the command that caused the error were:
CR FEATR COUNT LBA_48 LH LM LL DV DC Powered_Up_Time Command/Feature_Name
-- == -- == -- == == == -- -- -- -- -- --------------- --------------------
60 00 00 00 08 00 74 59 00 70 b8 40 00 12d+16:57:44.392 READ FPDMA QUEUED
ea 00 00 00 00 00 00 00 00 00 00 a0 00 12d+16:57:40.893 FLUSH CACHE EXT
ea 00 00 00 00 00 00 00 00 00 00 a0 00 12d+16:57:40.801 FLUSH CACHE EXT
61 00 00 00 08 00 08 a8 00 43 18 40 00 12d+16:57:40.800 WRITE FPDMA QUEUED
61 00 00 00 08 00 08 af 00 40 68 40 00 12d+16:57:40.800 WRITE FPDMA QUEUED
Estou realmente confuso sobre o que isso significa - em particular, o LBA48 está dando. hdparm -I
confirma que o disco tem 1.953.525.168 setores; 499.709.407.420 é bem além disso. (Ele precisaria de um disco de 256 TB para ser válido, mesmo com setores de 512 bytes.)
A julgar pelos logs do kernel, o LBA48 provavelmente é, na verdade, 1.953.520.060 - o teste com dd
e hdparm --read-sector
confirma que o setor está realmente ruim. (Na verdade, esse também aparece em smartctl -l xselftest
).
Por que o log de erro estendido fornece um LBA48 que parece ser quase 256 (mas não exatamente!) vezes maior que o valor real? Olhando para os valores hexadecimais, parece que os bytes estão na ordem errada - isso pode ser apenas um bug de firmware da unidade?