Модификация BIOS для поддержки NVME через PCIВнезапно захотелось поставить на материнскую плату Supermicro X9DBL-I NMVE накопитель через переходник. Как хранилище данных, такая конфигурация работает без нареканий и все прекрасно гоняется из под OC, но как загрузочный диск с ОС не работает - BIOS не поддерживает такую функциональность. А мне хотелось попробовать установить на него ProxMox (но потом я передумал).
Ниже перечисленное может полностью вывести материнскую плату из строя, вы делаете это на свой страх и риск!
Первое что можно попробовать это обновить BIOS. Затем установить ОС в режиме UEFI и таким же образом загружать диск (в BIOS). Если речь идет о комбинированном переходнике PCI-E на M.2 то нужно настроить бифуркацию в BIOS (это когда один PCI-E слот может работать как 2 или 4 PCI-E слота).

Про бифуркацию есть упоминания в этом обсуждении и здесь, а ниже скрин как это выглядит в BIOS моей платы по пути Advanced - Chipset Configaration - Integrated IO Configuration:

На моей плате это не сработало - нет поддержки nvme из
BIOS.
BIOSможно модифицировать и добавить в прошивку драйвер поддержкиNVME.
Из приведенных выше обсуждений есть ссылки на форум win-raid.com, который теперь доступен по новому адресу, интересующая нас тема здесь, а раздел форума про NMVE здесь.
Нам понадобится:
ROM BIOS и последующий его загрузки обратно, либо можно воспользоваться UEFITool (я взял afudos APTIO 5)BIOS (пронесся слух что это не бесплатно, но где и кому заплатить я не нашел, а вот ссылок на скачать в интернете достаточно, например вот и вот, я использовал MMTool v5)Можно использовать свежую прошивку от производителя материнской платы, а можно выгрузить ROM BIOS. Для этого на загрузочную флешку с DOS заливаем afudos, на целевой плате загружаемся в DOS без установки и экспортируем ROM в файл:
afudos bios.rom /o

Теперь нужно через MMTool вставить драйвера для NVME. Скачать драйвера можно по ссылкам выше или отсюда несжатый и сжатый, на случай если несжатый не влезет в ROM.
На самом деле прошивок существует несколько, по ходу написания статьи я познакомился с более зрелыми инструкциями, ссылки в конце статьи.
Делаем следующее:
MMTool, нажимаем Load Image и загружаем наш ROMCSMCORE в строке Vol. index обязательно должны увидеть какие-то цифрыInsert - Browse и выбираем скачанный драйвер
Затем нажимаем Save image и сохраняем модифицированный ROM. Для надежности еще раз загрузим этот же ROM и убедимся что теперь в списке есть строка с нашим драйвером NVME.

Заливаем модифицированный ROM BIOS на загрузочную флешку с DOS, идем на целевую плату и выгружаем ROM:
afudos bios.rom /o

Дожидаемся, затем отключаем питание кнопкой на корпусе и загружаем.
Теперь нужно настроить загрузку модуля, который мы встроили в BIOS, делается это через OpROM в интерфейсе BIOS в разделе Advanced - PCIe/PCI/PnP Configuration, для Launch Storage OpROM policy нужно включить UEFI only:

В
UEFI Onlyне будет аппаратного RAID.
Теперь можно загружать флешку в UEFI, устанавливать ОС на NVME накопитель и загружаться с него:

В BIOS нужно выставить очередность загрузки:

В меню Boot Override также можно загрузиться с этого диска:

Конечно не обошлось без проблем, а в самом начале я писал что решил отказаться от этой затеи ...
Иногда, редко, но бывает при перезагрузке процесс висит на 92-ом POST коде несколько минут, а это код означает инициализацию PCI шины (дока по POST кодам). Странно, ну ладно, это происходит крайне редко.
А затем я решил проверить, что будет, если воткнуть SATA диск, на котором уже установлена ОС из под UEFI и ... теперь в BIOS нельзя выставить очередность загрузки с NVME, но при вызове Boot Menu можно загрузиться с этого диска.