我的 SSD 或 SATA 控制器出现故障了吗?

我的 SSD 或 SATA 控制器出现故障了吗?

我偶尔会遇到磁盘读取错误。通常,我会认为 SSD 快要坏了,但这些问题是有原因的:

  • 2017 年春季:我购买了新的三星 SSD 850 Pro(所以当问题开始出现时它才刚使用两年)
  • 2018 年夏季:发生了一次雷击,雷电通过固定电话线进入我家,摧毁了我的路由器、USB/以太网适配器、后面的 Raspberry PI,穿过了我的交换机(毫发无损),穿过了我的主板(可能毫发无损),摧毁了我的 USB 打印机和屏幕上的 USB 集线器
  • 2018 年冬季 / 2019 年春季:当我早上打开电脑时,Linux 启动正常,但启动 Windows 失败,并打印“硬盘读取错误,按任意键重启“。在 Linux 启动 1-2 小时后启动 Windows 通常就可以了。

而这个问题在过去两年一直没有得到解决,既没有恶化,也没有改善。


我已经使用三星的“SSD Magician”软件​​进行了检查,但它声称我的 SSD 状况良好,没有坏扇区/移动扇区。

Windows 仅在正常运行 1-2 小时后才能部分可靠地启动,这对我来说看起来像是一种热效应。

Linux 似乎在清晨启动时遇到同样的问题,但恢复能力更强。dmesg例如,以下是我今天早上遇到的情况:

[    3.678283] ata1.00: exception Emask 0x10 SAct 0x6800001 SErr 0x280100 action 0x6 frozen
[    3.678285] ata1.00: irq_stat 0x08000000, interface fatal error
[    3.678287] ata1: SError: { UnrecovData 10B8B BadCRC }
[    3.678289] ata1.00: failed command: READ FPDMA QUEUED
[    3.678294] ata1.00: cmd 60/20:00:e0:5a:dd/00:00:33:00:00/40 tag 0 ncq dma 16384 in
                        res 40/00:00:e0:5a:dd/00:00:33:00:00/40 Emask 0x10 (ATA bus error)                                                       
...
[    3.678335] ata1: hard resetting link
[    3.993153] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
...
[    4.000672] sd 0:0:0:0: [sda] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[    4.000677] sd 0:0:0:0: [sda] tag#0 Sense Key : Illegal Request [current] 
[    4.000681] sd 0:0:0:0: [sda] tag#0 Add. Sense: Unaligned write command
[    4.000686] sd 0:0:0:0: [sda] tag#0 CDB: Read(10) 28 00 33 dd 5a e0 00 00 20 00
[    4.000691] blk_update_request: I/O error, dev sda, sector 870144736 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 0
...
[    4.000796] ata1: EH complete
[    5.062260] EXT4-fs (sda4): re-mounted. Opts: (null)
[    5.282271] ata1.00: exception Emask 0x10 SAct 0x4000 SErr 0x280100 action 0x6 frozen
[    5.282273] ata1.00: irq_stat 0x08000000, interface fatal error
[    5.282276] ata1: SError: { UnrecovData 10B8B BadCRC }
[    5.282279] ata1.00: failed command: READ FPDMA QUEUED
[    5.282286] ata1.00: cmd 60/68:70:20:65:89/00:00:27:00:00/40 tag 14 ncq dma 53248 in
                        res 40/00:70:20:65:89/00:00:27:00:00/40 Emask 0x10 (ATA bus error)                                                       
[    5.282287] ata1.00: status: { DRDY }
[    5.282292] ata1: hard resetting link
...
[    5.604751] sd 0:0:0:0: [sda] tag#14 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[    5.604755] sd 0:0:0:0: [sda] tag#14 Sense Key : Illegal Request [current] 
[    5.604759] sd 0:0:0:0: [sda] tag#14 Add. Sense: Unaligned write command
[    5.604765] sd 0:0:0:0: [sda] tag#14 CDB: Read(10) 28 00 27 89 65 20 00 00 68 00
[    5.604769] blk_update_request: I/O error, dev sda, sector 663315744 op 0x0:(READ) flags 0x80700 phys_seg 13 prio class 0
[    5.604788] ata1: EH complete
[   28.274273] ata1.00: exception Emask 0x10 SAct 0x60c1 SErr 0x280100 action 0x6 frozen
[   28.274276] ata1.00: irq_stat 0x08000000, interface fatal error
[   28.274278] ata1: SError: { UnrecovData 10B8B BadCRC }
[   28.274281] ata1.00: failed command: READ FPDMA QUEUED
[   28.274286] ata1.00: cmd 60/50:00:b0:4f:19/00:00:30:00:00/40 tag 0 ncq dma 40960 in
                        res 40/00:68:28:d6:b8/00:00:26:00:00/40 Emask 0x10 (ATA bus error)                                                       

完整日志在此:PasteBin 上的完整 dmesg SATA 错误日志

是否有任何线索表明我是否需要更换主板或 SSD 来解决这些问题?

答案1

您收到的错误确实意味着 SSD 的某些部分有问题。但仅从此日志无法判断是主板还是 SSD(或两者兼而有之)。您可以通过交叉测试各个组件(例如,尝试将主板与不同的 SSD 连接,尝试将 SSD 与不同的主板连接等)来进行排除。第一步(也是最简单的一步)是更换电缆并将 SSD 插入不同的端口。

当您启动操作系统时,SSD 可能仍然能够工作(取决于实际使用的数据、驱动器如何重新映射无法访问的扇区、温度等),但由于它不能可靠地工作,所以它与根本不能工作是一样的。

测试 SSD 时,不要fsck只依赖它 -badblocks以读/写/验证模式使用。这将保证每个扇区都经过测试,包括可用空间。为了考虑热效应,让它运行 3 次或更多次,如果仍然出现类似错误,请换一个新的。

相关内容