我最近买了一个 120Gb 的金士顿 SSDNowV300,并在其上安装了 Ubuntu 13.10。启动时,它会在闪烁的光标处停留很长时间。将启动标志更改为文本会显示一堆错误:
Jan 15 17:39:01 speshmesh kernel: [ 142.179159] ata3.00: status: { DRDY ERR }
Jan 15 17:39:01 speshmesh kernel: [ 142.179209] ata3.00: error: { ICRC ABRT }
Jan 15 17:39:01 speshmesh kernel: [ 142.179259] ata3.00: failed command: READ FPDMA QUEUED
Jan 15 17:39:01 speshmesh kernel: [ 142.179312] ata3.00: cmd 60/28:c8:00:48:c6/00:00:0b:00:00/40 tag 25 ncq 20480 in
Jan 15 17:39:01 speshmesh kernel: [ 142.179312] res 41/84:d0:08:4a:c6/84:00:0b:00:00/40 Emask 0x10 (ATA bus error)
Jan 15 17:39:01 speshmesh kernel: [ 142.179392] ata3.00: status: { DRDY ERR }
Jan 15 17:39:01 speshmesh kernel: [ 142.179442] ata3.00: error: { ICRC ABRT }
Jan 15 17:39:01 speshmesh kernel: [ 142.179492] ata3.00: failed command: READ FPDMA QUEUED
Jan 15 17:39:01 speshmesh kernel: [ 142.179545] ata3.00: cmd 60/08:d0:08:4a:c6/00:00:0b:00:00/40 tag 26 ncq 4096 in
Jan 15 17:39:01 speshmesh kernel: [ 142.179545] res 41/84:d0:08:4a:c6/84:00:0b:00:00/40 Emask 0x10 (ATA bus error)
这个过程不断重复,直到最终到达最后一个,然后完成剩下的启动:
Jan 15 17:39:01 speshmesh kernel: [ 142.180557] ata3.00: status: { DRDY ERR }
Jan 15 17:39:01 speshmesh kernel: [ 142.180607] ata3.00: error: { ICRC ABRT }
Jan 15 17:39:01 speshmesh kernel: [ 142.180659] ata3: hard resetting link
Jan 15 17:39:01 speshmesh kernel: [ 142.180708] ata3: nv: skipping hardreset on occupied port
Jan 15 17:39:01 speshmesh kernel: [ 142.648026] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
它有时也会长时间悬挂[ 100.247175] ata3: EH complete
。
问题可能出在哪里?仅仅是 SSD 故障吗?
答案1
原因在日志消息“ICRC”上方报告,您应该先检查电缆。这是您遇到的问题最有可能的罪魁祸首。
金士顿的答复听起来很奇怪,那里没有任何东西可以不同步,CRC 错误是由两个 SATA 接口(磁盘和主板)之间的物理传输引起的,如果它们不同步,整个磁盘就会丢失并且无法读取。
经过几次故障后,Linux 会将速度降低到 3Gbps 或禁用 NCQ,这两种情况都会严重影响性能,但也会减少看到 CRC 错误的变化,因为较低的速度和较低的 IO 速率会增加承受低错误率的机会。