未报告 Linux AHCI/ATA 读取错误

未报告 Linux AHCI/ATA 读取错误

最近的操作系统升级后(从 4 月 4 日起升级到当前的 Tumbleweed、Linux 内核 4.16.0),当从有故障的硬盘或损坏/划伤的 DVD 中读取数据时,软件中不再出现读取错误,而是出现缓冲区错误受影响的部门都是零。在 dmesg 中我看到报告了中等错误,à la

[10767.201905] ata6.00: exception Emask 0x0 SAct 0x2000000 SErr 0x0 action 0x0
[10767.201912] ata6.00: irq_stat 0x40000008
[10767.201918] ata6.00: failed command: READ FPDMA QUEUED
[10767.201926] ata6.00: cmd 60/08:c8:b8:9b:1e/00:00:2b:01:00/40 tag 25 ncq dma 4096 in
                        res 41/40:08:b8:9b:1e/00:00:2b:01:00/00 Emask 0x409 (media error) <F>
[10767.201930] ata6.00: status: { DRDY ERR }
[10767.201933] ata6.00: error: { UNC }
[10767.204339] ata6.00: configured for UDMA/133
[10767.204354] sd 5:0:0:0: [sde] tag#25 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[10767.204357] sd 5:0:0:0: [sde] tag#25 Sense Key : Medium Error [current]   
[10767.204359] sd 5:0:0:0: [sde] tag#25 Add. Sense: Unrecovered read error - auto reallocate failed
[10767.204362] sd 5:0:0:0: [sde] tag#25 CDB: Read(16) 88 00 00 00 00 01 2b 1e 9b b8 00 00 00 08 00 00
[10767.204394] ata6: EH complete

除了日志中的消息(以及较长的访问时间)之外,没有任何迹象表明出现了问题。是否存在 AHCI/ATA 选项来启用此类行为?这是毫无疑问且非常不受欢迎的,因为我不想检查日志中的错误,而是让复制在发生错误的地方失败(否则,像 ddrescue 这样的工具也没有意义,因为它们也不再检测读取错误)

有启动选项吗?编译选项?

更新:最近的系统升级(SuSE tumbleweed)到新内核解决了这个问题。

相关内容