
Что может пойти не так при прошивке чипа RAID контроллера? Да что угодно! В результате сбоя прошивки вместо работающего RAID контроллера можно получить кирпич. В некоторых случаях кирпич можно оживить.
Так произошло при попытке прошить контроллер Supermicro SMC2008. Прошивка завершилась сбоем, после перезагрузки видим ошибку:
RAID Adapter
Firmware Failed Validation!!!
Adapter needs to be reflashed.
Press Any Key to continue...
Попытки накатить прошивку с помощью megarec
, megacli
, storcli
, sas2flash
оказались безуспешными. Использовались разные прошивки (Supermicro, LSI, Dell).
Копирование SDR и SPD с другой такой же карты не помогло.
После первой попытки прошивки через megarec
с последней версией прошивки LSI появилась ошибка:
F/W is in fault state - MFI Register State 0xF0010002
Adapter at Baseport is not responding
No MegaRAID Adapter Installed
Восстановление
Оказывается, для чипов 2208 существует Recovery ROM от компании LSI.
Скачиваем lsi2208fixer.zip. Выложил в Сборке для системного администратора. Там 2208_16.rom внутри ISO и есть прошивка для восстановления. Она подходит для всех RAID контроллеров на базе чипа 2208:
- MegaRAID SAS: 9265-8i, 9266-4i, 9266-8i, 9267-8i, 9270-8i, 9271-4i, 9271-8i, 9285-8e, 9286-8e и др.
- Supermicro SMC2208
- IBM ServeRAID: M5016, M5110, M5115, M5120
- Dell: H710, H710P, R720
В ISO также есть дополнительные утилиты (LSIUTIL, MEGAOEM, MEGASCU и др.).
⚠️ Важно: SAS2FLSH не работает с чипами 2208 — используйте SAS2FLASH.EFI в EFI-оболочке.
Загружаемся с этого ISO образа через Virtual Disk в IPMI или запишите на CD/USB. Сервер загрузится в FreeDOS.
Перейдите в папку LSI_DOS:
cd LSI_DOS
Определите индекс контроллера (будет 0, если в сервере только один контроллер):
megarec -adplist
Очистите флеш-память контроллера:
megarec -cleanflash 0
Перезагрузите сервер (Ctrl+Alt+Del) и снова загрузитесь с ISO.
Снова перейдите в LSI_DOS:
cd LSI_DOS
Прошейте контроллер аварийной прошивкой LSI (режим mode0):
megarec -m0flash 0 2208_16.rom
Через ~5 минут появится сообщение об успехе:

Перезагрузите сервер — проблема должна быть решена. Надеюсь, это руководство сэкономит вам кучу времени! 🚀
P.S.
На примере NEC N8103
Иногда нужно сначала очистить флеш-память и накатить прошивку для восстановления:
megarec -cleanflash 0 2208_16.rom
Перезагрузиться. Сбросить контроллер на значения по умолчанию:
megacli -adpfacdefset -a0
Перезагрузиться. Прошить на обычную прошивку:
megacli -AdpFwFlash -f mr2208fw.rom -a0
Перезагрузиться.
По мотивам: