SATA 驱动器或芯片组抛出 DRDY ERR 和 ICRC ABRT

SATA 驱动器或芯片组抛出 DRDY ERR 和 ICRC ABRT

我有一张 SD-VIA-1A2S PCI 卡,带有 2 个 SATA 端口(还有一个未使用的 ATA-133)。两块新的 Western Digital Caviar Green 硬盘(WD10EARS 1TB)在 kern.log 中重复出现错误(为简洁起见,删除了日期/时间/主机信息):

[ 7.376475] ata2.00: 异常 Emask 0x12 SAct 0x0 SErr 0x1000500 操作 0x6
[7.376480]ata2.00:BMDMA 状态 0x5
[7.376483]ata2:SError:{UnrecovData Proto TrStaTrns}
[7.376489]ata2.00:cmd c8/00:40:20:00:00/00:00:00:00:00/e0 标签 0 dma 32768 进入
[ 7.376490] res 51/84:2f:20:00:00/00:00:00:00:00/e0 Emask 0x12(ATA 总线错误)
[7.376493]ata2.00:状态:{DRDY ERR}
[ 7.376495] ata2.00:错误:{ICRC ABRT}
[7.376504]ata2:硬重置链接

我正在使用 Ubuntu 9.04 - 2.6.28-18-generic,尽管我尝试过 Ubuntu 9.10、Fedora 12 和 OpenSUSE 11.2 的 live cd - 全部运行各种 2.6.31 内核 - 但都收到了同样的错误。

根据在其他两台机器上测试这些驱动器和此卡以及将驱动器直接连接到主板或附加卡的组合,我相对确信问题出在 VIA 芯片组上。另一台也配有板载 VIA SATA 芯片组(如附加卡)的计算机在驱动器直接安装在主板上时也会产生相同的错误。我已经能够验证驱动器完好无损,并且我尝试了所有我能想到的方法,例如更换电缆、电源没有过载等。

该错误在启动时发生一次或两次,在驱动器上使用 fdisk 一次或两次后发生,并且在尝试同步在两个驱动器上创建的新 mdadm raid 1 阵列时不断发生。

关于下一步该去哪里,有什么想法吗 - 驱动程序/内核方面?

如果有人能推荐一款具有 2 个内部 SATA 端口且在 Debian/Ubuntu 中运行良好的 PCI 附加卡,我非常愿意购买新的 PCI 附加卡。

谢谢!

答案1

我可以推荐 Promise 和 SiliconImage 芯片组作为 VIA 的替代品。我使用的是带有硅基-3124我目前使用过这款芯片组,并没有遇到任何问题。

我对这两家制造商的早期 IDE 芯片组都有过良好的体验,但还没有机会测试 Promise SATA 芯片。我强烈建议不要使用 VIA 芯片;我处理过很多不稳定的 VIA 芯片,我更愿意尽可能避免使用它们。

答案2

我知道这有点过时了,但我在正在构建的新机器上遇到了这个问题,问题似乎是这样的。这是我最初的错误:

[  595.535123] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6
[  595.535127] ata2.00: BMDMA stat 0x64
[  595.535132] ata2.00: failed command: WRITE DMA EXT
[  595.535140] ata2.00: cmd 35/00:00:08:3c:11/00:02:00:00:00/e0 tag 0 dma 262144 out
[  595.535145] ata2.00: status: { DRDY ERR }
[  595.535147] ata2.00: error: { ICRC ABRT }
[  595.535182] ata2: soft resetting link

我打开了 BIOS 选项,将两个“主”(0/1) SATA 端口设置为 IDE 模式或类似模式,但它不知何故破坏了与总线上其他非 SATA 或辅助设备的总线通信。我知道这里的描述有点模糊,但在某些主板上很难分辨哪个是主/辅助,哪个总线与哪个相关联。

我只能说,将选项调回,使我的所有 6 个板载 SATA 都变成 ACHI,我的错误立即消失了。在批量运行 bonnie 或 iozone 时,这些错误可以立即重现,而更改后,这两个基准测试程序可以立即运行,不会出现错误,并且在半小时内完成,而不是 2-3 小时。

答案3

DRDY ERR 消息实际上似乎被报告为许多系统中的内核错误,这似乎与 Ubuntu 有很大关系,在较小程度上与 Debian 有关。我正在调查此事,因为这是最近发生在我身上的事情。我建议以下内容(对于其中一些,您将需要一张可启动 CD,并且由于所有这些的磁盘问题,您可能需要它。Ubuntu 桌面安装 CD 运行良好,无需您安装任何东西):

  1. 在 /etc/modprobe.d/options.conf 中输入“options libata noacpi=1”
  2. 运行“e2fsck -f -c -v /dev/sda1”,但将 /dev/sda1 替换为导致错误的分区。据我所知,e2fsck 需要一个带有文件系统的分区,因此这可能无法在整个磁盘上运行。如果它确实可以在整个磁盘上运行,您仍然需要在分区上运行它。您需要一张可启动的 CD。
  3. 编辑文件 /boot/grub/menu.lst,在以“# kopt”开头的行上,在行尾添加“noapic”。开头的 # 很重要,它不作为注释。不要删除 #。
  4. 这不会影响磁盘,但如果您将“splash”更改为“nosplash”并从以“# defoptions”开头的行中的 /boot/grub/menu.lst 中删除单词“quiet”,那么在启动 ubuntu 时它将不会有图像,而是会给您更详细的输出。
  5. 在 Ubuntu 上,在更改 /boot/grub/menu.lst 中的任何内容后,必须运行 /usr/sbin/update-grub

答案4

我确实在 BIOS 中更改为 AHCI,但它不起作用。但在我检查分区表后,它说我的 GPT 表已损坏。

dan@zeus:~$ sudo gdisk -l /dev/sda
[sudo] password for dan: 
GPT fdisk (gdisk) version 0.8.4

Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.

Warning! One or more CRCs don't match. You should repair the disk!

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: damaged

****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
Disk /dev/sda: 625140335 sectors, 298.1 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 4FF348B9-D041-49A6-AD98-18C15F055F2D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 625142414
Partitions will be aligned on 8-sector boundaries
Total free space is 0 sectors (0 bytes)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34       625142414   298.1 GiB   0700  

然后我w又输入了 GPT 表。最后我重启了系统。

现在它运行得非常好!

相关内容