При создании лаборатории разработки у меня есть настольная система под управлением ESXi 4.1.0 (бесплатная лицензия) на SATA RAID 0 (уже куплена и настроена, когда я начал эту работу; я открыт для аппаратного ввода, поскольку это относится к моей Проблема.) В число его гостей пока входят две 64-разрядные виртуальные машины Win2008 Server R2 и 64-разрядная виртуальная машина Ubuntu 10.04. Устанавливаю на серверы Windows.
Мы копировали некоторые довольно большие файлы (более гигабайта) для установки, надеясь быстрее выполнить установку с (виртуального) жесткого диска, чем из сети для BD-ROM. Проблема в том, что они продолжают придумывать контрольные суммы, отличные от исходных. Размеры файлов одинаковы, но md5sum сообщает о разных числах (как и программа установки, которая отказывается продолжить работу, когда контрольные суммы не совпадают).
Я пробовал копировать прямо с BD-ROM (подключая диск ОС к физическому диску хост-системы). Я пробовал скопировать большие файлы на машину Windows моего коллеги с его привода Blu-Ray; когда я это сделаю, контрольные суммы совпадают. Но когда я копирую с его машины на гостевую виртуальную машину через общий сетевой ресурс, контрольные суммы больше не совпадают.
Думая, что это означает повреждение целевого диска, я удалил его в vSphere и добавил еще один только что созданный диск. Проблема сохраняется. Я не уверен, что попробовать дальше.
Так что это была комбинация плохой карты ОЗУ и ошибки ядра Linux, влияющей на SATA. Я бы поставил туда Ubuntu 10.04 и в конечном итоге оставил memtest86 + работать всю ночь (поскольку запуск его за 1,5 прохода до этого не устранил проблему).
После того, как я удалил плохую оперативную память, я начал видеть ошибки SATA в / var / syslog, примерно так:
Dec 8 14:56:17 george kernel: [ 36.442340] ata4.00: exception Emask 0x10 SAct 0x4 SErr 0x4010000 action 0xe frozen
Dec 8 14:56:17 george kernel: [ 36.442355] ata4.00: irq_stat 0x00400040, connection status changed
Dec 8 14:56:17 george kernel: [ 36.442366] ata4: SError: { PHYRdyChg DevExch }
Dec 8 14:56:17 george kernel: [ 36.442375] ata4.00: failed command: READ FPDMA QUEUED
Dec 8 14:56:17 george kernel: [ 36.442388] ata4.00: cmd 60/08:10:88:a9:87/00:00:1b:00:00/40 tag 2 ncq 4096 in
Dec 8 14:56:17 george kernel: [ 36.442389] res 40/00:64:30:aa:8b/00:00:12:00:00/40 Emask 0x10 (ATA bus error)
Dec 8 14:56:17 george kernel: [ 36.442408] ata4.00: status: { DRDY }
Dec 8 14:56:17 george kernel: [ 36.442418] ata4: hard resetting link
Dec 8 14:56:23 george kernel: [ 41.724689] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
Dec 8 14:56:24 george kernel: [ 42.445422] ata4.00: configured for UDMA/133
Dec 8 14:56:24 george kernel: [ 42.445432] ata4: EH complete
Я наконец обнаружил эту ошибку: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/285892?comments=all что побудило меня попробовать более раннее ядро Linux (то, что поставляется с Ubuntu 8.04). С тех пор машина работает отлично.