Назад | Перейти на главную страницу

Повреждение файла (неверные контрольные суммы) в больших файлах, скопированных в гостевую систему VMware

При создании лаборатории разработки у меня есть настольная система под управлением 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). С тех пор машина работает отлично.