?

Log in

Marvell 88SE91xx + 3Tb HDD = corrupted data - Artem V. Ryabov
September 1st, 2013
04:06 pm

[Link]

Previous Entry Share Next Entry
Marvell 88SE91xx + 3Tb HDD = corrupted data
Увидел в ленте предупреждение о том, что может быть повреждение данных на дисках в определенных условиях. Поскольку у меня железо было похожее решил проверить. И совпало.
Если у кого из linux'оидов есть сомнение о том, нет ли у него такой проблемы, то их очень быстро можно решить запустив следующую команду:

for sdn in /dev/sd? ; do echo -n $sdn - ; sn=$[`blockdev --getsize $sdn`-1]
[ $sn -lt $[1<<32] ] && echo small && continue ; sn=$[$sn%(1<<32)]
st=`dd if=$sdn bs=1b count=1 skip=$sn 2>/dev/null| head -c 8`
[ 'EFI PART' = "$st" ] && echo bad && continue; echo ok ; done


требуется root и bash

команда отрабатывает буквально за доли секунды.

вот так она отрабатывает у меня:

root@edward:~# for sdn in /dev/sd? ; do echo -n $sdn - ; sn=$[`blockdev --getsize $sdn`-1]
> [ $sn -lt $[1<<32] ] && echo small && continue ; sn=$[$sn%(1<<32)]
> st=`dd if=$sdn bs=1b count=1 skip=$sn 2>/dev/null| head -c 8`
> [ 'EFI PART' = "$st" ] && echo bad && continue; echo ok ; done
/dev/sda -ok
/dev/sdb -ok
/dev/sdc -ok
/dev/sdd -ok
/dev/sde -ok
/dev/sdf -ok
/dev/sdg -bad
/dev/sdh -bad
/dev/sdi -bad
/dev/sdj -bad
root@edward:~#


как видно: 4 последних диска с проблемами.

Проблема явно не зависит от операционной системы, ибо у того кто описал баг первым - Windows 2003.
Вероятно, данные портятся в момент перезагрузки, когда отрабатывает EFI bios, он обновляет secondary GPT, но дурной контроллер пишет его не в конец диска как должен, а посреди, в тот адрес который получается если взять остаток от деления адреса на 2^32. Поскольку последний сектор диска должен иметь характерный заголовок из 8 байт "EFI PART" то команда просто проверяет наличие этих 8 байт в ненужном месте диска.
update: Данные портятся именно при перезагрузке. Проверено.

Но данных портится больше - 33 сектора (по размеру secondary GPT)
Точно есть проблема с контроллером Marvell 88SE9128. Куплен под именем ST-Lab A-450
Надпись на чипе:
88SE9128-NAA2
PAX4430.4
1230 B1P
TW

Вот так он про него пишет lspci:
01:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9123 PCIe SATA 6.0 Gb/s controller (rev 11)
01:00.1 IDE interface: Marvell Technology Group Ltd. 88SE91A4 SATA 6Gb/s Controller (rev 11)

точно нет проблемы с контроллером встроенным в чипсет Intel H77
точно нет проблемы с контроллером ASMedia ASM1062 про который lspci пишет:
05:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 01)

Очевидно проблеме будут подвержены все диски объёмом более 2.2Tb (2TiB), т.е. 3Tb и 4Tb из выпускающихся сейчас.




PS: добавлю несколько слов, чтобы было удобнее искать эту запись в поисковых системах:
Marvell 91xx + GPT = broken files, Марвел портит данные на диске, ST-Lab A-450 - bad controller

Tags: , , ,

(Leave a comment)

My Website Powered by LiveJournal.com