Антон Рябов bio photo

Антон Рябов

Не люблю бриться и у меня умный взгляд.

Email Twitter Telegram Github PGP RSS

Обновление прошивки Supermicro X9DRW-iF

Вместо вступления

Начал я обновлять Proxmox на одном из серверов с версии 3 на 4. По ряду причин, нужно делать именно полную переустановку а не апгрейд текущей. Установка прошла штатно и сервер ушел в перезагрузку, после чего, как хороший мальчик, показал grub, но завис на инициализации initram.

Еще раз перезагрузив сервер, я убедился что ошибка воспроизодится и начал искать решение. Попробовал загрузиться вручную через консоль grub, но это не помогло. В момент зависания, индикаторы активности всех дисков просто горели, поэтому я начал грешить на контроллер LSI - попробовал отключение всех дисков кроме того на котором установлена система, это не помогло.




Собственно тут, мы подходим к сабжу. Я подумал о том, чтобы прошить контроллер, но перед этим решил обновить прошивку BIOS. Выяснил модель материнской платы - Supermicro X9DRW-iF, скачал последнюю прошивку с официального сайта …

кстати, предыдущие версии прошивок можно найти только на FTP этой замечательной фирмы и названия каталогов там нифига не явные

… и начал вникать в Readme, который прилагался в архиве. Первым делом, там вписан warning, предупреждающий о том, что если вы собираетесь обновить BIOS с версии 1 до версии 2, то вначале вам нужно обновить IPMI до версии 2 (и это первый привет компании Supermicro). На сервере была установлена версия 1.01b, а последня актуальная, на данный момент, что-то вроде 2.72.

тут я могу ошибаться, на самом деле запутался с версиями, а проверять сейчас уже лень

“Ага” - думаю я. Нужно обновить IPMI, а это дело плевое. Вернулся на сайт производителя, скачал нужную прошивку, почитал инструкцию, залез в IPMI и прошил его. Никаких проблем не возникло. Следующим шагом, должна была стать прошивка BIOS, для этого я подготовил образ Freedos, на котором располагались все необходимые файлы. Но при попытке выполнить требуемые операции по прошивке, я понял что BIOS просто не доходит до загрузки с каких либо образов или девайсов.

Много времени было потрачено на гугления, проверку образов, перебор флешек, но все безрезультатно. Загрузка BIOS фризилась на одном из этапов (B4) и я это связывал именно с обновлением прошивки IPMI, а не с конкретной ошибкой о которой возвещал post код. Ну что ж, в документации к плате, я довольно быстро нашел способ отключения IPMI и загрузки только BIOS, он заключался в изменения положения перемычки (или джампера, кто как зовет) JPB1 с 1-2 на 2-3 (и это второй привет компании Supermicro).

Ох и долго же я провозился прежде чем додумался в чем дело (ну как додумался, скорее сработал какой-то инстинкт инженера). Но я не буду больше раглагольствовать, а просто опишу правильную последовательность действий для обновления BIOS на Supermicro X9DRW-iF, скажу только что перемычка JPB1 в положении 2-3 не отключает IPMI, а отключает и IPMI и BIOS, происходит первичная инциализация всех устройств, вентиляторы и диски начинают крутится на полную катушку, но дальше вся программная часть бездействует.

Непосредственно обновление с 1 до 2 версии

  1. Обновляем прошивку IPMI через веб самого IPMI (операция тривиальная)
  2. Вскрываем наш сервер, находим перемычку JPB1 и просто снимаем её, для отключения IPMI
  3. Создаем флешку с Freedos, но перед тем, как залить файл прошивки (X9DRW5.115), программу прошивки (AFUDOS.SOC) и скрипт (AMI.BAT) для инициализации процесса, правим этот самый скрипт: убираем в нем строки связанные с переименованием файла AFUDOS.SOC -> AFUDOS.EXE и делаем это вручную, а только потом копируем файлы на носитель
  4. Запускаемся с флешки, причем при загрузке Freedos нужно выбрать вариант “без драйверов”
  5. Шьем BIOS командой AMI.BAT X9DRW5.115
  6. Возвращаем перемычку JPB1 в изначальное положение 1-2 и стартуем сервер.

Заключение

До прошивки контроллера дисков я так и не дошел. Так как после прошивки BIOS Proxmox 4 отлично стартанул. А в сумме на все эти ковыряния ушло 3 рабочих дня и виню я, конечно же, Supermicro, за плохо написанную документацию и readme.

#Proxmox #Supermicro