null

Особенности загрузки ОС Solaris на UEFI-системе.

Казалось бы что может быть проще, как установка ОС Solaris 10 на обычный и ничем не выделяющийся одно-юнитовый x86 сервер, пусть даже это и IBM ? Но и здесь можно найти повод для пляски с бубном.

При подготовке "платформы" для последующей установки кластера в первую очередь были проинсталлированы 2 будущие ноды, сконфигурирован массив, созданы и выделелены  дисковые тома. После подключения дискового массива и установки кластерного ПО, создания ZFS-пулов на томах и  после нескольких перезагрузок оба сервера перестали находить загрузочный диск (в данном случае это был том выданный встроенным RAID контроллером семейства MegaRaid) на долгое время зависали и, потеряв в итоге дискового загрузчика, пытались грузится с PXE-сервера.

При физическом отключении массива (изменения в мапинге) сервера успешно загружались. Под подозрением, есстественно, оказался порядок загрузки с устройств в BIOS, но каких-либо "готовых" устройств, похожих на встроенные или "внешние" диски  в меню "Change Boot Order" кроме как Hard Disk 0, PXE, DVD-ROM  и т.п. не было найдено.

"Гугление" привело на сообщение какого-то ИТ-ного форума, в котором утверждалось, что LUN массива под номером 0 зарезирвирован для загрузочного диска из SAN и что нужно использовать LUN'ы отличные от нуля. Однако изменение идентификаторов LUNов ни к чему не привело.  

Оказывается современные IBM x series сервера используют  Unified Extensible Firmware Interface (UEFI)  в качестве BIOS, где порядок построения устройств разительно отличается от классических BIOS'ов. Для корректной работы с UEFI поддержка необходима на уровне операционной системы, но, похоже, только ОС семейства Windows имеют такую возможность. Соответственно, для решения проблемы  с загрузкой  Solaris необходимо "заставить" BIOS использовать классическую схему построения устройств.

И такая возможность есть - после дополнительных изысканий в меню "Add Boot Option" была найдена опция "Legacy Only", которая была добавлена в список загрузочных устройств на позицию в порядке загрузки выше чем  Hard Disk 0. После сохранения настроек и перезагрузки сервера успешно загрузились.

Однако, производителем рекомендуется не только добавлять "Legacy Only" опцию и делать ее более  приоритетной в порядке выбора устройств,  но и отключать возможность загрузки с внешних дисковых массивов в принципе. Данная процедура слегка неочевидная поэтому привожу ее подробное описание  :

    1. Включить или перезагрузить систему и нажать клавишу F1, когда будет предложено войти в настройки BIOS
    2. Выбрать System Settings.
    3. Выбрать Devices and I/O Ports.
    4. Выбрать Enable/Disable Legacy Option ROMs
    5. Находясь в меню Enable/Disable Legacy Option ROMs  выбрать номер слота(ов), в котором установлена(ы) HBA и выбрать Disabled.
    6. Находясь в меню Enable/Disable UEFI Option ROMs выбрать номер слота(ов), в котором установлена(ы) HBA и выбрать Disabled.
    7. Нажать Esc 3 раза, чтобы вернуться к меню
System Configuration, выбрать Save Settings.
    8. Выбрать Boot Manager.
    9. Выбрать Add Boot Option.
   10. Выбрать Legacy Only.
   11. Нажать Esc, чтобы вернуться к Boot Manager.
   12. Выбрать Change Boot Order.
   13. Выбрать текущий Boot Order.
   14. Выбрать Legacy Only и нажимать кнопку "+" до тех пор,  пока Legacy Only  не будет  на позицию выше локального загрузочного диска (Hard Disk 0).
   15. Выбрать Commit Changes.
   16. Нажать Esc, чтобы вернуться к Boot Manager.
   17. Нажать Reset System или перезагрузить "по питанию".

 

Коротко о себе:

Работаю в компании TUNE-IT в качестве инженера и преподавателя.

В сферу профессиональных интересов входит все,  что связано с "большими" и не очень серверами и СХД от Sun Microsystems/Oracle и кластерами на их основе, но по долгу службы занимаюсь чаще всего их диагностикой и ремонтом... 

Делюсь опытом и  наработанными навыками в рамках курсов по  соответствующим направлениям.